Freigeben über


MLOps: Verwaltung, Bereitstellung, Nachverfolgung der Herkunft und Überwachung von Modellen mit Azure Machine Learning v1

GILT FÜR:Azure CLI ML-Erweiterungv1Python SDK azureml v1

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

Wichtig

Die in diesem Artikel als Vorschau markierten Elemente sind aktuell in der öffentlichen Vorschauversion. Die Preview-Version wird ohne Service Level Vereinbarung bereitgestellt. Wir empfehlen, Previewfunktionen nicht für Produktionsworkloads zu verwenden. 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.

Was sind Machine Learning-Vorgänge?

Auf der Grundlage von DevOps-Prinzipien und -Methoden erhöht Machine Learning Operations (MLOps) die Effizienz von Workflows. Beispiele sind Continuous Integration, Continuous Delivery und Continuous Deployment. Machine Learning Operations wendet diese Prinzipien auf den ML-Prozess an, mit folgendem Ziel:

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

MLOps in Azure Machine Learning

Azure Machine Learning bietet die folgenden Machine Learning Operations-Funktionen:

  • Erstellen reproduzierbarer ML-Pipelines. Mit Machine Learning-Pipelines können Sie wiederholbare und wiederverwendbare Schritte für Ihre Datenaufbereitungs-, Trainings- und Bewertungsprozesse definieren.
  • Erstellen Sie wiederverwendbare Softwareumgebungen für das Training und die Bereitstellung 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.
  • Aufzeichnen der Governancedaten für den End-to-End-ML-Lebenszyklus. Die protokollierten Informationen zur Herkunft können umfassen, wer die Modelle veröffentlicht, warum Änderungen vorgenommen wurden und wann die Modelle bereitgestellt oder in der Produktionsumgebung verwendet wurden.
  • Benachrichtigen und Warnen bei Ereignissen im ML-Lebenszyklus. Beispielsweise die Durchführung von Experimenten, die Registrierung und Bereitstellung von Modellen sowie die Erkennung von Datendrift.
  • Überwachen von ML-Anwendungen auf betriebliche und ML-Probleme. Vergleichen Sie Modelleingaben zwischen Trainings- und Rückschlussphase, untersuchen Sie modellspezifische Metriken, und stellen Sie Überwachungsfunktionen und Warnungen für Ihre Machine Learning-Infrastruktur bereit.
  • Automatisieren des End-to-End-Machine Learning-Lebenszyklus mit Azure Machine Learning und Azure Pipelines. Mithilfe von Pipelines können Sie Modelle regelmäßig aktualisieren, neue Modelle testen und neue ML-Modelle kontinuierlich ausrollen, zusätzlich zu Ihren anderen Anwendungen und Diensten.

Weitere Informationen zu Machine Learning Operations finden Sie unter Machine Learning Operations.

Erstellen reproduzierbarer Machine Learning-Pipelines

Verwenden Sie ML-Pipelines aus Azure Machine Learning, um alle Schritte zusammenzuführen, die am Trainingsprozess Ihres Modells beteiligt sind.

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 Azure Machine Learning-Pipelines.

Wenn Sie den Designer verwenden, um Ihre ML-Pipelines zu erstellen, wählen Sie die Auslassungspunkte (...) oben rechts auf der Designerseite aus, und wählen Sie dann Klonen aus. Durch das Klonen der Pipeline können Sie das Pipelinedesign durchlaufen, ohne Ihre alten Versionen zu verlieren.

Erstellen von wiederverwendbaren Softwareumgebungen

Azure Machine Learning-Umgebungen gestatten es Ihnen, die Softwareabhängigkeiten Ihrer Projekte in ihrem zeitlichen Ablauf nachzuverfolgen und zu reproduzieren. Mithilfe von Umgebungen können Sie sicherstellen, dass Builds ohne manuelle Softwarekonfigurationen reproduzierbar sind.

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

Registrieren, Verpacken und Bereitstellen von Modellen von überall aus

Sie können Modelle von überall aus registrieren, paketieren und bereitstellen.

Registrieren und Nachverfolgen von Machine Learning-Modellen

