Sdílet prostřednictvím


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.object
ModelDataCollector

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
str

Název modelu, pro který se data shromažďují.

designation
str

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é".

výchozí hodnota: default
feature_names

Seznam názvů funkcí, které se po zadání stanou záhlavím csv.

výchozí hodnota: None
workspace
str

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.

výchozí hodnota: default/default/default
webservice_name
str

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.

výchozí hodnota: default
model_version
str

Verze modelu. Tato funkce se vyplní automaticky, když se modely zprovozní prostřednictvím služby Azure Machine Learning.

výchozí hodnota: default
collection_name
str

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í.

výchozí hodnota: 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
str

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'