MLOps: Verwaltung, Bereitstellung und Überwachung von Modellen mit Azure Machine Learning

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

In diesem Artikel erfahren Sie, wie Sie MLOps-Methoden (Machine Learning Operations) in Azure Machine Learning anwenden, um den Lebenszyklus Ihrer Modelle zu verwalten. Die Anwendung von MLOps-Methoden kann die Qualität und Konsistenz Ihrer Machine Learning-Lösungen verbessern.

Was ist MLOps?

MLOps basiert auf DevOps-Prinzipien und -Techniken, die die Effizienz von Workflows erhöhen. Beispiele sind Continuous Integration, Continuous Delivery und Continuous Deployment. MLOps wendet diese Prinzipien auf den Machine Learning-Prozess mit folgendem Ziel an:

  • Schnelleres Experimentieren und Entwickeln von Modellen
  • Schnellere Bereitstellung von Modellen in der Produktionsumgebung
  • Qualitätssicherung und End-to-End-Nachverfolgung der Herkunft

MLOps in Machine Learning

Machine Learning bietet die folgenden MLOps-Funktionen:

  • Erstellen reproduzierbarer Machine Learning-Pipelines. Verwenden Sie Machine Learning-Pipelines zum Definieren wiederholbarer und wiederverwendbarer Schritte für Ihre Datenaufbereitungs-, Trainings- und Bewertungsprozesse.
  • Erstellen wiederverwendbarer Softwareumgebungen. Verwenden Sie diese Umgebungen zum Trainieren und Bereitstellen von Modellen.
  • Registrieren, Verpacken und Bereitstellen von Modellen von überall aus. Sie können auch zugehörige Metadaten nachverfolgen, die für die Verwendung des Modells erforderlich sind.
  • Erfassen der Governancedaten für den vollständigen Machine Learning-Lebenszyklus. Die protokollierten Herkunftsinformationen können Details dazu umfassen, wer Modelle veröffentlicht und warum Änderungen vorgenommen wurden. Es können auch Informationen dazu enthalten sein, wann Modelle in der Produktion bereitgestellt oder verwendet wurden.
  • Aktivieren von Benachrichtigungen und Warnungen im Machine Learning-Lebenszyklus. Beispiele für Ereignisse sind der Abschluss von Experimenten, die Registrierung und Bereitstellung von Modellen sowie die Erkennung von Datendrift.
  • Überwachen von Machine Learning-Anwendungen auf Probleme in Bezug auf Betrieb und Machine Learning. Vergleichen Sie Modelleingaben zwischen Training und Rückschluss. Erkunden Sie modellspezifische Metriken. Stellen Sie Überwachung und Warnungen für Ihre Machine Learning-Infrastruktur bereit.
  • Automatisieren des vollständigen Machine Learning-Lebenszyklus mit Machine Learning und Azure Pipelines. Mithilfe von Pipelines können Sie Modelle häufig aktualisieren. Sie können auch neue Modelle testen. Sie können neben Ihren anderen Anwendungen und Diensten kontinuierlich neue Machine Learning-Modelle bereitstellen.

Weitere Informationen zu MLOps finden Sie unter DevOps für maschinelles Lernen.

Erstellen reproduzierbarer Machine Learning-Pipelines

Verwenden Sie Machine Learning-Pipelines aus Machine Learning, um alle Schritte Ihres Modelltrainingsprozesses zusammenzuführen.

Eine Machine Learning-Pipeline kann eine Vielzahl von Schritten enthalten: von der Datenaufbereitung über die Featureextraktion und die Hyperparameteroptimierung bis hin zur Modellauswertung. Weitere Informationen finden Sie unter Machine Learning-Pipelines.

Wenn Sie den Designer verwenden, um Ihre Machine Learning-Pipelines zu erstellen, können Sie jederzeit das Symbol ... in der oberen rechten Ecke der Designer-Seite auswählen. Wählen Sie dann Klonen aus. Wenn Sie Ihre Pipeline klonen, durchlaufen Sie Ihren Pipelineentwurf, ohne dass ältere Versionen dabei verloren gehen.

Erstellen von wiederverwendbaren Softwareumgebungen

Indem Sie Machine Learning-Umgebungen verwenden, können Sie die Softwareabhängigkeiten Ihrer Projekte in ihrem zeitlichen Ablauf nachverfolgen und reproduzieren. Mit solchen Umgebungen können Sie sicherstellen, dass Builds ohne manuelle Softwarekonfigurationen reproduzierbar sind.

Umgebungen beschreiben die Pip- und Conda-Abhängigkeiten für Ihre Projekte. Sie können sie für das Training und die Bereitstellung von Modellen verwenden. Weitere Informationen finden Sie unter Was sind Machine Learning-Umgebungen?.

