Gegevens verzamelen van modellen in productie

VAN TOEPASSING OP:Python SDK azureml v1

In dit artikel wordt beschreven hoe u gegevens verzamelt van een Azure Machine Learning-model dat is geïmplementeerd op een Azure Kubernetes Service (AKS)-cluster. De verzamelde gegevens worden vervolgens opgeslagen in Azure Blob Storage.

Zodra verzamelen is ingeschakeld, kunt u het volgende doen met de gegevens die u verzamelt:

  • Bewaak gegevensdrift van de productiegegevens die u verzamelt.

  • Verzamelde gegevens analyseren met Power BI of Azure Databricks

  • Neem betere beslissingen over wanneer u uw model opnieuw moet trainen of optimaliseren.

  • Uw model opnieuw trainen met de verzamelde gegevens.

Beperkingen

  • De functie voor het verzamelen van modelgegevens werkt alleen met een Ubuntu 18.04-installatiekopie.

Belangrijk

Vanaf 10-03-2023 is de Ubuntu 18.04-installatiekopie nu afgeschaft. Ondersteuning voor Ubuntu 18.04-installatiekopieën wordt vanaf januari 2023 verwijderd wanneer EOL op 30 april 2023 wordt bereikt.

De MDC-functie is niet compatibel met andere installatiekopieën dan Ubuntu 18.04, die niet meer beschikbaar is nadat de Ubuntu 18.04-installatiekopie is afgeschaft.

mMeer informatie die u kunt raadplegen:

Notitie

De functie voor gegevensverzameling is momenteel beschikbaar als preview-versie. Alle preview-functies worden niet aanbevolen voor productieworkloads.

Wat wordt verzameld en waar het naartoe gaat

De volgende gegevens kunnen worden verzameld:

  • Modelinvoergegevens van webservices die zijn geïmplementeerd in een AKS-cluster. Spraakaudio, afbeeldingen en video worden niet verzameld.

  • Modelvoorspellingen met behulp van productie-invoergegevens.

Notitie

Vooraggregatie en voorberekeningen van deze gegevens maken momenteel geen deel uit van de verzamelingsservice.

De uitvoer wordt opgeslagen in Blob Storage. Omdat de gegevens worden toegevoegd aan Blob Storage, kunt u uw favoriete hulpprogramma kiezen om de analyse uit te voeren.

Het pad naar de uitvoergegevens in de blob volgt deze syntaxis:

/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.0a16 heeft het argument de designation naam identifier. Als u uw code hebt ontwikkeld met een eerdere versie, moet u deze dienovereenkomstig bijwerken.

Vereisten

Gegevensverzameling inschakelen

U kunt gegevensverzameling inschakelen, ongeacht het model dat u implementeert via Azure Machine Learning of andere hulpprogramma's.

Als u gegevensverzameling wilt inschakelen, moet u het volgende doen:

  1. Open het scorebestand.

  2. Voeg de volgende code toe aan de bovenkant van het bestand:

    from azureml.monitoring import ModelDataCollector
    
  3. Declareer de variabelen voor gegevensverzameling in uw init functie:

    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 parameter. U hoeft deze niet te gebruiken als dit niet is vereist voor uw model. Het gebruik van CorrelationId helpt u gemakkelijker andere gegevens toe te wijzen, zoals LoanNumber of CustomerId.

    De id-parameter wordt later gebruikt voor het bouwen van de mapstructuur in uw blob. U kunt het gebruiken om onbewerkte gegevens te onderscheiden van verwerkte gegevens.

  4. Voeg de volgende regels code toe aan de run(input_df) functie:

    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 prediction data into Azure Blob
    
  5. Gegevensverzameling wordt niet automatisch ingesteld op true wanneer u een service in AKS implementeert. Werk uw configuratiebestand bij, zoals in het volgende voorbeeld:

    aks_config = AksWebservice.deploy_configuration(collect_model_data=True)
    

    U kunt Application Insights ook inschakelen voor servicebewaking door deze configuratie te wijzigen:

    aks_config = AksWebservice.deploy_configuration(collect_model_data=True, enable_app_insights=True)
    
  6. Zie Machine Learning-modellen implementeren in Azure als u een nieuwe installatiekopieën wilt maken en het machine learning-model wilt implementeren.

  7. Voeg het pip-pakket 'Azure-Monitoring' toe aan de conda-afhankelijkheden van de webserviceomgeving:

  env = Environment('webserviceenv')
  env.python.conda_dependencies = CondaDependencies.create(conda_packages=['numpy'],pip_packages=['azureml-defaults','azureml-monitoring','inference-schema[numpy-support]'])

Gegevens verzamelen uitschakelen

U kunt het verzamelen van gegevens op elk gewenst moment stoppen. Gebruik Python-code om het verzamelen van gegevens uit te schakelen.

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

Uw gegevens valideren en analyseren

U kunt een hulpprogramma van uw voorkeur kiezen om de gegevens te analyseren die zijn verzameld in uw Blob-opslag.

Snel toegang tot uw blobgegevens

  1. Meld u aan bij de Azure-portal.

  2. Open uw werkruimte.

  3. Selecteer Opslag.

    Selecteer de optie Opslag

  4. Volg het pad naar de uitvoergegevens van de blob met deze syntaxis:

    /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
    

Modelgegevens analyseren met Power BI

  1. Download en open Power BI Desktop.

  2. Selecteer Gegevens ophalen en selecteer Azure Blob Storage.

    Power BI-blob instellen

  3. Voeg de naam van uw opslagaccount toe en voer uw opslagsleutel in. U kunt deze informatie vinden door Instellingen>Toegangssleutels in uw blob te selecteren.

  4. Selecteer de modelgegevenscontainer en selecteer Bewerken.

    Power BI Navigator

  5. Klik in de queryeditor onder de kolom Naam en voeg uw opslagaccount toe.

  6. Voer het modelpad in het filter in. Als u alleen bestanden van een bepaald jaar of een specifieke maand wilt bekijken, vouwt u het filterpad uit. Als u bijvoorbeeld alleen naar de gegevens van maart wilt kijken, gebruikt u dit filterpad:

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

  7. Filter de gegevens die relevant voor u zijn op basis van naamwaarden . Als u voorspellingen en invoer hebt opgeslagen, moet u voor elke query een query maken.

  8. Selecteer de dubbele pijl-omlaag naast de kolomkop Inhoud om de bestanden te combineren.

    Power BI-inhoud

  9. Selecteer OK. De gegevens worden vooraf geladen.

    Bestanden combineren in Power BI

  10. Selecteer Sluiten en Toepassen.

  11. Als u invoer en voorspellingen hebt toegevoegd, worden uw tabellen automatisch geordend op RequestId-waarden .

  12. Begin met het bouwen van uw aangepaste rapporten op basis van uw modelgegevens.

Modelgegevens analyseren met Azure Databricks

  1. Maak een Azure Databricks-werkruimte.

  2. Ga naar uw Databricks-werkruimte.

  3. Selecteer In uw Databricks-werkruimte de optie Gegevens uploaden.

    De optie Databricks-gegevens uploaden selecteren

  4. Selecteer Nieuwe tabel maken en selecteer Andere gegevensbronnen>Azure Blob Storage>Tabel maken in notebook.

    Databricks-tabellen maken

  5. Werk de locatie van uw gegevens bij. Hier volgt een voorbeeld:

    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-installatie

  6. Volg de stappen op de sjabloon om uw gegevens weer te geven en te analyseren.

Volgende stappen

Detecteer gegevensdrift op de gegevens die u hebt verzameld.