Sammeln von Daten von Modellen in der Produktion

GILT FÜR:Python SDK azureml v1

In diesem Artikel wird beschrieben, wie Sie Daten aus einem Azure Machine Learning Modell sammeln, das in einem Azure Kubernetes Service-Cluster (AKS) bereitgestellt wird. Die gesammelten Daten werden anschließend in Azure Blob Storage gespeichert.

Nach der Aktivierung der Sammlung unterstützen die gesammelten Daten Sie bei den folgenden Aufgaben:

  • Überwachen Sie Datendrifts bei den Produktionsdaten, die Sie erfassen.

  • Analysieren der gesammelten Daten mit Power BI oder Azure Databricks

  • Fundiertere Entscheidungen in Bezug auf den Zeitpunkt zum erneuten Trainieren oder Optimieren des Modells

  • Erneutes Trainieren des Modells mit den gesammelten Daten

Einschränkungen

  • Das Feature für die Modelldatensammlung kann nur mit dem Ubuntu 18.04-Image funktionieren.

Wichtig

Seit dem 10.03.2023 ist das Ubuntu 18.04-Image veraltet. Die Unterstützung für Ubuntu 18.04-Images wird ab Januar 2023 eingestellt, wenn das Lebensdauerende am 30. April 2023 erreicht wird.

Das MDC-Feature ist mit keinem anderen Image als Ubuntu 18.04 kompatibel. Dies ist nicht verfügbar, nachdem das Ubuntu 18.04-Image veraltet ist.

Weitere Informationen, auf die Sie sich beziehen können:

Hinweis

Die Datensammlungsfunktion befindet sich derzeit in der Vorschauphase. Previewfunktionen werden für Produktionsworkloads nicht empfohlen.

Welche Daten werden gesammelt, und wo werden sie gespeichert?

Die folgenden Daten können gesammelt werden:

  • Modelleingabedaten von Webdiensten, die in einem AKS-Cluster bereitgestellt werden. Sprachaudiodaten, Bilder und Videos werden nicht erfasst.

  • Modellvorhersagen, die auf Eingabedaten aus der Produktion gestützt sind.

Hinweis

Vorabaggregation und -berechnungen für diese Daten sind zurzeit nicht Teil des Sammlungsdiensts.

Die Ausgabe wird im Blobspeicher gespeichert. Da die Daten dem Blobspeicher hinzugefügt werden, können Sie Ihr bevorzugtes Tool zum Ausführen der Analyse auswählen.

Der Pfad zu den Ausgabedaten im Blob folgt dieser 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

Hinweis

In älteren Versionen des Azure Machine Learning SDK für Python als Version 0.1.0a16 hat das Argument designation den Namen identifier. Wenn Ihr Code mit einer älteren Version entwickelt wurde, müssen Sie ihn entsprechend aktualisieren.

Voraussetzungen

Aktivieren der Datensammlung

Sie können die Datensammlung ungeachtet des über Azure Machine Learning oder andere Tools bereitgestellten Modells aktivieren.

Führen Sie zum Aktivieren der Datensammlung folgende Schritte aus:

  1. Öffnen Sie die Bewertungsdatei.

  2. Fügen Sie den folgenden Code am Anfang der Datei hinzu:

    from azureml.monitoring import ModelDataCollector
    
  3. Deklarieren Sie die Variablen für die Datensammlung in der init-Funktion:

    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"])
    

    Der Parameter CorrelationId ist optional. Sie müssen ihn nicht verwenden, wenn er für das Modell nicht erforderlich ist. Die Verwendung von CorrelationId erleichtert die Zuordnung zu anderen Daten, etwa LoanNumber oder CustomerId.

    Der Parameter Identifier wird später zum Erstellen der Ordnerstruktur in Ihrem Blob verwendet. Sie können ihn verwenden, um Rohdaten von verarbeiteten Daten zu unterscheiden.

  4. Fügen Sie die folgenden Codezeilen der run(input_df)-Funktion hinzu:

    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. Die Datensammlung wird nicht automatisch auf true festgelegt, wenn Sie einen Dienst in AKS bereitstellen. Aktualisieren Sie Ihre Konfigurationsdatei, wie im folgenden Beispiel gezeigt:

    aks_config = AksWebservice.deploy_configuration(collect_model_data=True)
    

    Sie können auch Application Insights für die Dienstüberwachung aktivieren, indem Sie diese Konfiguration ändern:

    aks_config = AksWebservice.deploy_configuration(collect_model_data=True, enable_app_insights=True)
    
  6. Informationen zum Erstellen eines neuen Images und zum Bereitstellen des Machine Learning-Modells finden Sie unter Bereitstellen von Machine Learning-Modellen in Azure.

  7. Fügen Sie das pip-Paket „Azure-Monitoring“ zu den Conda-Abhängigkeiten der Webdienstumgebung hinzu:

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

Datensammlung deaktivieren

Sie können das Sammeln von Daten jederzeit beenden. Verwenden Sie Python-Code zum Deaktivieren der Datensammlung.

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

Überprüfen und Analysieren Ihrer Daten

Sie können ein beliebiges Tool Ihrer Wahl verwenden, um die im Blobspeicher erfassten Daten zu analysieren.

Schnelles Zugreifen auf Ihre Blobdaten

  1. Melden Sie sich beim Azure-Portalan.

  2. Öffnen Sie Ihren Arbeitsbereich.

  3. Wählen Sie Speicher.

    Auswählen der Speicheroption

  4. Folgen Sie dem Pfad zu den Ausgabedaten des Blobs mit dieser 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
    

Analysieren von Modelldaten mithilfe von Power BI

  1. Laden Sie Power BI Desktop herunter, und öffnen Sie diese Anwendung.

  2. Wählen Sie Daten abrufen und anschließend Azure Blob Storage aus.

    Power BI-Blob-Setup

  3. Fügen Sie den Namen Ihres Speicherkontos hinzu, und geben Sie Ihren Speicherschlüssel ein. Sie finden diese Informationen, indem Sie in Ihrem Blob Einstellungen>Zugriffsschlüssel auswählen.

  4. Wählen Sie den Container Modelldaten und dann Bearbeiten aus.

    Power BI-Navigator

  5. Klicken Sie im Abfrage-Editor unter der Spalte Name, und fügen Sie Ihr Speicherkonto hinzu.

  6. Geben Sie Ihren Modellpfad in den Filter ein. Erweitern Sie einfach den Filterpfad, wenn Sie sich nur die Dateien für ein bestimmtes Jahr oder einen bestimmten Monat ansehen möchten. Verwenden Sie beispielsweise den folgenden Filterpfad, wenn Sie nur die Daten vom März anzeigen möchten:

    /modeldata/<Abonnement-ID>/<Ressourcengruppenname>/<Arbeitsbereichsname>/<Webdienstname>/<Modellname>/<Modellversion>/<Bezeichnung>/<Jahr>/3

  7. Filtern Sie die Daten, die für Sie relevant sind, nach den Werten für Name. Wenn Sie Vorhersagen und Eingaben gespeichert haben, müssen Sie für jede jeweils eine separate Abfrage erstellen.

  8. Wählen Sie den nach unten zeigenden Doppelpfeil neben der Spaltenüberschrift Inhalt aus, um die Dateien zu kombinieren.

    Power BI: Inhalt

  9. Klicken Sie auf OK. Die Daten werden vorab geladen.

    Power BI: Kombinieren von Dateien

  10. Wählen Sie Schließen und übernehmen aus.

  11. Wenn Sie Eingaben und Vorhersagen hinzugefügt haben, werden Ihre Tabellen automatisch anhand der RequestId-Werte sortiert.

  12. Beginnen Sie mit der Erstellung Ihrer benutzerdefinierten Berichte in Ihren Modelldaten.

Analysieren von Modelldaten mithilfe von Azure Databricks

  1. Erstellen Sie einen Azure Databricks-Arbeitsbereich.

  2. Greifen Sie auf Ihren Databricks-Arbeitsbereich zu.

  3. Wählen Sie in Ihrem Databricks-Arbeitsbereich die Option Daten hochladen aus.

    Auswählen der Databricks-Option „Daten hochladen“

  4. Wählen Sie Neue Tabelle erstellen und dann Weitere Datenquellen>Azure Blob Storage>Tabelle in Notebook erstellen aus.

    Databricks: Erstellen einer Tabelle

  5. Aktualisieren Sie den Speicherort Ihrer Daten. Beispiel:

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

  6. Führen Sie die Schritte in der Vorlage aus, um Ihre Daten anzuzeigen und zu analysieren.

Nächste Schritte

Erkennen von Datendrifts bei den gesammelten Daten.