Registrieren, Verpacken und Bereitstellen von Modellen von überall aus

In den folgenden Abschnitten wird erläutert, wie Sie Modelle registrieren, packen und bereitstellen.

Registrieren und Nachverfolgen von Machine Learning-Modellen

Mit der Modellregistrierung können Sie Ihre Modelle in der Azure-Cloud in Ihrem Arbeitsbereich speichern und versionieren. Die Modellregistrierung erleichtert das Organisieren und Verwalten von trainierten Modellen.

Tipp

Ein registriertes Modell ist ein logischer Container für eine oder mehrere Dateien, aus denen Ihr Modell besteht. Wenn Sie beispielsweise ein Modell verwenden, das in mehreren Dateien gespeichert ist, können Sie diese als einzelnes Modell in Ihrem Machine Learning-Arbeitsbereich registrieren. Nach der Registrierung können Sie das registrierte Modell dann herunterladen oder bereitstellen und alle Dateien empfangen, die registriert wurden.

Registrierte Modelle werden anhand des Namens und der Version identifiziert. Jedes Mal, wenn Sie ein Modell mit dem gleichen Namen wie ein bereits vorhandenes Modell registrieren, erhöht die Registrierung die Versionsnummer. Weitere Metadatentags können während der Registrierung bereitgestellt werden. Anhand dieser Tags können Sie dann nach Modellen suchen. Machine Learning unterstützt Modelle, die mit Python 3.5.2 oder höher geladen werden können.

Tipp

Sie können auch Modelle registrieren, die außerhalb von Machine Learning trainiert wurden.

Wichtig

  • Wenn Sie die Option Filtern nachTags auf der Seite Modelle von Azure Machine Learning Studio anstelle von TagName : TagValue nutzen, verwenden Sie TagName=TagValue ohne Leerzeichen.
  • Sie können kein registriertes Modell löschen, das in einer aktiven Bereitstellung verwendet wird.

Weitere Informationen finden Sie unter Arbeiten mit Modellen in Azure Machine Learning.

Packen und Debuggen von Modellen

Bevor Sie ein Modell in der Produktion bereitstellen, wird es in ein Docker-Image gepackt. In den meisten Fällen erfolgt die Imageerstellung während der Bereitstellung automatisch im Hintergrund. Sie können das Image auch manuell angeben.

Wenn Probleme bei der Bereitstellung auftreten, können Sie ein Modell für Problembehandlung und Debugging in Ihrer lokalen Entwicklungsumgebung bereitstellen.

Weitere Informationen finden Sie unter Problembehandlung für Onlineendpunkte.

Konvertieren und Optimieren von Modellen

Die Konvertierung Ihres Modells zu Open Neural Network Exchange (ONNX) kann die Leistung verbessern. Im Durchschnitt verdoppelt sich die Leistung durch Konvertierung zu ONNX.

Weitere Informationen zu ONNX mit Machine Learning finden Sie unter Erstellen und Beschleunigen von Machine Learning-Modellen.

Verwenden von Modellen

Trainierte Machine Learning-Modelle werden als Endpunkte in der Cloud oder lokal bereitgestellt. Bereitstellungen verwenden CPUs oder GPUs für Rückschlüsse.

Bei der Bereitstellung eines Modells als Endpunkt stellen Sie die folgenden Elemente bereit:

  • Die Modelle, mit denen die Daten bewertet werden, die an den Dienst bzw. das Gerät übermittelt werden.
  • Ein Eingabeskript. Dieses Skript akzeptiert Anforderungen, verwendet die Modelle zum Bewerten der Daten und gibt eine Antwort zurück.
  • Eine Machine Learning-Umgebung, die die Pip- und Conda-Abhängigkeiten beschreibt, die von den Modellen und dem Eingabeskript benötigt werden.
  • Weitere Ressourcen wie Texte und Daten, die von den Modellen und dem Eingabeskript benötigt werden.

Sie stellen auch die Konfiguration der Zielbereitstellungsplattform bereit. Beispiele: Art der VM-Familie, verfügbarer Arbeitsspeicher und Anzahl von Kernen. Wenn das Image erstellt wird, werden auch die Komponenten hinzugefügt, die von Azure Machine Learning benötigt werden. Beispielsweise die Ressourcen, die zum Ausführen des Webdiensts erforderlich sind.

Batchbewertung

Die Batchbewertung wird über Batchendpunkte unterstützt. Weitere Informationen finden Sie unter Endpunkte.

Onlineendpunkte

Sie können Ihre Modelle mit einem Onlineendpunkt verwenden. Onlineendpunkte können die folgenden Computeziele verwenden:

  • Verwaltete Onlineendpunkte
  • Azure Kubernetes Service
  • Lokale Entwicklungsumgebung

