ModelDataCollector Klass

Definierar en modelldatainsamlare som kan användas för att samla in data i en Azure Machine Learning AKS WebService-distribution till en bloblagring.

Med klassen ModelDataCollector kan du definiera en datainsamlare för dina modeller i Azure Machine Learning AKS-distributioner. Datainsamlarobjektet kan användas för att samla in modelldata, till exempel indata och förutsägelser, till bloblagringen på arbetsytan. När modelldatainsamling är aktiverat i distributionen visas insamlade data i följande containersökväg som csv-filer: /modeldata/{workspace_name}/{webservice_name}/{model_name}/{model_version}/{designation}/{year}/{month}/{day}/{collection_name}.csv

ModelDataCollector-konstruktor.

När modelldatainsamling är aktiverat skickas data till följande containersökväg: /modeldata/{workspace}/{webservice_name}/{model_name}/{model_version}/{designation}/{year}/{month}/{day}/{collection_name}.csv

Arv
builtins.object
ModelDataCollector

Konstruktor

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

Parametrar

Name Description
model_name
Obligatorisk
str

Namnet på den modell som data samlas in för.

designation
str

En unik beteckning för datainsamlingsplatsen. Beteckningar som stöds är "inputs", "predictions", "labels", "signals, and "general".

standardvärde: default
feature_names

En lista över funktionsnamn som blir csv-huvudet när de tillhandahålls.

standardvärde: None
workspace
str

Identifieraren för Azure Machine Learning-arbetsytan i form av {subscription_id}/{resource_group}/{workspace_name}. Detta fylls i automatiskt när modeller operationaliseras via Azure Machine Learning.

standardvärde: default/default/default
webservice_name
str

Namnet på den webbtjänst som modellen för närvarande distribueras till. Detta fylls i automatiskt när modeller operationaliseras via Azure Machine Learning.

standardvärde: default
model_version
str

Modellens version. Detta fylls i automatiskt när modeller operationaliseras via Azure Machine Learning.

standardvärde: default
collection_name
str

Namnet på filen som ModelDataCollector samlar in data i. Denna param beaktas endast för "signaler" och "allmänna" beteckningar. För de andra typerna av beteckningar används beteckningsnamnet som filnamn.

standardvärde: default

Kommentarer

För närvarande fungerar ModelDataCollector endast i Azure Machine Learning AKS-distributioner. Om du vill samla in modelldata i en distribution måste du utföra följande steg:

  • Uppdatera avbildningen entry_script för att lägga till ModelDataCollector-objekt och samla in instruktioner. Du kan definiera flera ModelDataCollector-objekt i ett skript, t.ex. ett för indata och ett för förutsägelse för samma modell. Mer information om hur du definierar och använder en entry_script finns i följande klass: InferenceConfig

  • Ange enable_data_collection flagga i distributionssteget för AKS-modellen. När en modell har distribuerats kan den här flaggan användas för att aktivera/inaktivera modelldatainsamling utan att ändra din entry_script. Mer information om hur du konfigurerar modelldistributionen finns i följande klass: AksWebservice

Följande kodfragment visar hur en entry_script skulle se ut med 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)

Exemplet ovan illustrerar några saker om ModelDataCollector. Först definieras ett objekt per modell och per beteckning, i det här fallet "bestmodel" och "inputs". För det andra förväntar sig ModelDataCollector tabelldata som indata och underhåller data som csv-filer. Du kan ange valfria funktionsnamn för att ange rubriken för dessa csv-filer.

Följande kodfragment visar hur ModelDataCollector kan aktiveras under modelldistributionen:


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

När Azure Machine Learning AKS WebService har distribuerats och bedömning körs på tjänsten visas insamlade data i arbetsytans lagringskonto. ModelDataCollector partitionerar data för enkel åtkomst och användning. Alla data samlas in under lagringscontainern "modeldata". Här är partitionsformatet:

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

Observera att collection_name i filnamnet endast kommer att beaktas för "signaler" och "allmänna" beteckningar. För "indata", "förutsägelser" och "etiketter" anges filnamnet som {designation}.csv.

Metoder

add_correlations

Hjälpfunktionen för att lägga till korrelationsrubriker och värden för angivna indata.

collect

Samla in data till lagring.

add_correlations

Hjälpfunktionen för att lägga till korrelationsrubriker och värden för angivna indata.

add_correlations(input_data, correlations)

Parametrar

Name Description
input_data
Obligatorisk

De data som korrelationsrubriker och -värden ska läggas till i.

correlations
Obligatorisk

Korrelationshuvuden och värden som returneras från funktionen collect().

Returer

Typ Description

input_data med tillagda korrelationsrubriker och värden.

Kommentarer

När anropas collect returneras en uppsättning korrelationshuvuden och värden. Dessa inkluderar metadata som begärande-ID, tidsstämpel och ett unikt korrelations-ID som genereras av ModelDataCollector eller tillhandahålls som en parameter. Dessa värden kan användas för att analysera och korrelera olika typer av data senare. I följande exempel visas hur du lägger till korrelationer till både indata och förutsägelsedata. Observera att "indata"-beteckningstypen har korrelationsdata som standard.


   # 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

Samla in data till lagring.

collect(input_data, user_correlation_id='')

Parametrar

Name Description
input_data
Obligatorisk

De data som ska samlas in. Om det finns ett huvud med funktionsnamn för dataramtyper ingår den här informationen i datamålet utan att uttryckligen behöva skicka funktionsnamn i ModelDataCollector-konstruktorn.

user_correlation_id
Obligatorisk
str

Ett valfritt korrelations-ID använder för att korrelera dessa data senare.

Returer

Typ Description

En ordlista som innehåller korrelationsrubriker och värden.

Attribut

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'