Freigeben über


ModelDataCollector Klasse

Definiert einen Modelldatensammler, der zum Sammeln von Daten in einer Azure Machine Learning-AKS-Webdienstbereitstellung in einem Blobspeicher verwendet werden kann.

Mit der ModelDataCollector-Klasse können Sie einen Datensammler für Ihre Modelle in Azure Machine Learning-AKS-Bereitstellungen definieren. Das Datensammlerobjekt kann dazu verwendet werden, Modelldaten wie Eingaben und Vorhersagen im Blobspeicher des Arbeitsbereichs zu sammeln. Wenn die Modelldatensammlung in der Bereitstellung aktiviert ist, werden die gesammelten Daten unter dem folgenden Containerpfad als CSV-Dateien angezeigt: /modeldata/{workspace_name}/{webservice_name}/{model_name}/{model_version}/{designation}/{year}/{month}/{day}/{collection_name}.csv

ModelDataCollector-Konstruktor.

Wenn die Modelldatensammlung aktiviert ist, werden Daten an den folgenden Containerpfad gesendet: /modeldata/{workspace}/{webservice_name}/{model_name}/{model_version}/{designation}/{year}/{month}/{day}/{collection_name}.csv

Vererbung
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')

Parameter

Name Beschreibung
model_name
Erforderlich
str

Der Name des Modells, für das Daten gesammelt werden.

designation
str

Eine eindeutige Bezeichnung für den Speicherort der Datensammlung. Unterstützte Bezeichnungen sind "Eingaben", "Vorhersagen", "Bezeichnungen", "Signale" und "allgemein".

Standardwert: default
feature_names

Eine Liste von Featurenamen, die bei der Verwendung zum CSV-Header werden.

Standardwert: None
workspace
str

Der Bezeichner für den Azure Machine Learning-Arbeitsbereich in Form von {subscription_id}/{resource_group}/{workspace_name}. Dies wird automatisch aufgefüllt, wenn Modelle über Azure Machine Learning operationalisiert werden.

Standardwert: default/default/default
webservice_name
str

Der Name des Webdiensts, in dem dieses Modell derzeit bereitgestellt wird. Dies wird automatisch aufgefüllt, wenn Modelle über Azure Machine Learning operationalisiert werden.

Standardwert: default
model_version
str

Die Version des Modells. Dies wird automatisch aufgefüllt, wenn Modelle über Azure Machine Learning operationalisiert werden.

Standardwert: default
collection_name
str

Der Name der Datei, in der ModelDataCollector Daten sammelt. Dieser Param wird nur für "Signale" und "allgemeine" Bezeichnungen berücksichtigt. Für die anderen Typen von Bezeichnungen wird der Bezeichnungsname als Dateiname verwendet.

Standardwert: default

Hinweise

Derzeit funktioniert ModelDataCollector nur in Azure Machine Learning-AKS-Bereitstellungen. Zum Sammeln von Modelldaten innerhalb einer Bereitstellung müssen Sie die folgenden Schritte ausführen:

  • Aktualisieren Sie entry_script des Image, um ModelDataCollector-Objekte und Collect-Anweisungen hinzuzufügen. Sie können mehrere ModelDataCollector-Objekte innerhalb eines Skripts definieren, z. B. eines für Eingaben und eines für die Vorhersage für dasselbe Modell. In der folgenden Klasse finden Sie weitere Informationen zum Definieren und Verwenden von entry_script: InferenceConfig

  • Legen Sie das Flag enable_data_collection im Bereitstellungsschritt des AKS-Modells fest. Sobald ein Modell bereitgestellt wurde, kann dieses Flag dazu verwendet werden, die Modelldatensammlung ohne Änderung von entry_script zu aktivieren/zu deaktivieren. Weitere Informationen zum Konfigurieren der Modellbereitstellung finden Sie in der folgenden Klasse: AksWebservice

Der folgende Codeausschnitt zeigt, wie ein entry_script mit ModelDataCollection aussehen würde:


   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)

Im obigen Beispiel werden einige Aspekte zu ModelDataCollector veranschaulicht. Zuerst wird ein Objekt pro Modell und pro Bezeichnung definiert, in diesem Fall „bestmodel“ und „inputs“. Zweitens werden von ModelDataCollector Tabellendaten als Eingabe erwartet und Daten als CSV-Dateien verwaltet. Optionale Featurenamen können zum Festlegen des Headers dieser CSV-Dateien bereitgestellt werden.

Der folgende Codeausschnitt zeigt, wie ModelDataCollector während der Modellbereitstellung aktiviert werden kann:


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

Nachdem der Azure Machine Learning-AKS-Webdienst bereitgestellt und die Bewertung für den Dienst ausgeführt wurde, werden die gesammelten Daten im Speicherkonto des Arbeitsbereichs angezeigt. Von ModelDataCollector werden die Daten zur Erleichterung von Zugriff und Verwendung partitioniert. Alle Daten werden unter dem Speichercontainer „modeldata“ gesammelt. Partitionsformat:

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

Beachten Sie, dass collection_name im Dateinamen nur für die Bezeichnungen „signals“ und „general“ berücksichtigt wird. Für „inputs“, „predictions“ und „labels“ wird der Dateiname auf {designation}.csv festgelegt.

Methoden

add_correlations

Hilfsfunktion zum Hinzufügen von Korrelationsheadern und -werten zu angegebenen Eingabedaten.

collect

Daten im Speicher sammeln.

add_correlations

Hilfsfunktion zum Hinzufügen von Korrelationsheadern und -werten zu angegebenen Eingabedaten.

add_correlations(input_data, correlations)

Parameter

Name Beschreibung
input_data
Erforderlich

Die Daten, denen Korrelationsheader und -werte hinzugefügt werden.

correlations
Erforderlich

Korrelationsheader und -werte, die von der collect()-Funktion zurückgegeben werden.

Gibt zurück

Typ Beschreibung

input_data mit hinzugefügten Korrelationsheadern und -werten.

Hinweise

Nachdem collect aufgerufen wurde, wird eine Reihe von Korrelationsheadern und -werten zurückgeben. Dazu gehören Metadaten wie Anforderungs-ID, Zeitstempel und eine eindeutige Korrelations-ID, die von ModelDataCollector generiert oder als Parameter bereitgestellt wird. Diese Werte können später dazu verwendet werden, verschiedene Datentypen zu analysieren und zu korrelieren. Das folgende Beispiel zeigt, wie Korrelationen sowohl zu Eingabe- als auch zu Vorhersagedaten hinzugefügt werden. Beachten Sie, dass der Bezeichnungstyp „Eingaben“ standardmäßig über die Korrelationsdaten verfügt.


   # 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

Daten im Speicher sammeln.

collect(input_data, user_correlation_id='')

Parameter

Name Beschreibung
input_data
Erforderlich

Die zu sammelnden Daten. Bei Datenrahmentypen, wenn ein Header mit Featurenamen vorhanden ist, werden diese Informationen in das Datenziel eingefügt (ohne dass Featurenamen explizit an den „ModelDataCollector“-Konstruktor übergeben werden müssen)

user_correlation_id
Erforderlich
str

Eine optionale Korrelations-ID, die dazu verwendet wird, diese Daten später zu korrelieren.

Gibt zurück

Typ Beschreibung

Ein Wörterbuch, das Korrelationsheader und -werte enthält.

Attribute

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'