Training mit MLflow-Projekten in Azure Machine Learning (Vorschau)

In diesem Artikel erfahren Sie, wie Sie Trainingsaufträge mit MLflow-Projekten übermitteln, die Azure Machine Learning-Arbeitsbereiche zur Nachverfolgung nutzen. Sie können Aufträge übermitteln und sie ausschließlich mit Azure Machine Learning verfolgen, oder Sie können Ihre Aufträge zur Cloud migrieren, um sie vollständig in Azure Machine Learning Compute auszuführen.

Warnung

Die Unterstützung für MLproject-Dateien (MLflow-Projekte) in Azure Machine Learning wird im September 2026 vollständig eingestellt. MLflow wird weiterhin vollständig unterstützt und ist weiterhin die empfohlene Methode zum Nachverfolgen von Machine Learning-Workloads in Azure Machine Learning.

Während Sie MLflow weiterhin verwenden, wird empfohlen, dass Sie von MLproject-Dateien zu Azure Machine Learning-Aufträgen wechseln, indem Sie entweder die Azure CLI oder das Azure Machine Learning SDK für Python (v2) verwenden. Weitere Informationen zu Azure Machine Learning-Aufträgen finden Sie unter Nachverfolgen von ML-Experimenten und -Modellen mit MLflow.

MLflow-Projekte ermöglichen es Ihnen, Ihren Code zu organisieren und zu beschreiben, damit Sie von anderen Datenanalysten (oder automatisierten Tools) ausgeführt werden können. MLflow-Projekte mit Azure Machine Learning ermöglichen es, Trainingsausführungen in Ihrem Arbeitsbereich nachzuverfolgen und zu verwalten.

Wichtig

Dieses Feature ist zurzeit als öffentliche Preview verfügbar. Diese Vorschauversion wird ohne Vereinbarung zum Servicelevel bereitgestellt und ist nicht für Produktionsworkloads vorgesehen. Manche Features werden möglicherweise nicht unterstützt oder sind nur eingeschränkt verwendbar.

Weitere Informationen finden Sie unter Zusätzliche Nutzungsbestimmungen für Microsoft Azure-Vorschauen.

Erfahren Sie mehr über die Integration von MLflow und Azure Machine Learning.

Voraussetzungen

  • Installieren Sie das Mlflow SDK-Paket mlflow und das Azure Machine Learning-Plug-In für MLflow azureml-mlflow.

    pip install mlflow azureml-mlflow
    

    Tipp

    Sie können auch das Paket mlflow-skinny verwenden. Dabei handelt es sich um ein abgespecktes MLflow-Paket ohne SQL-Speicher, Server, Benutzeroberfläche oder Data Science-Abhängigkeiten. mlflow-skinny wird für diejenigen empfohlen, die in erster Linie die Funktionen für Nachverfolgung und Protokollierung benötigen und nicht sämtliche Funktionen von MLflow (einschließlich Bereitstellungen) importieren möchten.

  • Ein Azure Machine Learning-Arbeitsbereich. Sie können eines erstellen, indem Sie das Tutorial „Erstellen von Ressourcen für maschinelles Lernen“ ausführen.

  • Wenn Sie eine Remote-Nachverfolgung durchführen (d.h. Nachverfolgung von Experimenten, die außerhalb von Azure Machine Learning ausgeführt werden), konfigurieren Sie MLflow so, dass es auf den Nachverfolgungs-URI Ihres Azure Machine Learning-Arbeitsbereichs verweist. Weitere Informationen zum Herstellen einer Verbindung zwischen MLflow und dem Arbeitsbereich finden Sie unter Konfigurieren von MLflow für Azure Machine Learning.

  • Die Verwendung von Azure Machine Learning als Back-End für MLflow-Projekte erfordert das Paket azureml-core:

    pip install azureml-core
    

Herstellen einer Verbindung mit Ihrem Arbeitsbereich

Wenn Sie außerhalb von Azure Machine Learning arbeiten, müssen Sie MLflow so konfigurieren, dass auf den Tracking-URI Ihres Azure Machine Learning-Arbeitsbereichs verwiesen wird. Die entsprechenden Anweisungen finden Sie unter Konfigurieren von MLflow für Azure Machine Learning.

Trainieren von MLflow-Projekten in Azure Machine Learning-Arbeitsbereichen

