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 mehr über MLOps-Methoden (Machine Learning Operations) in Azure Machine Learning, 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. Diese Prinzipien umfassen Continuous Integration, Continuous Delivery und Continuous Deployment. MLOps wendet diese Prinzipien auf den Machine Learning-Lebenszyklus 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 bietet die folgenden Funktionen für den Machine Learning-Prozess:

  • 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. Nachverfolgen zugehöriger Metadaten, die für die Verwendung eines Modells erforderlich sind
  • Aufzeichnen 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. Ereignisse sind u. a. 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 maschinellem Lernen und Azure Pipelines. Verwenden Sie Pipelines, um Modelle häufig zu testen und zu aktualisieren. Sie können neben Ihren anderen Anwendungen und Diensten kontinuierlich neue Machine Learning-Modelle bereitstellen.

Weitere Informationen zu MLOps finden Sie unter Machine Learning-Vorgänge.

Erstellen reproduzierbarer Machine Learning-Pipelines

Verwenden Sie Azure Machine Learning-Pipelines, um alle Schritte Ihres Modelltrainingsprozesses zusammenzuführen. Eine Machine Learning-Pipeline kann verschiedene Schritte enthalten, u. a. Datenaufbereitung, Featureextraktion, Hyperparameteroptimierung und Modellauswertung.

Wenn Sie den Azure Machine Learning-Designer zum Erstellen einer Machine Learning-Pipeline verwenden, können Sie die Pipeline klonen, um den Entwurf zu durchlaufen, ohne die alten Versionen zu verlieren. Sie können eine Pipeline jederzeit im Designer klonen. Wählen Sie dazu in der oberen rechten Ecke ...>Klonen aus.

Weitere Informationen zu Azure Machine Learning-Pipelines finden Sie unter Machine Learning-Pipelines.

Erstellen von wiederverwendbaren Softwareumgebungen

Indem Sie Azure 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 Umgebungen für Modelltraining und -bereitstellung verwenden. Weitere Informationen zu Umgebungen finden Sie unter Was sind Azure 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.

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 Azure Machine Learning-Arbeitsbereich registrieren. Nach der Registrierung können Sie das registrierte Modell dann herunterladen oder bereitstellen und alle Komponentendateien empfangen.

Sie können registrierte Modelle anhand des Namens und der Version identifizieren. Immer, wenn Sie ein Modell mit dem gleichen Namen wie ein bereits vorhandenes Modell registrieren, erhöht die Registrierung die Versionsnummer. Sie können Metadatentags während der Registrierung bereitstellen und diese Tags verwenden, wenn Sie nach einem Modell suchen. Azure 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 Azure 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 zur Verwendung von Modellen in Azure Machine Learning finden Sie unter Arbeiten mit Modellen in Azure Machine Learning.

Packen und Debuggen von Modellen

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

Es ist hilfreich, zuerst eine Bereitstellung in Ihrer lokalen Entwicklungsumgebung auszuführen, damit Sie vor der Bereitstellung in der Cloud eine Problembehandlung und das Debuggen durchführen können. Diese Methode kann Ihnen helfen, Probleme mit Ihrer Bereitstellung in Azure Machine Learning zu vermeiden. Weitere Informationen zum Beheben allgemeiner Bereitstellungsprobleme finden Sie unter Problembehandlung für Onlineendpunkte.

Konvertieren und Optimieren von Modellen

Sie können Ihr Modell in Open Neural Network Exchange (ONNX) konvertieren, um die Leistung zu verbessern. In der Regel 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.

Bereitstellen von Modellen

Sie können trainierte Machine Learning-Modelle als Endpunkte in der Cloud oder lokal bereitstellen. Bereitstellungen verwenden CPU oder GPU für Rückschlüsse.

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

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

Außerdem geben Sie die Konfiguration der Zielbereitstellungsplattform an. Beispiele: Art der VM-Familie, verfügbarer Arbeitsspeicher und Anzahl von Kernen. Wenn das Image erstellt wird, werden auch die von Azure Machine Learning benötigten Komponenten hinzugefügt, etwa für die Ausführung des Webdiensts erforderliche Ressourcen.

1,2 Wenn Sie ein MLflow-Modell bereitstellen, müssen Sie kein Einstiegsskript (auch als Bewertungsskript bezeichnet) bereitstellen. Sie müssen außerdem keine Umgebung für die Bereitstellung bereitstellen. Weitere Informationen zum Bereitstellen von MLflow-Modellen finden Sie unter Leitlinien für die Bereitstellung von MLflow-Modellen.

Batchbewertung

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

Echtzeitbewertung

Sie können Ihre Modelle mit einem Onlineendpunkt für die Echtzeitbewertung 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 zur Bereitstellung für die Echtzeitbewertung finden Sie unter Bereitstellen von Onlineendpunkten.

Kontrollierter Rollout für Onlineendpunkte

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 zur Bereitstellung mithilfe eines kontrollierten Rollouts finden Sie unter Führen Sie die sichere Bereitstellung neuer Anwendungen für Echtzeitrückschlüsse durch..

Analytics

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

Erfassen der für MLOps erforderlichen Governancedaten

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

  • Azure Machine Learning-Datenressourcen helfen Ihnen beim Nachverfolgen, der Profilerstellung und der Versionierung von Daten.
  • Dank der Interpretierbarkeit von Modellen ist es möglich, Ihre Modelle zu erläutern, gesetzliche Bestimmungen einzuhalten und zu verstehen, wie Modelle bei bestimmten Eingaben zu einem Ergebnis kommen.
  • Der Azure Machine Learning-Auftragsverlauf speichert eine Momentaufnahme des Codes, der Daten und der Computevorgänge, mit denen ein Modell trainiert wurde.
  • Die Azure Machine Learning-Modellregistrierung erfasst alle Metadaten in Zusammenhang mit Ihrem Modell. Beispielsweise wird erfasst, mit welchem Experiment das Modell trainiert wurde, wo das Modell bereitgestellt wird und ob die Bereitstellungen des Modells fehlerfrei sind.
  • Dank der Integration in Azure können Sie auf Ereignisse wie Modellregistrierung, Bereitstellung, Datendrift sowie Trainingsereignisse (Aufträge) im Machine Learning-Lebenszyklus reagieren.

Tipp

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

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

Azure 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 zum Einrichten ereignisgesteuerter Prozesse basierend auf Azure Machine Learning-Ereignissen finden Sie unter Benutzerdefinierte CI/CD- und ereignisgesteuerte Workflows.

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 Data Scientists eine Änderung in das Git-Repository eine Projekts einchecken, 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. Die Erweiterung 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 unter Verwenden von Azure Pipelines mit Azure Machine Learning.