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-Inazureml-mlflow
für MLflow wie folgt: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. Dieses Paket wird für diejenigen empfohlen, die in erster Linie die Funktionen für Nachverfolgung und Protokollierung benötigen und nicht sämtliche Features von MLflow (einschließlich Bereitstellungen) importieren möchten.Erstellen Sie einen Azure Machine Learning-Arbeitsbereich. Informationen zum Erstellen eines Arbeitsbereichs finden Sie unter Erstellen von Ressourcen für die ersten Schritte. Überprüfen Sie, welche Zugriffsberechtigungen Sie benötigen, um Ihre MLflow-Vorgänge in Ihrem Arbeitsbereich auszuführen.
Wenn Sie eine Remotenachverfolgung durchführen, d. h. eine Nachverfolgung von Experimenten, die außerhalb von Azure Machine Learning ausgeführt werden, konfigurieren Sie MLflow so, dass auf den Nachverfolgungs-URI Ihres Azure Machine Learning-Arbeitsbereichs verwiesen wird. 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.
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
Ü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.
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. WennCOMPUTE
vorhanden ist, wird das Projekt automatisch als Azure Machine Learning-Auftrag an die angegebene Computeressource übermittelt.backend_config.json
{ "COMPUTE": "cpu-cluster" }
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
Ü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:
Wählen Sie ganz links im Azure-Portal Ressourcengruppen aus.
Wählen Sie in der Liste die Ressourcengruppe aus, die Sie erstellt haben.
Wählen Sie die Option Ressourcengruppe löschen.
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.
- Trainieren eines MLflow-Projekts in einer lokalen Computeressource
- Trainieren eines MLflow-Projekts in einer Remotecomputeressource
Hinweis
Ein Communityrepository mit Beispielen, die MLflow verwenden, finden Sie unter https://github.com/Azure/azureml-examples.