MLflow und Azure Machine Learning
GILT FÜR:Azure CLI ML-Erweiterung v2 (aktuell)Python SDK azure-ai-ml v2 (aktuell)
Dieser Artikel beschreibt die Funktionalitäten von MLflow, einem Open-Source-Framework zum Verwalten des gesamten Lebenszyklus des maschinellen Lernens. MLflow verwendet einen konsistenten Satz von Tools, um Modelle auf verschiedenen Plattformen zu trainieren und zu bedienen. Sie können MLflow verwenden, unabhängig davon, ob Ihre Experimente lokal oder auf einem Remote-Computeziel, einer VM oder einer Azure Machine Learning-Compute-Instanz ausgeführt werden.
Azure Machine Learning-Arbeitsbereiche sind mit MLflow kompatibel, was bedeutet, dass Sie Azure Machine Learning-Arbeitsbereiche auf die gleiche Weise verwenden können, wie Sie einen MLflow-Server verwenden. Diese Kompatibilität hat folgende Vorteile:
- Azure Machine Learning hostet keine MLflow-Serverinstanzen, kann aber die MLflow-APIs direkt verwenden.
- Sie können Azure Machine Learning-Arbeitsbereiche als Nachverfolgungsserver für jeden beliebigen MLflow-Code nutzen, unabhängig davon, ob er in Azure Machine Learning ausgeführt wird oder nicht. Sie müssen MLflow lediglich so konfigurieren, dass es auf den Arbeitsbereich verweist, in dem die Nachverfolgung stattfinden soll.
- Sie können jede Trainingsroutine, die MLflow verwendet, in Azure Machine Learning ausführen, ohne Änderungen vorzunehmen.
Tipp
Im Gegensatz zum Azure Machine Learning-SDK v1 gibt es im Azure Machine Learning-SDK für Python (v2) keine Protokollierungsfunktionalität. Sie können die MLflow-Protokollierung verwenden, um sicherzustellen, dass Ihre Trainingsroutinen Cloud-agnostisch und portierbar sind und keine Abhängigkeit von Azure Machine Learning haben.
Was ist Tracking?
Wenn Sie mit Aufträgen arbeiten, verfolgt Azure Machine Learning automatisch einige Informationen über Ihre Experimente nach, z. B. Code, Umgebung und Eingabe- und Ausgabedaten. Modelle, Parameter und Metriken sind jedoch szenariospezifisch, sodass Modell-Generatoren ihre Nachverfolgung konfigurieren müssen.
Die gespeicherten Nachverfolgungsmetadaten variieren je nach Experiment und können Folgendes umfassen:
- Code
- Umgebungsdetails wie Betriebssystemversion und Python-Pakete
- Eingabedaten
- Parameterkonfigurationen
- Modelle
- Auswertungsmetriken
- Auswertungsvisualisierungen wie Konfusionsmatrizen und Wichtigkeitsplots
- Auswertungsergebnisse, einschließlich einiger Auswertungsvorhersagen
Vorteile bei der Nachverfolgung von Experimenten
Ganz gleich, ob Sie Modelle mit Aufträgen in Azure Machine Learning oder interaktiv in Notebooks trainieren, die Experimentverfolgung hilft Ihnen dabei:
- Organisieren aller Ihrer Experimente des maschinellen Lernens an einem zentralen Ort. Anschließend können Sie Experimente durchsuchen und filtern und einen Drilldown ausführen, um Details zu den vorherigen Experimenten anzuzeigen.
- Vergleichen Sie Experimente, analysieren Sie Ergebnisse und debuggen Sie Modelltraining ganz einfach.
- Reproduzieren oder erneutes Ausführen von Experimenten, um die Ergebnisse zu überprüfen.
- Verbessern Sie die Zusammenarbeit, da Sie sehen können was andere Teammitglieder tun, Experimentergebnisse freigeben und programmgesteuert auf Experimentdaten zugreifen können.
Nachverfolgung mit MLflow
Azure Machine Learning-Arbeitsbereiche sind MLflow-kompatibel. Dank dieser Kompatibilität können Sie mit MLflow Ausführungen, Metriken, Parameter und Artefakte in Arbeitsbereichen nachverfolgen, ohne Ihre Trainingsroutinen ändern oder eine Cloud-spezifische Syntax einfügen zu müssen. Um zu erfahren, wie Sie MLflow zum Nachverfolgen von Experimenten und Ausführungen in Azure Machine Learning-Arbeitsbereichen verwenden, lesen Sie Nachverfolgung von Experimenten und Modellen mit MLflow.
Azure Machine Learning verwendet MLflow-Nachverfolgung für die Metrikprotokollierung und die Artefaktspeicherung für Ihre Experimente. Wenn Sie mit Azure Machine Learning verbunden sind, werden alle MLflow-Nachverfolgungen in dem Arbeitsbereich materialisiert, in dem Sie arbeiten.
Wie Sie die Protokollierung aktivieren, um Echtzeit-Ausführungsmetriken mit MLflow zu überwachen, erfahren Sie unter Protokollieren von Metriken, Parametern und Dateien mit MLflow. Sie können auch Experimente abfragen und vergleichen und mit MLflow ausführen.
MLflow in Azure Machine Learning bietet eine Möglichkeit, die Nachverfolgung zu zentralisieren. Sie können MLflow mit Azure Machine Learning-Arbeitsbereichen verbinden – auch bei lokaler Ausführung oder Ausführung in einer anderen Cloud. Der Azure Machine Learning-Arbeitsbereich bietet einen zentralen, sicheren und skalierbaren Ort zum Speichern von Trainingsmetriken und Modellen.
MLflow in Azure Machine Learning kann Folgendes tun:
- Nachverfolgen von Machine Learning-Experimenten und -Modellen, die lokal oder in der Cloud ausgeführt werden.
- Nachverfolgen von Machine Learning-Experimenten in Azure Databricks.
- Nachverfolgen von Machine Learning-Experimenten in Azure Synapse Analytics.
Nachverfolgung mit MLflow in R
Für die MLflow-Unterstützung in R gelten folgende Einschränkungen:
- Die MLflow-Nachverfolgung ist auf das Nachverfolgen der Metriken, Parameter und Modelle des Experiments in Azure Machine Learning-Aufträgen beschränkt.
- Interaktives Training in RStudio, Posit (früher RStudio Workbench) oder Jupyter-Notebooks mit R-Kernel werden nicht unterstützt.
- Modellverwaltung und -registrierung werden nicht unterstützt. Verwenden Sie die Azure Machine Learning-CLI oder Azure Machine Learning Studio für die Modellregistrierung und -verwaltung.
Beispiele für die Verwendung des MLflow-Nachverfolgungsclients mit R-Modellen in Azure Machine Learning finden Sie unter Trainieren von R-Modellen mithilfe der Azure Machine Learning CLI (v2).
Nachverfolgung mit MLflow in Java
Für die MLflow-Unterstützung in Java gelten folgende Einschränkungen:
- Die MLflow-Nachverfolgung ist auf das Nachverfolgen der Metriken und Parameter des Experiments in Azure Machine Learning-Aufträgen beschränkt.
- Artefakte und Modelle können nicht nachverfolgt werden. Verwenden Sie stattdessen die Methode
mlflow.save_model
mit dem Ordneroutputs
, um Modelle oder Artefakte zu speichern, die Sie aufzeichnen möchten.
Ein Java-Beispiel, das den MLflow-Nachverfolgungsclient mit dem Azure Machine Learning-Nachverfolgungsserver verwendet, finden Sie unter azuremlflow-java.
Beispielnotebooks für die MLflow-Nachverfolgung
- Trainieren und Nachverfolgen eines XGBoost-Klassifizierers mit MLflow zeigt, wie Sie MLflow verwenden, um Experimente nachzuverfolgen, Modelle zu protokollieren und mehrere Varianten in Pipelines zu kombinieren.
- Trainieren und Nachverfolgen eines XGBoost-Klassifizierers mit MLflow mithilfe der Dienstprinzipalauthentifizierung zeigt, wie Sie MLflow verwenden, um Experimente von einer Compute-Instanz nachzuverfolgen, die außerhalb von Azure Machine Learning ausgeführt wird. Das Beispiel zeigt, wie Sie sich mithilfe eines Dienstprinzipals gegenüber Azure Machine Learning-Diensten authentifizieren.
- Hyperparameteroptimierung mithilfe von HyperOpt und geschachtelten Ausführungen in MLflow zeigt, wie Sie untergeordnete Ausführungen verwenden, um eine Hyperparameteroptimierung für Modelle mit der beliebten HyperOpt-Bibliothek durchzuführen. Es wird gezeigt, wie Metriken, Parameter und Artefakte von untergeordneten Ausführungen in übergeordnete Ausführungen übertragen werden.
- Protokollieren von Modellen mit MLflow zeigt, wie Sie mit MLflow das Konzept von Modellen anstelle von Artefakten verwenden. Das Beispiel zeigt auch, wie benutzerdefinierte Modelle erstellt werden.
- Verwalten von Ausführungen und Experimenten mit MLflow zeigt, wie Sie MLflow verwenden, um Experimente, Ausführungen, Metriken, Parameter und Artefakte aus Azure Machine Learning abzufragen.
Modellregistrierung mit MLflow
Azure Machine Learning unterstützt MLflow für die Modellverwaltung. Dieser Support ist eine bequeme Möglichkeit für Benutzer, die mit dem MLflow-Client vertraut sind, den gesamten Modelllebenszyklus zu verwalten. Weitere Informationen zum Verwalten von Modellen mithilfe der MLflow-API in Azure Machine Learning finden Sie unter Verwalten von Modellregistrierungen in Azure Machine Learning mit MLflow.
Beispielnotebook für die MLflow-Modellregistrierung
Modellverwaltung mit MLflow zeigt, wie Sie Modelle in Registrierungen verwalten.
Modellimplementierung mit MLflow
Sie können MLflow-Modelle in Azure Machine Learning bereitstellen, um von einer verbesserten Erfahrung zu profitieren. Azure Machine Learning unterstützt die Bereitstellung von MLflow-Modellen sowohl für Echtzeit- als auch für Batchendpunkte, ohne die Umgebung oder ein Bewertungsskript angeben zu müssen.
Das MLflow-SDK, die Azure Machine Learning-CLI, das Azure Machine Learning-SDK für Python und Azure Machine Learning Studio unterstützen alle die MLflow-Modellimplementierung. Weitere Informationen zum Bereitstellen von MLflow-Modellen für Azure Machine Learning für Echtzeit- wie Batchrückschließen finden Sie unter Leitlinien für die Bereitstellung von MLflow-Modellen.
Beispielnotebooks für die MLflow-Modellimplementierung
- Bereitstellen von MLflow für Online-Endpunkte zeigt, wie Sie MLflow-Modelle für Onlineendpunkte mithilfe des MLflow-SDK bereitstellen.
- Progressiver Rollout von MLflow-Bereitstellungen zeigt, wie Sie MLflow-Modelle mithilfe des MLflow-SDK mit progressivem Modellrollout für Onlineendpunkte bereitstellen. Das Beispiel zeigt außerdem die Bereitstellung mehrerer Versionen eines Modells im selben Endpunkt.
- Bereitstellen von MLflow-Modellen auf Legacy-Webdiensten zeigt, wie Sie MLflow-Modelle mithilfe des MLflow-SDKs in Legacy-Webdiensten (Azure Container Instances oder Azure Kubernetes Service v1) bereitstellen.
- Trainieren von Modellen in Azure Databricks und Bereitstellen der Modelle in Azure Machine Learning zeigt, wie Sie Modelle in Azure Databricks trainieren und in Azure Machine Learning bereitstellen. Das Beispiel umfasst auch das Nachverfolgen von Experimenten mit der MLflow-Instanz in Azure Databricks.
Training mit MLflow-Projekten (Vorschau)
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.
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.
Sie können Trainingsaufträge mithilfe von MLflow-Projekten an Azure Machine Learning übermitteln. Sie können Aufträge lokal über die Azure Machine Learning-Nachverfolgung übermitteln oder Ihre Aufträge zur Cloud über Azure Machine Learning Compute migrieren.
Um zu erfahren, wie Sie Trainingsaufträge, die MLflow-Projekte verwenden, an Azure Machine Learning-Arbeitsbereiche zur Nachverfolgung übermitteln, finden Sie unter Trainieren mit MLflow-Projekten in Azure Machine Learning (Vorschau).
Beispielnotebooks für MLflow-Projekte
- Trainieren von MLflow-Projekten in einer lokalen Compute-Instanz.
- Training mit MLflow-Projekten in einer Azure Machine Learning-Compute-Instanz.
Funktionalitäten von MLflow- und Azure Machine Learning-Clienttools im Vergleich
Die folgende Tabelle zeigt Lebenszyklusvorgänge des maschinellen Lernens, die mit dem MLflow-SDK und den Azure Machine Learning-Clienttools möglich sind.
Funktion | MLflow SDK | Azure Machine Learning-CLI/SDK v2 | Azure Machine Learning Studio |
---|---|---|---|
Nachverfolgen und Protokollieren von Metriken, Parametern und Modellen | ✓ | ||
Abrufen von Metriken, Parametern und Modellen | ✓ | Nur Artefakte und Modelle können heruntergeladen werden. | ✓ |
Übermitteln von Trainingsaufträgen | Möglich mithilfe von MLflow-Projekten (Vorschau). | ✓ | ✓ |
Übermitteln von Trainingsaufträgen mit Azure Machine Learning-Datenressourcen | ✓ | ✓ | |
Übermitteln von Trainingsaufträgen mit Machine Learning-Pipelines | ✓ | ✓ | |
Verwalten von Experimenten und Ausführungen | ✓ | ✓ | ✓ |
Verwalten von MLflow-Modellen | Einige Vorgänge werden möglicherweise nicht unterstützt.1 | ✓ | ✓ |
Verwalten MLflow-fremder Modelle | ✓ | ✓ | |
Bereitstellen von MLflow-Modellen in Azure Machine Learning (Online und Batch) | Die Bereitstellung von MLflow-Modellen für den Batchrückschluss wird derzeit nicht unterstützt.2 | ✓ | ✓ |
Bereitstellen MLflow-fremder Modelle in Azure Machine Learning | ✓ | ✓ |
1 Weitere Informationen finden Sie unter Verwalten von Modellregistrierungen in Azure Machine Learning mit MLflow.
2 Für eine Alternative lesen Sie Bereitstellen und Ausführen von MLflow-Modellen in Spark-Aufträgen.