MLOps-Modellverwaltung mit Azure Machine Learning
GILT FÜR:Azure CLI ML-Erweiterung v2 (aktuell)Python SDK azure-ai-ml v2 (aktuell)
Dieser Artikel beschreibt, wie Azure Machine Learning Machine Learning Operations (MLOps) verwendet, um den Lebenszyklus Ihrer Modelle zu verwalten. Die Anwendung von MLOps-Methoden kann die Qualität und Konsistenz Ihrer Machine Learning-Lösungen verbessern.
MLOps basiert auf DevOps-Prinzipien und -Praktiken, welche die Effizienz von Workflows erhöhen, z. B. Continuous Integration, Continuous Deployment und Continuous Delivery. Die Anwendung dieser Prinzipien auf den Lebenszyklus des maschinellen Lernens führt zu folgenden Ergebnissen:
- Schnelleres Experimentieren und schnellere Modellentwicklung.
- Schnellere Bereitstellung von Modellen in der Produktionsumgebung
- Bessere Qualitätssicherung und End-to-End-Nachverfolgung der Herkunft.
MLOps-Funktionen
MLOps bietet die folgenden Funktionen für den Machine Learning-Prozess:
- Erstellen Sie reproduzierbare Pipelines für maschinelles Lernen zum Definieren wiederholbarer und wiederverwendbarer Schritte für die Datenaufbereitung, das Training und die Bewertungsprozesse.
- Erstellen Sie wiederverwendbare Softwareumgebungen für das Training und die Bereitstellung von Modellen.
- Registrieren, paketieren und stellen Sie Modelle von überall aus bereit, und verfolgen Sie zugehörige Metadaten, die für die Verwendung eines Modells erforderlich sind.
- Protokollieren Sie Herkunftsdaten für die Governance des Lebenszyklus des maschinellen Lernens, z. B. wer Modelle veröffentlicht hat, warum Änderungen vorgenommen wurden und wann Modelle in der Produktion bereitgestellt oder verwendet wurden.
- Benachrichtigen und warnen Sie bei Ereignissen im Lebenszyklus des maschinellen Lernens, wie etwa dem Abschluss von Experimenten, der Modellregistrierung, der Modellimplementierung und der Erkennung von Datendrift.
- Überwachen Sie betriebliche und mit maschinellem Lernen zusammenhängende Probleme, indem Sie Modelleingaben vergleichen, modellspezifische Metriken untersuchen und Überwachungs- und Warnmeldungen in der Infrastruktur für maschinelles Lernen anzeigen.
- Automatisieren Sie den End-to-End-Lebenszyklus des maschinellen Lernens mithilfe von Pipelines für maschinelles Lernen und Azure-Pipelines, um neue Modelle für maschinelles Lernen kontinuierlich zu testen, zu aktualisieren und einzuführen.
Weitere Informationen zu MLOps finden Sie unter Machine Learning-Vorgänge.
Erstellen reproduzierbarer Pipelines für maschinelles Lernen
Verwenden Sie Azure Machine Learning-Pipelines, um alle Schritte Ihres Modelltrainingsprozesses zusammenzuführen. Eine Pipeline für maschinelles Lernen kann Datenaufbereitung, Featureextraktion, Hyperparameteroptimierung und Modellauswertung umfassen.
Im Azure Machine Learning Studio-Designer können Sie eine Pipeline klonen, um das Design zu durchlaufen, ohne ihre alten Versionen zu verlieren. Um eine Pipeline jederzeit im Designer zu klonen, wählen Sie Klonen in der oberen Menüleiste aus.
Weitere Informationen zu Azure Machine Learning-Pipelines finden Sie unter Machine Learning-Pipelines.
Wiederverwendbare Softwareumgebungen
Azure Machine Learning-Umgebungen stellen sicher, dass Builds ohne manuelle Softwarekonfigurationen reproduzierbar sind. Umgebungen können die Pip- und Conda-Softwareabhängigkeiten für Ihre Projekte nachverfolgen und reproduzieren.
Sie können Umgebungen für Modelltraining und -bereitstellung verwenden. Weitere Informationen zu Umgebungen finden Sie unter Azure Machine Learning-Umgebungen.
Modellregistrierung, Paketierung und Bereitstellung
Azure Machine Learning kann MLOps von überall aus verwenden, um Modelle zu registrieren, zu paketieren und bereitzustellen.
Registrieren und Nachverfolgen von Modellen
Die Modellregistrierung speichert und versioniert Ihre Modelle in Ihrem Azure Machine Learning-Arbeitsbereich in der Azure-Cloud. 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 Ihr Modell beispielsweise in mehreren Dateien gespeichert ist, können Sie diese Dateien als einzelnes Modell in Ihrem Azure Machine Learning-Arbeitsbereich registrieren. Nach der Registrierung können Sie das registrierte Modell herunterladen oder bereitstellen und alle Komponentendateien empfangen.
Sie können auch Modelle registrieren, die außerhalb von Azure Machine Learning trainiert werden. Azure Machine Learning unterstützt Modelle, die mit Python 3.5.2 oder höher geladen werden können.
Sie identifizieren registrierte Modelle anhand des Namens und der Version. Immer, wenn Sie ein Modell mit dem gleichen Namen wie ein bereits vorhandenes Modell registrieren, erhöht die Registrierung die Versionsnummer.
Sie können während der Registrierung Metadatentags bereitstellen und diese Tags verwenden, um nach einem Modell zu suchen.
Wichtig
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
Um ein Modell in der Produktion bereitzustellen, müssen Sie es zuerst in ein Docker-Image paketieren. In den meisten Fällen erfolgt die Imageerstellung während der Bereitstellung automatisch im Hintergrund. Sie können das Image jedoch auch manuell angeben.
Es ist hilfreich, zuerst eine Bereitstellung in Ihrer lokalen Entwicklungsumgebung durchzuführen, damit Sie vor der Bereitstellung in der Cloud eine Problembehandlung und ein 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 Azure Machine Learning finden Sie unter Erstellen und Beschleunigen von Modellen für maschinelles Lernen.
Bereitstellen von Modellen als Endpunkte
Sie können trainierte Modelle für maschinelles Lernen als Endpunkte lokal oder in der Cloud bereitstellen. Bereitstellungen verwenden CPUs und GPUs für das Rückschließen.
Um ein Modell als Endpunkt bereitzustellen, müssen Sie die folgenden Informationen angeben:
- Das Modell, das zur Bewertung von Daten verwendet wird, die an den Dienst oder das Gerät übermittelt werden.
- Ein Einstiegsskript, auch als Bewertungsskript bezeichnet, das Anforderungen akzeptiert, verwendet die Modelle zum Bewerten der Daten und gibt eine Antwort zurück.
- Eine Umgebung, welche die Pip- und Conda-Abhängigkeiten beschreibt, die von den Modellen und dem Einstiegsskript benötigt werden.
- Alle weiteren Ressourcen wie Texte und Daten, die von den Modellen und dem Einstiegsskript benötigt werden.
Wichtig
Wenn Sie ein MLflow-Modell bereitstellen, müssen Sie kein Einstiegsskript und 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.
Außerdem stellen Sie die Konfiguration der Zielbereitstellungsplattform bereit, z. B. den Familientyp des virtuellen Computers (der VM), den verfügbaren Speicherplatz und die Anzahl der Kerne. Wenn Azure Machine Learning das Image erstellt, fügt es auch alle benötigten Komponenten hinzu, z. B. Ressourcen, die zum Ausführen des Webdiensts erforderlich sind.
Batchbewertung mit Batchendpunkten
Die Batchbewertung wird über Batchendpunkte unterstützt. Weitere Informationen zur Batchbewertung finden Sie unter Batchendpunkte.
Echtzeitbewertung mit Onlineendpunkten
Sie können Ihre Modelle mit Onlineendpunkten für die Echtzeitbewertung verwenden. Computeziele für Onlineendpunkte können lokale Entwicklungsumgebungen, verwaltete Onlineendpunkte oder Azure Kubernetes Service (AKS) sein.
Um ein Modell auf einem Onlineendpunkt bereitzustellen, müssen Sie die folgenden Informationen angeben:
- Das Modell oder ein Ensemble von Modellen.
- Abhängigkeiten, die erforderlich sind, um das Modell zu verwenden, z. B. ein Skript, das Anforderungen akzeptiert und die Modell- und 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
Wenn Sie an einen Onlineendpunkt bereitstellen, können Sie einen kontrollierten Rollout verwenden, um die folgenden 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..
Metadaten für die Governance des Lebenszyklus des maschinellen Lernens
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, die für das Trainieren eines Modells verwendet wurden.
- 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 Modellimplementierungen fehlerfrei sind.
- Dank der Integration in Azure können Sie auf Ereignisse im Lebenszyklus des maschinellen Lernens reagieren, z. B. Modellregistrierung, Bereitstellung, Datendrift und Ereignisse im Trainingsauftrag.
Einige Informationen zu Modellen und Datenressourcen werden automatisch erfasst, aber Sie können 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.
Hinweis
Wenn Sie die Tags in der Option Filtern nach auf der Seite Modelle des Azure Machine Learning Studio verwenden, sollten Sie TagName=TagValue
ohne Leerzeichen verwenden anstelle von TagName : TagValue
.
Ereignisbenachrichtigung und Warnungen für den Lebenszyklus des maschinellen Lernens
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.
Automatisierung des Lebenszyklus des maschinellen Lernens
Sie können Git und Azure Pipelines verwenden, um einen Continuous Integration-Prozess zu erstellen, der ein Modell für maschinelles Lernen trainiert. In einem typischen Szenario, bei dem eine wissenschaftliche Fachkraft für Daten eine Änderung in das Git-Repository eines Projekts eincheckt, startet Azure Pipelines einen Trainingsauftrag.
Sie können die Auftragsergebnisse untersuchen, um die Leistungsmerkmale des trainierten Modells anzuzeigen. 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 die Auswahl des Azure Machine Learning-Arbeitsbereichs, wenn Sie eine Dienstverbindung definieren.
- Ermöglicht die Erstellung trainierter Modelle in einer Trainingspipeline, um eine Bereitstellung in Azure Pipelines auszulösen.
Weitere Informationen zur Verwendung von Azure Pipelines mit Azure Machine Learning finden Sie unter Verwenden von Azure Pipelines mit Azure Machine Learning.
Analytics
Microsoft Power BI unterstützt die Verwendung von Machine Learning-Modellen für Datenanalysen. Weitere Informationen finden Sie unter KI mit Datenflows.