Condividi tramite


ModelDataCollector Classe

Definisce un agente di raccolta dati modello che può essere usato per raccogliere dati in una distribuzione del servizio Web Servizio Azure Machine Learning in un archivio BLOB.

La classe ModelDataCollector consente di definire un agente di raccolta dati per i modelli nelle distribuzioni del servizio Azure Machine Learning. L'oggetto agente di raccolta dati può essere usato per raccogliere dati del modello, ad esempio input e stime, all'archiviazione BLOB dell'area di lavoro. Quando la raccolta dati del modello è abilitata nella distribuzione, i dati raccolti verranno visualizzati nel percorso del contenitore seguente come file csv: /modeldata/{workspace_name}/{webservice_name}/{model_name}/{model_version}/{design}/{year}/{month}/{day}/{collection_name}}.csv

Costruttore ModelDataCollector.

Quando la raccolta dati del modello è abilitata, i dati verranno inviati al percorso del contenitore seguente: /modeldata/{workspace}/{webservice_name}/{model_name}/{model_version}/{designazione}/{year}/{month}/{day}/{collection_name}.csv

Ereditarietà
builtins.object
ModelDataCollector

Costruttore

ModelDataCollector(model_name, designation='default', feature_names=None, workspace='default/default/default', webservice_name='default', model_version='default', collection_name='default')

Parametri

Nome Descrizione
model_name
Necessario
str

Nome del modello per cui vengono raccolti i dati.

designation
str

Una designazione univoca per la posizione della raccolta dati. Le designazioni supportate sono "input", "stime", "etichette", "segnali e "generale".

valore predefinito: default
feature_names

Elenco di nomi di funzionalità che diventano l'intestazione csv quando specificato.

valore predefinito: None
workspace
str

Identificatore dell'area di lavoro di Azure Machine Learning sotto forma di {subscription_id}/{resource_group}/{workspace_name}. Questo viene popolato automaticamente quando i modelli vengono operativi tramite Azure Machine Learning.

valore predefinito: default/default/default
webservice_name
str

Nome del servizio Web a cui è attualmente distribuito questo modello. Questo viene popolato automaticamente quando i modelli vengono operativi tramite Azure Machine Learning.

valore predefinito: default
model_version
str

Versione del modello. Questo viene popolato automaticamente quando i modelli vengono operativi tramite Azure Machine Learning.

valore predefinito: default
collection_name
str

Nome del file in cui ModelDataCollector raccoglie i dati. Questo param è considerato solo per le designazioni "segnali" e "generale". Per gli altri tipi di designazioni, il nome di designazione viene usato come nome file.

valore predefinito: default

Commenti

Attualmente ModelDataCollector funziona solo nelle distribuzioni del servizio Azure Machine Learning. Per raccogliere i dati del modello all'interno di una distribuzione, è necessario eseguire questa procedura:

  • Aggiornare l'immagine entry_script per aggiungere oggetti ModelDataCollector e istruzioni di raccolta. È possibile definire più oggetti ModelDataCollector all'interno di uno script, ad esempio uno per gli input e uno per la stima per lo stesso modello. Per altre informazioni su come definire e usare un entry_script, vedere la classe seguente: InferenceConfig

  • Impostare enable_data_collection flag nel passaggio di distribuzione del modello del servizio Azure Kubernetes. Dopo aver distribuito un modello, questo flag può essere usato per attivare/disattivare la raccolta dati del modello senza modificare il entry_script. Per altre informazioni su come configurare la distribuzione del modello, vedere la classe seguente: AksWebservice

Il frammento di codice seguente mostra l'aspetto di un entry_script con ModelDataCollection:


   from azureml.monitoring import ModelDataCollector

   def init():
       global inputs_dc

       # Define your models and other scoring related objects
       # ...

       # Define input data collector to model "bestmodel". You need to define one object per model and
       # designation. For the sake of simplicity, we are only defining one object here.
       inputs_dc = ModelDataCollector(model_name="bestmodel", designation="inputs", feature_names=["f1", "f2"])

   def run(raw_data):
       global inputs_dc

       # Convert raw_data to proper format and run prediction
       # ...

       # Use inputs_dc to collect data. For any data that you want to collect, you need to call collect method
       # on respective ModelDataCollector objects. For the sake of simplicity, we are only working on a single
       # object.
       inputs_dc.collect(input_data)

