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.objectModelDataCollector
Constructor
ModelDataCollector(model_name, designation='default', feature_names=None, workspace='default/default/default', webservice_name='default', model_version='default', collection_name='default')
Parameters
- designation
- str
Een unieke aanduiding voor de locatie van de gegevensverzameling. Ondersteunde aanduidingen zijn 'invoer', 'voorspellingen', 'labels', 'signalen' en 'algemeen'.
- feature_names
- list
Een lijst met functienamen die de CSV-header worden wanneer deze wordt opgegeven.
- workspace
- str
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
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
De versie van het model. Dit wordt automatisch ingevuld wanneer modellen worden uitgevoerd via Azure Machine Learning.
- collection_name
- str
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
De gegevens waaraan u correlatieheaders en -waarden wilt toevoegen.
- correlations
- dict
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
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
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'
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub Issues geleidelijk uitfaseren als het feedbackmechanisme voor inhoud. Het wordt vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor