MLflow und Azure Machine Learning

GILT FÜR:Azure CLI ML-Erweiterung v2 (aktuell)Python SDK azure-ai-ml v2 (aktuell)

MLflow ist ein Open-Source-Framework für die Verwaltung des gesamten Machine Learning-Lebenszyklus. Durch die Möglichkeit, Modelle auf verschiedenen Plattformen zu trainieren und bereitzustellen, können Sie immer die gleichen Tools verwenden – unabhängig davon, wo Ihre Experimente ausgeführt werden: lokal auf Ihrem Computer, auf einem Remotecomputeziel, auf einem virtuellen Computer (VM) oder in einer Azure Machine Learning-Compute-Instanz.

Azure Machine Learning-Arbeitsbereiche sind mit MLflow kompatibel. Das bedeutet, dass Sie Azure Machine Learning-Arbeitsbereiche auf die gleiche Weise verwenden können wie einen MLflow-Server. Diese Kompatibilität hat folgende Vorteile:

  • Azure Machine Learning hostet keine MLflow-Serverinstanzen. Stattdessen kann der Arbeitsbereich die Sprache der MLflow-API 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. Sie müssen lediglich MLflow mit einem Verweis auf den Arbeitsbereich konfigurieren, in dem die Nachverfolgung durchgeführt werden soll.
  • Sie können jede beliebige Trainingsroutine, die MLflow verwendet, ohne Anpassungen in Azure Machine Learning ausführen.

Tipp

Im Gegensatz zum Azure Machine Learning SDK v1 gibt es in der SDK v2 keine Protokollierungsfunktion. Es wird empfohlen, MLflow für die Protokollierung zu verwenden, damit Ihre Trainingsroutinen cloudunabhängig und portierbar sind und alle Abhängigkeiten entfernen, die Ihr Code in Azure Machine Learning hat.

Nachverfolgung mit MLflow

Azure Machine Learning verwendet MLflow-Nachverfolgung für die Metrikprotokollierung und die Artefaktspeicherung für Ihre Experimente. Wenn eine Verbindung mit Azure Machine Learning hergestellt wird, wird die gesamte mithilfe von MLflow durchgeführte Nachverfolgung in dem Arbeitsbereich materialisiert, an dem Sie arbeiten. Weitere Informationen zum Einrichten Ihrer Experimente zur Verwendung von MLflow zum Nachverfolgen von Experimenten und Trainingsroutinen finden Sie unter Protokollieren von Metriken, Parametern und Dateien mit MLflow. Sie können MLflow auch zum Abfragen und Vergleichen von Experimenten und Ausführungen verwenden.

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 Arbeitsbereich ist ein zentraler, sicherer und skalierbarer Ort zum Speichern von Trainingsmetriken und -modellen.

Die Verwendung von MLflow in Azure Machine Learning ermöglicht Folgendes:

Beispielnotebooks

  • Trainieren und Nachverfolgen eines XGBoost-Klassifizierers mit MLflow: Hier erfahren Sie, wie Sie Experimente mithilfe von MLflow nachverfolgen, Modelle protokollieren und mehrere Varianten in Pipelines kombinieren können.
  • Training and tracking an XGBoost classifier with MLflow using service principal authentication (Trainieren und Nachverfolgen eines XGBoost-Klassifizierers mit MLflow mithilfe der Dienstprinzipalauthentifizierung): Veranschaulicht, wie Experimente mithilfe von MLflow von der Compute-Instanz nachverfolgt werden, 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.
  • Hyper-parameter optimization using HyperOpt and nested runs in MLflow (Hyperparameteroptimierung mithilfe von HyperOpt und geschachtelten Ausführungen in MLflow): Hier erfahren Sie, wie Sie untergeordnete Ausführungen in MLflow 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.
  • Logging models with MLflow (Protokollieren von Modellen mit MLflow): Hier wird gezeigt, wie Sie das Konzept von Modellen anstelle von Artefakten mit MLflow verwenden. Das Beispiel zeigt auch, wie benutzerdefinierte Modelle erstellt werden.
  • Verwalten von Ausführungen und Experimenten mit MLflow: Hier wird veranschaulicht, wie Sie Experimente, Ausführungen, Metriken, Parameter und Artefakte aus Azure Machine Learning mithilfe von MLflow abfragen.

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.
  • Ein interaktives Training in RStudio, Posit (früher RStudio Workbench) oder Jupyter Notebooks mit R-Kernel wird nicht unterstützt.
  • Die Modellverwaltung und -registrierung wird mithilfe des MLflow R SDK nicht unterstützt. Alternativ verwenden Sie die Azure Machine Learning-CLI oder Azure Machine Learning Studio für die Modellregistrierung und -verwaltung.

Informationen zur Verwendung des MLflow-Nachverfolgungsclients mit Azure Machine Learning finden Sie in den Beispielen in Train R models using the Azure Machine Learning CLI (v2) (Trainieren von R-Modellen mit 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 mithilfe des MLflow Java SDK nachverfolgt werden. Alternativ verwenden Sie den Ordner Outputs in Aufträgen zusammen mit der Methode mlflow.save_model, um Modelle (oder Artefakte) zu speichern, die Sie erfassen möchten.

Informationen zur Verwendung des MLflow-Nachverfolgungsclients mit Azure Machine Learning finden Sie im Java-Beispiel, das den MLflow-Nachverfolgungsclient mit Azure Machine Learning verwendet.

Modellregistrierungen mit MLflow

Azure Machine Learning unterstützt MLflow für die Modellverwaltung. Diese Unterstützung stellt für Benutzer*innen, die mit dem MLflow-Client vertraut sind, eine bequeme Möglichkeit dar, den gesamten Lebenszyklus des Modells zu unterstützen.

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.

Notebook mit Beispielen

Modellimplementierung mit MLflow

Sie können MLflow-Modelle in Azure Machine Learning bereitstellen und von der verbesserten Umgebung profitieren, wenn Sie MLflow-Modelle verwenden. 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. Die Bereitstellung wird entweder mithilfe des MLflow SDK,der Azure Machine Learning-CLI, des Azure Machine Learning SDK für Python oder über Azure Machine Learning Studio unterstützt.

Weitere Informationen zum Bereitstellen von MLflow-Modellen für Azure Machine Learning für Echtzeit- und Batchendpunkte finden Sie unter Leitlinien für die Bereitstellung von MLflow-Modellen.

Beispielnotebooks

  • Deploy MLflow to online endpoints (Bereitstellen von MLflow für Online-Endpunkte): Veranschaulicht die Bereitstellung von Modellen im MLflow-Format für Online-Endpunkte mithilfe des MLflow SDK.
  • Deploy MLflow to online endpoints with safe rollout (Bereitstellen von MLflow für Online-Endpunkte mit sicherem Rollout): Veranschaulicht die Bereitstellung von Modellen im MLflow-Format für Online-Endpunkte mithilfe des MLflow SDK mit dem progressiven Rollout von Modellen. Das Beispiel zeigt außerdem die Bereitstellung mehrerer Versionen eines Modells im selben Endpunkt.
  • Deploy MLflow to web services (V1) (Bereitstellen von MLflow für Webdienste (v1)): Veranschaulicht die Bereitstellung von Modellen im MLflow-Format für Webdienste (ACI/AKS v1) mithilfe des MLflow SDK.
  • Deploy models trained in Azure Databricks to Azure Machine Learning with MLflow (Bereitstellen von in Azure Databricks trainierten Modellen in Azure Machine Learning mit MLflow): Veranschaulicht, wie Sie Modelle in Azure Databricks trainieren und in Azure Machine Learning bereitstellen. Außerdem erfahren Sie, wie Sie in Fällen vorgehen, in denen Sie die Experimente auch mit der MLflow-Instanz in Azure Databricks nachverfolgen möchten.

Training mit MLflow-Projekten (Vorschau)

Wichtig

Die in diesem Artikel markierten Elemente (Vorschau) sind aktuell als öffentliche Vorschau verfügbar. Die 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 (Vorschau) 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.

Informationen zum Übermitteln von Trainingsaufträgen mit MLflow-Projekten, die Azure Machine Learning-Arbeitsbereiche zum Nachverfolgen verwenden, finden Sie unter Trainieren von Machine Learning-Modellen mit MLflow-Projekten und Azure Machine Learning.

Beispielnotebooks

MLflow SDK-, Azure Machine Learning v2- und Azure Machine Learning Studio-Funktionen

Die folgende Tabelle zeigt, welche Vorgänge von den einzelnen Client-Tools unterstützt werden, die im Machine Learning-Lebenszyklus zur Verfügung stehen.

Funktion MLflow SDK Azure Machine Learning CLI/SDK Azure Machine Learning Studio
Nachverfolgen und Protokollieren von Metriken, Parametern und Modellen
Abrufen von Metriken, Parametern und Modellen 1
Übermitteln von Trainingsaufträgen 2
Ü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 3
Verwalten MLflow-fremder Modelle
Bereitstellen von MLflow-Modellen in Azure Machine Learning (Online und Batch) 4
Bereitstellen MLflow-fremder Modelle in Azure Machine Learning

Hinweis