L'esempio precedente illustra un paio di cose su ModelDataCollector. In questo caso "bestmodel" e "input" viene definito prima di tutto un oggetto per modello e per ogni designazione. In secondo luogo, ModelDataCollector prevede dati tabulari come input e gestisce i dati come file csv. È possibile specificare nomi di funzionalità facoltativi per impostare l'intestazione di questi file csv.

Il frammento di codice seguente mostra come ModelDataCollector può essere abilitato durante la distribuzione del modello:


   webservice_config = AksWebservice.deploy_configuration(collect_model_data=True)
   Model.deploy(ws, "myservice", [model], inference_config, webservice_config, aks_cluster)

Dopo la distribuzione del servizio Azure Machine Learning WebService e l'assegnazione dei punteggi al servizio, i dati raccolti verranno visualizzati nell'account di archiviazione dell'area di lavoro. ModelDataCollector partizionerà i dati per semplificare l'accesso e l'uso. Tutti i dati verranno raccolti nel contenitore di archiviazione "modeldata". Ecco il formato di partizione:

/modeldata/{workspace_name}/{webservice_name}/{model_name}/{model_version}/{design}/{year}/{month}/{day}/{collection_name}.csv

Si noti che collection_name nel nome del file verrà considerato solo per le designazioni "segnali" e "generale". Per "input", "stime" e "etichette" il nome del file verrà impostato come {designazioni}.csv.

Metodi

add_correlations

Funzione helper per aggiungere intestazioni e valori di correlazione ai dati di input specificati.

collect

Raccogliere dati nell'archiviazione.

add_correlations

Funzione helper per aggiungere intestazioni e valori di correlazione ai dati di input specificati.

add_correlations(input_data, correlations)

Parametri

Nome Descrizione
input_data
Necessario

Dati da aggiungere intestazioni e valori di correlazione a.

correlations
Necessario

Intestazioni di correlazione e valori restituiti dalla funzione collect().

Restituisce

Tipo Descrizione

input_data con intestazioni e valori di correlazione aggiunti.

Commenti

collect Una volta chiamato, restituirà un set di intestazioni e valori di correlazione. Questi includono metadati, ad esempio id richiesta, timestamp e id di correlazione univoco generato da ModelDataCollector o fornito come parametro. Questi valori possono essere usati per analizzare e correlare diversi tipi di dati in un secondo momento. Nell'esempio seguente viene illustrato come aggiungere correlazioni ai dati di input e ai dati di stima. Si noti che il tipo di designazione "input" ha i dati di correlazione per impostazione predefinita.


   # Define inputs_dc and predictions_dc for the same model and "inputs" and "predictions" designations
   # respectively
   # ...

   correlations = inputs_dc.collect(input_data)
   predictions_data = predictions_dc.add_correlations(predictions_data, correlations)
   predictions_dc.collect(predictions_data)

collect

Raccogliere dati nell'archiviazione.

collect(input_data, user_correlation_id='')

Parametri

Nome Descrizione
input_data
Necessario

Dati da raccogliere. Per i tipi di dataframe, se esiste un'intestazione con nomi di funzionalità, queste informazioni vengono incluse nella destinazione dati senza dover passare in modo esplicito nomi di funzionalità nel costruttore ModelDataCollector.

user_correlation_id
Necessario
str

Un ID di correlazione facoltativo usa per correlare questi dati in un secondo momento.

Restituisce

Tipo Descrizione

Dizionario che contiene intestazioni e valori di correlazione.

Attributi

AML_DC_BOUNDARY_HEADER

AML_DC_BOUNDARY_HEADER = '$aml_dc_boundary'

AML_DC_CORRELATION_HEADER

AML_DC_CORRELATION_HEADER = '$aml_dc_correlation_id'

AML_DC_SCORING_TIMESTAMP_HEADER

AML_DC_SCORING_TIMESTAMP_HEADER = '$aml_dc_scoring_timestamp'

AML_MODEL_NAME_HEADER

AML_MODEL_NAME_HEADER = '$aml_model_name'

AML_MODEL_VERSION_HEADER

AML_MODEL_VERSION_HEADER = '$aml_model_version'

AML_REQUEST_ID_HEADER

AML_REQUEST_ID_HEADER = '$aml_request_id'

AML_SERVICE_NAME_HEADER

AML_SERVICE_NAME_HEADER = '$aml_service_name'

AML_WORKSPACE_HEADER

AML_WORKSPACE_HEADER = '$aml_workspace'

dllpath

dllpath = 'C:\\hostedtoolcache\\windows\\Python\\3.9.13\\x64\\lib\\site-packages\\azureml\\monitoring\\tools\\modeldatacollector\\lib\\native\\Windows'