Um ein Modell an einem Endpunkt bereitzustellen, müssen Sie die folgenden Elemente angeben:

  • Das Modell oder ein Ensemble von Modellen.
  • Abhängigkeiten, die zur Nutzung des Modells erforderlich sind. Beispiel: ein Skript, das Anforderungen akzeptiert und das Modell sowie Conda-Abhängigkeiten aufruft.
  • Eine Bereitstellungskonfiguration, die beschreibt, wie und wo das Modell bereitgestellt werden soll.

Weitere Informationen finden Sie unter Bereitstellen von Onlineendpunkten.

Kontrollierter Rollout

Beim Bereitstellen eines Onlineendpunkts können Sie einen kontrollierten Rollout nutzen, um folgende Szenarien zu ermöglichen:

  • Erstellen mehrerer Versionen eines Endpunkts für eine Bereitstellung
  • Ausführen von A/B-Tests durch Weiterleiten von Datenverkehr an verschiedene Bereitstellungen innerhalb des Endpunkts.
  • Wechsel zwischen Endpunktbereitstellungen durch Aktualisierung des Prozentsatzes an Datenverkehr in der Endpunktkonfiguration.

Weitere Informationen finden Sie unter Kontrollierter Rollout von Machine Learning-Modellen.

Analytics

Microsoft Power BI unterstützt die Verwendung von Machine Learning-Modellen für Datenanalysen. Weitere Informationen finden Sie unter Integration von Machine Learning in Power BI (Vorschau).

Erfassen der für MLOps erforderlichen Governancedaten

Machine Learning ermöglicht Ihnen das Nachverfolgen des gesamten Überwachungspfads Ihrer sämtlichen Machine Learning-Ressourcen durch Verwendung von Metadaten. Beispiel:

  • Machine Learning-Datasets helfen Ihnen beim Nachverfolgen, der Profilerstellung und der Versionierung von Daten.
  • Interpretierbarkeit ermöglicht es Ihnen, Ihre Modelle zu erklären, gesetzliche Bestimmungen einzuhalten und zu verstehen, wie Modelle bei bestimmten Eingaben zu einem bestimmten Ergebnis kommen.
  • Der Machine Learning-Auftragsverlauf speichert eine Momentaufnahme des Codes, der Daten und der Computevorgänge, mit denen ein Modell trainiert wurde.
  • Die Machine Learning-Modellregistrierung erfasst alle Metadaten in Zusammenhang mit Ihrem Modell. Metadaten enthalten beispielsweise Informationen dazu, mit welchem Experiment das Modell trainiert wurde, wo das Modell bereitgestellt wird und ob die Bereitstellungen fehlerfrei sind.
  • Durch die Integration in Azure können Sie auf Ereignisse im Machine Learning-Lebenszyklus reagieren. Hierzu zählen beispielsweise Ereignisse in Bezug auf Modellregistrierung, Bereitstellung, Datendrift und Training (Auftrag).

Tipp

Während einige Informationen zu Modellen und Datasets automatisch erfasst werden, können Sie mithilfe von Tags weitere Informationen hinzufügen. Wenn Sie in Ihrem Arbeitsbereich nach registrierten Modellen und Datasets suchen, können Sie Tags als Filter verwenden.

Benachrichtigungen, Automatisierungen und Warnungen für Ereignisse im Machine Learning-Lebenszyklus

Machine Learning veröffentlicht wichtige Ereignisse in Azure Event Grid – dort können Sie Benachrichtigungen und automatische Aktionen bei Ereignissen im Machine Learning-Lebenszyklus einrichten. Weitere Informationen finden Sie unter Verwenden von Event Grid.

Automatisieren des Machine Learning-Lebenszyklus

Sie können GitHub und Azure Pipelines verwenden, um einen Continuous Integration-Prozess zu erstellen, der ein Modell trainiert. In einem typischen Szenario, in dem ein Data Scientist eine Änderung in das Git-Repository für ein Projekt eincheckt, startet Azure Pipelines einen Trainingsauftrag. Die Ergebnisse dieses Auftrags können dann untersucht werden, um die Leistungsmerkmale des trainierten Modells zu ermitteln. Sie können auch eine Pipeline erstelle, die das Modell als Webdienst bereitstellt.

Die Machine Learning-Erweiterung erleichtert die Arbeit mit Azure Pipelines. Sie bietet folgende Verbesserungen für Azure Pipelines:

  • Ermöglicht beim Definieren einer Dienstverbindung die Auswahl eines Arbeitsbereichs.
  • Ermöglicht das Auslösen von Releasepipelines durch trainierte Modelle, die in einer Trainingspipeline erstellt wurden.

Weitere Informationen zur Verwendung von Azure Pipelines mit Machine Learning finden Sie hier:

Nächste Schritte

Weitere Informationen finden Sie in den folgenden Ressourcen: