Gegevens verzamelen van modellen in productieCollect data from models in production

In dit artikel wordt uitgelegd hoe u gegevens kunt verzamelen van een Azure Machine Learning model dat is geïmplementeerd op een AKS-cluster (Azure Kubernetes service).This article shows how to collect data from an Azure Machine Learning model deployed on an Azure Kubernetes Service (AKS) cluster. De verzamelde gegevens worden vervolgens opgeslagen in Azure Blob-opslag.The collected data is then stored in Azure Blob storage.

Zodra de verzameling is ingeschakeld, kunt u met de gegevens die u verzamelt, het volgende doen:Once collection is enabled, the data you collect helps you:

  • Bewaak gegevens drift over de productie gegevens die u verzamelt.Monitor data drifts on the production data you collect.

  • Analyseer verzamelde gegevens met behulp van Power bi of Azure DatabricksAnalyze collected data using Power BI or Azure Databricks

  • Neem betere beslissingen over wanneer u uw model opnieuw traint of optimaliseert.Make better decisions about when to retrain or optimize your model.

  • Train uw model opnieuw met de verzamelde gegevens.Retrain your model with the collected data.

Wat wordt verzameld en waar het gaatWhat is collected and where it goes

De volgende gegevens kunnen worden verzameld:The following data can be collected:

  • Model invoer gegevens van webservices die zijn geïmplementeerd in een AKS-cluster.Model input data from web services deployed in an AKS cluster. Voice audio, afbeeldingen en video worden niet verzameld.Voice audio, images, and video are not collected.

  • Model voorspellingen met behulp van invoer gegevens voor productie.Model predictions using production input data.

Notitie

Preaggregatie en voor berekeningen op deze gegevens maken momenteel geen deel uit van de verzamelings service.Preaggregation and precalculations on this data are not currently part of the collection service.

De uitvoer wordt opgeslagen in Blob Storage.The output is saved in Blob storage. Omdat de gegevens worden toegevoegd aan de Blob-opslag, kunt u uw favoriete hulp programma kiezen om de analyse uit te voeren.Because the data is added to Blob storage, you can choose your favorite tool to run the analysis.

Het pad naar de uitvoer gegevens in de BLOB volgt de volgende syntaxis:The path to the output data in the blob follows this syntax:

/modeldata/<subscriptionid>/<resourcegroup>/<workspace>/<webservice>/<model>/<version>/<designation>/<year>/<month>/<day>/data.csv
# example: /modeldata/1a2b3c4d-5e6f-7g8h-9i10-j11k12l13m14/myresourcegrp/myWorkspace/aks-w-collv9/best_model/10/inputs/2018/12/31/data.csv

Notitie

In versies van de Azure Machine Learning SDK voor python ouder dan versie 0.1.0 A16 wordt het designation argument genoemd identifier .In versions of the Azure Machine Learning SDK for Python earlier than version 0.1.0a16, the designation argument is named identifier. Als u uw code hebt ontwikkeld met een eerdere versie, moet u deze dienovereenkomstig bijwerken.If you developed your code with an earlier version, you need to update it accordingly.

VereistenPrerequisites

Gegevensverzameling inschakelenEnable data collection

U kunt gegevens verzameling inschakelen, ongeacht het model dat u via Azure machine learning of andere hulpprogram ma's implementeert.You can enable data collection regardless of the model you deploy through Azure Machine Learning or other tools.

Als u gegevens verzameling wilt inschakelen, moet u het volgende doen:To enable data collection, you need to:

  1. Open het Score bestand.Open the scoring file.

  2. Voeg de volgende code toe boven aan het bestand:Add the following code at the top of the file:

    from azureml.monitoring import ModelDataCollector
    
  3. Declareer de variabelen voor het verzamelen van gegevens in uw init functie:Declare your data collection variables in your init function:

    global inputs_dc, prediction_dc
    inputs_dc = ModelDataCollector("best_model", designation="inputs", feature_names=["feat1", "feat2", "feat3", "feat4", "feat5", "feat6"])
    prediction_dc = ModelDataCollector("best_model", designation="predictions", feature_names=["prediction1", "prediction2"])
    

    CorrelationId is een optionele para meter.CorrelationId is an optional parameter. U hoeft deze niet te gebruiken als uw model dit niet nodig heeft.You don't need to use it if your model doesn't require it. Het gebruik van CorrelationId helpt u gemakkelijker te koppelen met andere gegevens, zoals LoanNumber of CustomerId.Use of CorrelationId does help you more easily map with other data, such as LoanNumber or CustomerId.

    De id -para meter wordt later gebruikt voor het maken van de mapstructuur in uw blob.The Identifier parameter is later used for building the folder structure in your blob. U kunt deze gebruiken om onbewerkte gegevens te onderscheiden van verwerkte gegevens.You can use it to differentiate raw data from processed data.

  4. Voeg de volgende regels code toe aan de run(input_df) functie:Add the following lines of code to the run(input_df) function:

    data = np.array(data)
    result = model.predict(data)
    inputs_dc.collect(data) #this call is saving our input data into Azure Blob
    prediction_dc.collect(result) #this call is saving our input data into Azure Blob
    
  5. Het verzamelen van gegevens wordt niet automatisch ingesteld op True wanneer u een service in AKS implementeert.Data collection is not automatically set to true when you deploy a service in AKS. Werk uw configuratie bestand bij, zoals in het volgende voor beeld:Update your configuration file, as in the following example:

    aks_config = AksWebservice.deploy_configuration(collect_model_data=True)
    

    U kunt ook Application Insights voor service bewaking inschakelen door deze configuratie te wijzigen:You can also enable Application Insights for service monitoring by changing this configuration:

    aks_config = AksWebservice.deploy_configuration(collect_model_data=True, enable_app_insights=True)
    
  6. Zie implementeren en waarals u een nieuwe installatie kopie wilt maken en het machine learning model wilt implementeren.To create a new image and deploy the machine learning model, see How to deploy and where.

Gegevens verzamelen uitschakelenDisable data collection

U kunt het verzamelen van gegevens op elk gewenst moment stoppen.You can stop collecting data at any time. Gebruik python-code om het verzamelen van gegevens uit te scha kelen.Use Python code to disable data collection.

## replace <service_name> with the name of the web service
<service_name>.update(collect_model_data=False)

Valideer en analyseer uw gegevensValidate and analyze your data

U kunt een hulp programma kiezen van uw voor keur voor het analyseren van de gegevens die in uw Blob-opslag zijn verzameld.You can choose a tool of your preference to analyze the data collected in your Blob storage.

Snel toegang krijgen tot uw BLOB-gegevensQuickly access your blob data

  1. Meld u aan bij de Azure-portal.Sign in to Azure portal.

  2. Open uw werk ruimte.Open your workspace.

  3. Selecteer Opslag.Select Storage.

    Selecteer de optie voor opslagSelect the Storage option

  4. Volg het pad naar de uitvoer gegevens van de blob met de volgende syntaxis:Follow the path to the blob's output data with this syntax:

    /modeldata/<subscriptionid>/<resourcegroup>/<workspace>/<webservice>/<model>/<version>/<designation>/<year>/<month>/<day>/data.csv
    # example: /modeldata/1a2b3c4d-5e6f-7g8h-9i10-j11k12l13m14/myresourcegrp/myWorkspace/aks-w-collv9/best_model/10/inputs/2018/12/31/data.csv
    

