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.objectModelDataCollector
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
|
Namnet på den modell som data samlas in för. |
designation
|
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
|
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
|
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
|
Modellens version. Detta fylls i automatiskt när modeller operationaliseras via Azure Machine Learning. Standardvärde: default
|
collection_name
|
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
|
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'