Die Modellregistrierung ermöglicht es Ihnen, Ihre Modelle in Ihrem Arbeitsbereich in der Azure-Cloud zu speichern und zu 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 Azure Machine Learning-Arbeitsbereich registrieren. Nach der Registrierung können Sie das registrierte Modell dann herunterladen oder bereitstellen und alle Dateien empfangen, die registriert wurden.

Name und Version identifizieren registrierte Modelle. Jedes Mal, 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 weitere Metadatentags angeben. Diese Tags werden dann bei der Suche nach einem Modell verwendet. 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.

Sie können kein registriertes Modell löschen, das in einer aktiven Bereitstellung verwendet wird. Weitere Informationen finden Sie unter Registrieren des Modells.

Wichtig

Wenn Sie anstelle von TagName : TagValue die Option „Filtern nach Tags“ auf der Seite Modelle von Azure Machine Learning Studio verwenden, sollten Sie TagName=TagValue verwenden (ohne Leerzeichen).

Packen und Debuggen von Modellen

Vor der Bereitstellung eines Modells in die Produktion 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 Bereitstellen von ML-Modellen in Azure und Problembehandlung bei der Remote-Modellimplementierung.

Konvertieren und Optimieren von Modellen

Die Konvertierung Ihres Modells zu Open Neural Network Exchange (ONNX) kann die Leistung verbessern. Im Durchschnitt lässt sich durch eine Konvertierung zu ONNX eine 2-fache Leistungssteigerung erzielen.

Weitere Informationen finden Sie unter ONNX und Azure Machine Learning.

Verwenden von Modellen

Trainierte Machine Learning-Modelle werden als Webdienste in der Cloud oder lokal bereitgestellt. Bereitstellungen verwenden CPU oder GPU für Rückschlüsse. Sie können auch Modelle aus Power BI verwenden.

Wenn Sie ein Modell als Webdienst verwenden, 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 Azure Machine Learning-Umgebung, welche die Pip- und Conda-Abhängigkeiten beschreibt, die von den Modellen und dem Einstiegsskript benötigt werden.
  • Alle anderen Ressourcen, z. B. Text oder Daten, welche die Modelle und das Einstiegsskript benötigen.

Außerdem geben Sie die Konfiguration der Zielbereitstellungsplattform an. Beispielsweise den Typ der VM-Familie, den verfügbaren Speicherplatz und die Anzahl der Kerne bei der Bereitstellung in Azure Kubernetes Service.

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 durch Machine Learning-Pipelines wird unterstützt. Weitere Informationen finden Sie unter Tutorial: Erstellen einer Azure Machine Learning-Pipeline zur Bildklassifizierung.

Echtzeit-Webdienste

Sie können Ihre Modelle in Webdiensten mit den folgenden Computezielen verwenden:

  • Azure Container Instances
  • Azure Kubernetes Service
  • Lokale Entwicklungsumgebung

Um das Modell als Webdienst bereitzustellen, müssen Sie folgende Elemente zur Verfügung stellen:

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

Weitere Informationen finden Sie unter Bereitstellen von ML-Modellen in Azure.

Analytics

Microsoft Power BI unterstützt die Verwendung von Machine Learning-Modellen für Datenanalysen. Weitere Informationen finden Sie unter KI mit Datenflows.

Aufzeichnen der Governance-Daten, die für Machine Learning Operations erforderlich sind

Azure Machine Learning ermöglicht Ihnen das Nachverfolgen des End-to-End-Überwachungspfads Ihrer sämtlichen ML-Ressourcen durch Verwendung von Metadaten.

  • Azure Machine Learning ist in Git integriert, um die Informationen nachzuverfolgen, aus welchem Repository, Branch und Commit Ihr Code stammt.
  • Azure Machine Learning-Datasets helfen Ihnen beim Nachverfolgen, der Profilerstellung und der Versionierung von Daten.
  • Dank der Interpretierbarkeit 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-Ausführungsverlauf 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. Diese Metadaten umfassen, mit welchem Experiment das Modell trainiert wurde, wo es bereitgestellt wird und ob seine Bereitstellungen fehlerfrei sind.
  • Durch die Integration in Azure können Sie auf Ereignisse im Machine Learning-Lebenszyklus reagieren. Hierzu zählen beispielsweise Ereignisse für Modellregistrierung, Bereitstellung, Datenabweichung und Training (Ausführung).

