ModelDataCollector Třída
Definuje kolektor dat modelu, který lze použít ke shromažďování dat v nasazení webové služby Azure Machine Learning AKS do úložiště objektů blob.
Třída ModelDataCollector umožňuje definovat kolektor dat pro vaše modely v nasazeních Azure Machine Learning AKS. Objekt kolektoru dat je možné použít ke shromažďování dat modelu, jako jsou vstupy a předpovědi, do úložiště objektů blob pracovního prostoru. Pokud je ve vašem nasazení povolené shromažďování dat modelu, shromážděná data se zobrazí v následující cestě kontejneru jako soubory CSV: /modeldata/{workspace_name}/{webservice_name}/{model_name}/{model_version}/{designation}/{year}/{month}/{day}/{collection_name}.csv
Konstruktor ModelDataCollector.
Pokud je shromažďování dat modelu povolené, odesílají se data do následující cesty kontejneru: /modeldata/{workspace}/{webservice_name}/{model_name}/{model_version}/{designation}/{year}/{month}/{day}/{collection_name}.csv
- Dědičnost
-
builtins.objectModelDataCollector
Konstruktor
ModelDataCollector(model_name, designation='default', feature_names=None, workspace='default/default/default', webservice_name='default', model_version='default', collection_name='default')
Parametry
Name | Description |
---|---|
model_name
Vyžadováno
|
Název modelu, pro který se data shromažďují. |
designation
|
Jedinečné označení pro umístění shromažďování dat. Podporovaná označení jsou "vstupy", "předpovědi", "popisky", "signály" a "obecné". Default value: default
|
feature_names
|
Seznam názvů funkcí, které se po zadání stanou záhlavím csv. Default value: None
|
workspace
|
Identifikátor pracovního prostoru služby Azure Machine Learning ve tvaru {subscription_id}/{resource_group}/{workspace_name}. Tato funkce se vyplní automaticky, když se modely zprovozní prostřednictvím služby Azure Machine Learning. Default value: default/default/default
|
webservice_name
|
Název webové služby, do které je tento model aktuálně nasazen. Tato funkce se vyplní automaticky, když se modely zprovozní prostřednictvím služby Azure Machine Learning. Default value: default
|
model_version
|
Verze modelu. Tato funkce se vyplní automaticky, když se modely zprovozní prostřednictvím služby Azure Machine Learning. Default value: default
|
collection_name
|
Název souboru, do kterého ModelDataCollector shromažďuje data. Tento param se zvažuje pouze pro označení "signály" a "obecné". U ostatních typů označení se jako název souboru používá název označení. Default value: default
|
Poznámky
ModelDataCollector v současné době funguje jenom v nasazeních Azure Machine Learning AKS. Pokud chcete shromažďovat data modelu v rámci nasazení, musíte provést následující kroky:
Aktualizujte image entry_script a přidejte objekty ModelDataCollector a příkazy collect. V rámci skriptu můžete definovat několik objektů ModelDataCollector, například jeden pro vstupy a jeden pro predikci pro stejný model. Další podrobnosti o tom, jak definovat a používat entry_script, najdete v následující třídě: InferenceConfig
V kroku nasazení modelu AKS nastavte příznak enable_data_collection. Jakmile je model nasazený, můžete pomocí tohoto příznaku zapnout nebo vypnout shromažďování dat modelu bez úprav entry_script. Další podrobnosti o konfiguraci nasazení modelu najdete v následující třídě: AksWebservice
Následující fragment kódu ukazuje, jak by entry_script vypadal s 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)
Výše uvedený příklad znázorňuje několik věcí o ModelDataCollectoru. Nejprve se definuje objekt podle modelu a podle označení, v tomto případě "bestmodel" a "inputs". Za druhé, ModelDataCollector očekává tabulková data jako vstup a udržuje data jako soubory CSV. Pro nastavení záhlaví těchto souborů CSV je možné zadat volitelné názvy funkcí.
Následující fragment kódu ukazuje, jak je možné povolit ModelDataCollector během nasazování modelu:
webservice_config = AksWebservice.deploy_configuration(collect_model_data=True)
Model.deploy(ws, "myservice", [model], inference_config, webservice_config, aks_cluster)
Po nasazení webové služby Azure Machine Learning AKS a spuštění vyhodnocování ve službě se shromážděná data zobrazí v účtu úložiště pracovního prostoru. ModelDataCollector rozdělí data na oddíly, aby se usnadnil přístup a použití. Všechna data se budou shromažďovat v kontejneru úložiště modeldata. Tady je formát oddílu:
/modeldata/{workspace_name}/{webservice_name}/{model_name}/{model_version}/{designation}/{year}/{month}/{day}/{collection_name}.csv
Mějte na paměti, že collection_name v názvu souboru se budou brát v úvahu pouze pro označení "signal" a "general". Pro "vstupy", "predictions" a "labels" se název souboru nastaví jako {designation}.csv.
Metody
add_correlations |
Pomocná funkce pro přidání hlaviček a hodnot korelace k zadaným vstupním datům |
collect |
Shromážděte data do úložiště. |
add_correlations
Pomocná funkce pro přidání hlaviček a hodnot korelace k zadaným vstupním datům
add_correlations(input_data, correlations)
Parametry
Name | Description |
---|---|
input_data
Vyžadováno
|
Data, do které se mají přidat hlavičky a hodnoty korelace. |
correlations
Vyžadováno
|
Hlavičky korelace a hodnoty, které jsou vráceny z funkce collect(). |
Návraty
Typ | Description |
---|---|
input_data s přidanými hlavičkami a hodnotami korelace. |
Poznámky
Po zavolání collect
vrátí sadu hlaviček a hodnot korelace. Patří mezi ně metadata, jako je ID požadavku, časové razítko a jedinečné ID korelace vygenerované modelem ModelDataCollector nebo poskytnuté jako parametr. Tyto hodnoty lze později použít k analýze a korelaci různých typů dat.
Následující příklad ukazuje, jak přidat korelace ke vstupním i prediktivním datům. Všimněte si, že typ označení "vstupy" má ve výchozím nastavení data korelace.
# 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
Shromážděte data do úložiště.
collect(input_data, user_correlation_id='')
Parametry
Name | Description |
---|---|
input_data
Vyžadováno
|
Data, která se mají shromažďovat. Pokud u typů datových rámců existuje hlavička s názvy funkcí, jsou tyto informace zahrnuty do cíle dat, aniž by bylo nutné explicitně předávat názvy funkcí v konstruktoru ModelDataCollector. |
user_correlation_id
Vyžadováno
|
Volitelné ID korelace použije ke korelaci těchto dat později. |
Návraty
Typ | Description |
---|---|
Slovník, který obsahuje hlavičky a hodnoty korelace. |
Atributy
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'