Model gegevens analyseren met behulp van Power BIAnalyze model data using Power BI

  1. Down load en open Power bi Desktop.Download and open Power BI Desktop.

  2. Selecteer gegevens ophalen en selecteer Azure Blob Storage.Select Get Data and select Azure Blob Storage.

    Setup van Power BI BLOBPower BI blob setup

  3. Voeg de naam van uw opslag account toe en voer uw opslag sleutel in.Add your storage account name and enter your storage key. U kunt deze informatie vinden door instellingen > toegangs sleutels in uw BLOB te selecteren.You can find this information by selecting Settings > Access keys in your blob.

  4. Selecteer de container model gegevens en selecteer bewerken.Select the model data container and select Edit.

    Power BI NavigatorPower BI Navigator

  5. Klik in de query-editor op onder de kolom naam en voeg uw opslag account toe.In the query editor, click under the Name column and add your storage account.

  6. Voer het pad naar het model in het filter in.Enter your model path into the filter. Als u alleen wilt zoeken naar bestanden van een bepaald jaar of per maand, vouwt u het pad naar het filter uit.If you want to look only into files from a specific year or month, just expand the filter path. Als u bijvoorbeeld alleen in maart gegevens wilt bekijken, gebruikt u dit pad naar het filter:For example, to look only into March data, use this filter path:

    /modeldata/ <subscriptionid> / <resourcegroupname> / <workspacename> / <webservicename> / <modelname> / <modelversion> / <designation> / <year> /3/modeldata/<subscriptionid>/<resourcegroupname>/<workspacename>/<webservicename>/<modelname>/<modelversion>/<designation>/<year>/3

  7. Filter de gegevens die relevant zijn voor u op basis van naam waarden.Filter the data that is relevant to you based on Name values. Als u voor spellingen en invoer hebt opgeslagen, moet u een query maken voor elke.If you stored predictions and inputs, you need to create a query for each.

  8. Selecteer de dubbele pijl-omlaag naast de kolomkop om de bestanden te combi neren.Select the downward double arrows next to the Content column heading to combine the files.

    Power BI inhoudPower BI Content

  9. Selecteer OK.Select OK. De gegevens worden geladen.The data preloads.

    Power BI bestanden combi nerenPower BI Combine Files

  10. Selecteer sluiten en Toep assen.Select Close and Apply.

  11. Als u invoer en voor spellingen hebt toegevoegd, worden uw tabellen automatisch gerangschikt op basis van aanvraag -waarden.If you added inputs and predictions, your tables are automatically ordered by RequestId values.

  12. Begin met het bouwen van uw aangepaste rapporten in uw model gegevens.Start building your custom reports on your model data.

Model gegevens analyseren met behulp van Azure DatabricksAnalyze model data using Azure Databricks

  1. Maak een Azure Databricks-werk ruimte.Create an Azure Databricks workspace.

  2. Ga naar uw Databricks-werk ruimte.Go to your Databricks workspace.

  3. Selecteer gegevens uploaden in uw Databricks-werk ruimte.In your Databricks workspace, select Upload Data.

    De optie Databricks-gegevens uploaden selecterenSelecting Databricks Upload Data option

  4. Selecteer nieuwe tabel maken en selecteer andere gegevens bronnen > Azure Blob Storage > tabel maken in notitie blok.Select Create New Table and select Other Data Sources > Azure Blob Storage > Create Table in Notebook.

    Databricks-tabel makenDatabricks table creation

  5. Werk de locatie van uw gegevens bij.Update the location of your data. Hier volgt een voorbeeld:Here is an example:

    file_location = "wasbs://mycontainer@storageaccountname.blob.core.windows.net/modeldata/1a2b3c4d-5e6f-7g8h-9i10-j11k12l13m14/myresourcegrp/myWorkspace/aks-w-collv9/best_model/10/inputs/2018/*/*/data.csv" 
    file_type = "csv"
    

    Databricks-installatieDatabricks setup

  6. Volg de stappen in de sjabloon om uw gegevens weer te geven en te analyseren.Follow the steps on the template to view and analyze your data.

Volgende stappenNext steps

Gegevens drift detecteren op gegevens die u hebt verzameld.Detect data drift on the data you have collected.