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 nach
Tags
auf der Seite Modelle von Azure Machine Learning Studio anstelle vonTagName : TagValue
nutzen, verwenden SieTagName=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:
- Continuous Integration und Continuous Deployment von Machine Learning-Modellen mit Azure Pipelines
- Machine Learning MLOps-Repository
Nächste Schritte
Weitere Informationen finden Sie in den folgenden Ressourcen:
- Einrichten von MLOps mit Azure DevOps
- Lernpfad: End-to-End MLOps mit Azure Machine Learning
- Bereitstellen eines Modells für einen Onlineendpunkt mit Machine Learning
- Tutorial: Trainieren und Bereitstellen eines Modells
- CI/CD von Machine Learning-Modellen mit Azure Pipelines
- Bedarfsorientiertes Machine Learning
- Repository mit bewährten Methoden und Referenzarchitekturen für Azure KI