Dieses Beispiel zeigt, wie Sie MLflow-Projekte übermitteln und sie mit Azure Machine Learning nachverfolgen können.

  1. Fügen Sie das azureml-mlflow-Paket als PIP-Abhängigkeit Ihrer Umgebungskonfigurationsdatei hinzu, um Metriken und wichtige Artefakte in Ihrem Arbeitsbereich zu verfolgen.

    conda.yaml

    name: mlflow-example
    channels:
      - defaults
    dependencies:
      - numpy>=1.14.3
      - pandas>=1.0.0
      - scikit-learn
      - pip:
        - mlflow
        - azureml-mlflow
    
  2. Übermitteln Sie die lokale Ausführung, und stellen Sie sicher, dass Sie den Parameter backend = "azureml" festlegen. Dadurch umfasst Ihr Arbeitsbereich Unterstützung für automatische Nachverfolgung, Modellerfassung, Protokolldateien, Momentaufnahmen und Fehlerausgabe. In diesem Beispiel wird davon ausgegangen, dass sich das auszuführende MLflow-Projekt im selben Ordner befindet, in dem Sie gerade arbeiten, uri=".".

    mlflow run . --experiment-name  --backend azureml --env-manager=local -P alpha=0.3
    

    Zeigen Sie Ihre Ausführungen und Metriken in Azure Machine Learning Studio an.

Trainieren von MLflow-Projekten in Azure Machine Learning-Aufträgen

Dieses Beispiel gezeigt, wie Sie ein MLflow-Projekt als Auftrag übermitteln, der in Azure Machine Learning Compute ausgeführt wird.

  1. Erstellen Sie das Back-End-Konfigurationsobjekt. Wir geben in diesem Fall COMPUTE an. Dieser Parameter verweist auf den Namen Ihres Remotecomputeclusters, den Sie zum Ausführen Ihres Projekts verwenden möchten. Wenn COMPUTE vorhanden ist, wird das Projekt automatisch als Azure Machine Learning-Auftrag an die angegebene Computeressource übermittelt.

    backend_config.json

    {
        "COMPUTE": "cpu-cluster"
    }
    
    
  2. Fügen Sie das azureml-mlflow-Paket als PIP-Abhängigkeit Ihrer Umgebungskonfigurationsdatei hinzu, um Metriken und wichtige Artefakte in Ihrem Arbeitsbereich zu verfolgen.

    conda.yaml

    name: mlflow-example
    channels:
      - defaults
    dependencies:
      - numpy>=1.14.3
      - pandas>=1.0.0
      - scikit-learn
      - pip:
        - mlflow
        - azureml-mlflow
    
  3. Übermitteln Sie die lokale Ausführung, und stellen Sie sicher, dass Sie den Parameter backend = "azureml" festlegen. Dadurch umfasst Ihr Arbeitsbereich Unterstützung für automatische Nachverfolgung, Modellerfassung, Protokolldateien, Momentaufnahmen und Fehlerausgabe. In diesem Beispiel wird davon ausgegangen, dass sich das auszuführende MLflow-Projekt im selben Ordner befindet, in dem Sie gerade arbeiten, uri=".".

    mlflow run . --backend azureml --backend-config backend_config.json -P alpha=0.3
    

    Hinweis

    Da Azure Machine Learning-Aufträge immer im Kontext von Umgebungen ausgeführt werden, wird der Parameter env_manager ignoriert.

    Zeigen Sie Ihre Ausführungen und Metriken in Azure Machine Learning Studio an.

Bereinigen von Ressourcen

Beachten Sie Folgendes, falls Sie nicht planen, die protokollierten Metriken und Artefakte in Ihrem Arbeitsbereich zu verwenden: Das Löschen einzelner Einträge ist derzeit nicht möglich. Löschen Sie stattdessen die Ressourcengruppe, die das Speicherkonto und den Arbeitsbereich enthält, damit hierfür keine Gebühren anfallen:

  1. Wählen Sie ganz links im Azure-Portal Ressourcengruppen aus.

    Image showing how to delete an Azure resource group.

  2. Wählen Sie in der Liste die Ressourcengruppe aus, die Sie erstellt haben.

  3. Wählen Sie die Option Ressourcengruppe löschen.

  4. Geben Sie den Ressourcengruppennamen ein. Wählen Sie anschließend die Option Löschen.

Beispielnotebooks

In den Notebooks „MLflow mit Azure Machine Learning“ werden die in diesem Artikel vorgestellten Konzepte weiter erläutert und demonstriert.

Hinweis

Ein Communityrepository mit Beispielen, die MLflow verwenden, finden Sie unter https://github.com/Azure/azureml-examples.

Nächste Schritte