Tipp

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

Die Zuordnung eines Datasets zu einem registrierten Modell ist ein optionaler Schritt. Informationen zum Referenzieren eines Datasets beim Registrieren eines Modells finden Sie in der Referenz zur Modellklasse.

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 finden Sie unter Auslösen von Anwendungen, Prozessen oder CI/CD-Workflows basierend auf Azure Machine Learning-Ereignissen.

Überwachen auf Probleme in Bezug auf Betrieb und Machine Learning

Die Überwachung ermöglicht Ihnen zu verstehen, welche Daten an Ihr Modell gesendet werden und welche Vorhersagen es zurückgibt.

Diese Informationen helfen Ihnen zu verstehen, wie Ihr Modell genutzt wird. Die gesammelten Eingabedaten können auch beim Trainieren künftiger Versionen des Modells nützlich sein.

Weitere Informationen finden Sie unter Sammeln von Daten aus Modellen in der Produktion.

Erneutes Trainieren des Modells nach neuen Daten

Oftmals möchten Sie Ihr Modell überprüfen, es aktualisieren oder sogar von Grund auf neu trainieren, wenn Sie neue Informationen erhalten. Manchmal ist das Empfangen neuer Daten ein erwarteter Teil der Domäne. In anderen Fällen kann die Modellleistung aufgrund von Änderungen an einem bestimmten Sensor, natürlichen Datenänderungen wie saisonalen Effekten oder einer Verschiebung von Features in ihrer Beziehung zu anderen Features nachlassen. Weitere Informationen finden Sie unter Erkennen von Datendrift (Vorschau) auf Datasets.

Es gibt keine allgemeingültige Antwort auf die Frage „Woher weiß ich, ob ich mein Modell erneut trainieren sollte?“, aber die zuvor diskutierten Ereignis- und Überwachungstools von Azure Machine Learning sind gute Startpunkte für eine Automatisierung. Sobald Sie sich für das erneute Trainieren entscheiden, sollten Sie Folgendes tun:

  • Vorverarbeiten Ihrer Daten durch einen wiederholbaren, automatisierten Prozess
  • Trainieren Ihres neuen Modells
  • Vergleichen der Ausgaben Ihres neuen Modells mit den Ausgaben Ihres alten Modells
  • Verwenden von vordefinierten Kriterien, um zu entscheiden, ob das alte Modell ersetzt werden soll

Ein Leitgedanke der oben genannten Schritte ist, dass Ihr erneutes Trainieren automatisiert und nicht improvisiert erfolgen sollte. Azure Machine Learning-Pipelines sind eine gute Antwort für die Erstellung von Workflows in Bezug auf Datenvorbereitung, Training, Überprüfung und Bereitstellung. Lesen Sie Verwenden von Pipelineparametern, um Modelle im Designer neu zu trainieren, um zu sehen, wie Pipelines und der Azure Machine Learning-Designer in ein Szenario des erneuten Trainierens passen.

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 eine Wissenschaftliche Fachkraft für Daten eine Änderung in das Git-Repository für ein Projekt eincheckt, startet die Azure-Pipeline einen Trainingslauf. Sie können die Ergebnisse dieser Ausführung untersuchen, um die Leistungsmerkmale des trainierten Modells anzuzeigen. Sie können auch eine Pipeline erstelle, die das Modell als Webdienst bereitstellt.

Die Azure 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 Azure Machine Learning finden Sie in den folgenden Ressourcen:

Sie können Azure Data Factory auch verwenden, um eine Datenerfassungspipeline zu erstellen, die die Daten für die Verwendung im Training vorbereitet. Weitere Informationen finden Sie unter DevOps für eine Datenerfassungspipeline.

Weitere Informationen finden Sie in den folgenden Ressourcen: