ModelDataCollector Klas

Definieert een modelgegevensverzamelaar die kan worden gebruikt om gegevens te verzamelen in een Azure Machine Learning AKS-webservice-implementatie naar een blob-opslag.

Met de klasse ModelDataCollector kunt u een gegevensverzamelaar definiëren voor uw modellen in Azure Machine Learning AKS-implementaties. Het gegevensverzamelaarobject kan worden gebruikt om modelgegevens, zoals invoer en voorspellingen, te verzamelen in de blobopslag van de werkruimte. Wanneer het verzamelen van modelgegevens is ingeschakeld in uw implementatie, worden verzamelde gegevens weergegeven in het volgende containerpad als CSV-bestanden: /modeldata/{workspace_name}/{webservice_name}/{model_name}/{model_version}/{designation}/{year}/{month}/{day}/{collection_name}.csv

ModelDataCollector-constructor.

Wanneer het verzamelen van modelgegevens is ingeschakeld, worden gegevens verzonden naar het volgende containerpad: /modeldata/{workspace}/{webservice_name}/{model_name}/{model_version}/{designation}/{year}/{month}/{day}/{collection_name}.csv

Overname
builtins.object
ModelDataCollector

Constructor

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

Parameters

model_name
str
Vereist

De naam van het model waarvoor gegevens worden verzameld.

designation
str
standaardwaarde: default

Een unieke aanduiding voor de locatie van de gegevensverzameling. Ondersteunde aanduidingen zijn 'invoer', 'voorspellingen', 'labels', 'signalen' en 'algemeen'.

feature_names
list
standaardwaarde: None

Een lijst met functienamen die de CSV-header worden wanneer deze wordt opgegeven.

workspace
str
standaardwaarde: default/default/default

De id voor de Azure Machine Learning-werkruimte in de vorm van {subscription_id}/{resource_group}/{workspace_name}. Dit wordt automatisch ingevuld wanneer modellen worden uitgevoerd via Azure Machine Learning.

webservice_name
str
standaardwaarde: default

De naam van de webservice waarop dit model momenteel is geïmplementeerd. Dit wordt automatisch ingevuld wanneer modellen worden uitgevoerd via Azure Machine Learning.

model_version
str
standaardwaarde: default

De versie van het model. Dit wordt automatisch ingevuld wanneer modellen worden uitgevoerd via Azure Machine Learning.

collection_name
str
standaardwaarde: default

De naam van het bestand waar ModelDataCollector gegevens in verzamelt. Deze parameter wordt alleen in aanmerking genomen voor "signalen" en "algemene" aanduidingen. Voor de andere typen aanduidingen wordt de naam van de aanduiding gebruikt als de bestandsnaam.

Opmerkingen

Op dit moment werkt ModelDataCollector alleen in Azure Machine Learning AKS-implementaties. Als u modelgegevens in een implementatie wilt verzamelen, moet u de volgende stappen uitvoeren:

  • Werk uw afbeeldings entry_script bij om ModelDataCollector-objecten toe te voegen en instructie(s) te verzamelen. U kunt meerdere ModelDataCollector-objecten in een script definiëren, bijvoorbeeld één voor invoer en één voor voorspelling voor hetzelfde model. Zie de volgende klasse voor meer informatie over het definiëren en gebruiken van een entry_script: InferenceConfig

  • Stel enable_data_collection vlag in de implementatiestap van uw AKS-model in. Zodra een model is geïmplementeerd, kan deze vlag worden gebruikt om het verzamelen van modelgegevens in of uit te schakelen zonder uw entry_script te wijzigen. Zie de volgende klasse voor meer informatie over het configureren van uw modelimplementatie: AksWebservice

Het volgende codefragment laat zien hoe een entry_script eruit zou zien met 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)

In het bovenstaande voorbeeld ziet u een aantal dingen over ModelDataCollector. Eerst wordt een object gedefinieerd per model en per aanduiding, in dit geval 'bestmodel' en 'inputs'. Ten tweede verwacht ModelDataCollector gegevens in tabelvorm als invoer en worden de gegevens als CSV-bestanden onderhouden. Er kunnen optionele functienamen worden opgegeven om de header van deze CSV-bestanden in te stellen.

Het volgende codefragment laat zien hoe ModelDataCollector kan worden ingeschakeld tijdens de implementatie van het model:


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

Zodra de Azure Machine Learning AKS-webservice is geïmplementeerd en scoren wordt uitgevoerd op de service, worden verzamelde gegevens weergegeven in het opslagaccount van de werkruimte. ModelDataCollector partitioneert de gegevens voor gemakkelijke toegang en gebruik. Alle gegevens worden verzameld onder de opslagcontainer modeldata. Dit is de partitie-indeling:

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

Houd er rekening mee dat collection_name in de bestandsnaam alleen in aanmerking komen voor 'signalen' en 'algemene' aanduidingen. Voor 'invoer', 'voorspellingen' en 'labels' wordt de bestandsnaam ingesteld als {designation}.csv.

Methoden

add_correlations

Helperfunctie om correlatieheaders en -waarden toe te voegen aan opgegeven invoergegevens.

collect

Gegevens verzamelen voor opslag.

add_correlations

Helperfunctie om correlatieheaders en -waarden toe te voegen aan opgegeven invoergegevens.

add_correlations(input_data, correlations)

Parameters

input_data
list, array, DataFrame, DataFrame
Vereist

De gegevens waaraan u correlatieheaders en -waarden wilt toevoegen.

correlations
dict
Vereist

Correlatieheaders en -waarden die worden geretourneerd door de functie collect().

Retouren

input_data met toegevoegde correlatieheaders en -waarden.

Retourtype

Opmerkingen

Zodra de collect is aangeroepen, retourneert deze een set correlatieheaders en -waarden. Deze omvatten metagegevens zoals aanvraag-id, tijdstempel en een unieke correlatie-id die wordt gegenereerd door ModelDataCollector of als een parameter worden opgegeven. Deze waarden kunnen later worden gebruikt om verschillende typen gegevens te analyseren en te correleren. In het volgende voorbeeld ziet u hoe u correlaties toevoegt aan invoergegevens en voorspellingsgegevens. Houd er rekening mee dat het aanduidingstype 'invoer' standaard de correlatiegegevens bevat.


   # 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

Gegevens verzamelen voor opslag.

collect(input_data, user_correlation_id='')

Parameters

input_data
list, array, DataFrame, DataFrame
Vereist

De gegevens die moeten worden verzameld. Als voor gegevensframetypen een header bestaat met functienamen, wordt deze informatie opgenomen in de gegevensbestemming zonder dat de functienamen expliciet hoeven te worden doorgegeven in de constructor ModelDataCollector.

user_correlation_id
str
Vereist

Een optionele correlatie-id gebruikt om deze gegevens later te correleren.

Retouren

Een woordenlijst die correlatieheaders en -waarden bevat.

Retourtype

Kenmerken

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.8.10\\x64\\lib\\site-packages\\azureml\\monitoring\\tools\\modeldatacollector\\lib\\native\\Windows'