Erkunden einer MLOps-Architektur

Abgeschlossen

Als wissenschaftliche Fachkraft für Daten möchten Sie das beste Machine Learning-Modell trainieren. Um das Modell zu implementieren, möchten Sie es in einem Endpunkt bereitstellen und in eine Anwendung integrieren.

Im Laufe der Zeit möchten Sie das Modell möglicherweise neu trainieren. Beispielsweise können Sie das Modell erneut trainieren, wenn Sie über mehr Trainingsdaten verfügen.

Im Allgemeinen möchten Sie, nachdem Sie ein Machine Learning-Modell trainiert haben, das Modell für die Unternehmensskala vorbereiten. Um das Modell vorzubereiten und zu operationalisieren, müssen Sie Folgendes ausführen:

  • Konvertieren Sie das Modelltraining in eine robuste und reproduzierbare Pipeline.
  • Testen Sie den Code und das Modell in einer Entwicklungsumgebung.
  • Stellen Sie das Modell in einer Produktionsumgebung bereit.
  • Automatisieren Sie den gesamten Prozess.

Einrichten von Umgebungen für Entwicklung und Produktion

In MLOps, ähnlich wie DevOps, bezieht sich eine Umgebung auf eine Sammlung von Ressourcen. Diese Ressourcen werden zur Bereitstellung einer Anwendung oder bei Machine Learning-Projekten zur Bereitstellung eines Modells verwendet.

Hinweis

In diesem Modul beziehen wir uns auf die DevOps-Interpretation von Umgebungen. Beachten Sie, dass Azure Machine Learning auch den Begriff „Umgebungen“ verwendet, um eine Sammlung von Python-Paketen zu beschreiben, die zum Ausführen eines Skripts benötigt werden. Diese beiden Konzepte von Umgebungen sind unabhängig voneinander.

Mit wie vielen Umgebungen Sie arbeiten, hängt von Ihrer Organisation ab. Häufig gibt es mindestens zwei Umgebungen: Entwicklung oder Entwicklung und Produktion oder Prod. Darüber hinaus können Sie Umgebungen zwischen einer Staging- oder Vorproduktionsumgebung (Pre-prod) hinzufügen.

Ein typischer Ansatz besteht darin, folgendes zu erreichen:

  • Experimentieren Sie mit Modellschulungen in der Entwicklungsumgebung .
  • Verschieben Sie das beste Modell in die Staging- oder Vorproduktumgebung , um das Modell bereitzustellen und zu testen.
  • Veröffentlichen Sie schließlich das Modell in der Produktionsumgebung , um das Modell bereitzustellen, damit Endbenutzer es nutzen können.

Organisieren von Azure Machine Learning-Umgebungen

Wenn Sie MLOps implementieren und im großen Stil mit Machine Learning-Modellen arbeiten, ist es eine bewährte Methode, mit getrennten Umgebungen für verschiedene Stages zu arbeiten.

Stellen Sie sich vor, Dass Ihr Team eine Entwicklungs-, Vorprodukt- und Prod-Umgebung verwendet. Nicht jeder in Ihrem Team sollte Zugriff auf alle Umgebungen haben. Wissenschaftliche Fachkräfte für Daten dürfen nur in der Entwicklungsumgebung mit Nicht-Produktionsdaten arbeiten, während Techniker für maschinelles Lernen an der Bereitstellung des Modells in der Vorproduktions- und Produktionsumgebung mit Produktionsdaten arbeiten.

Wenn Sie separate Umgebungen haben, können Sie den Zugriff auf Ressourcen einfacher steuern. Jede Umgebung kann dann einem separaten Azure Machine Learning-Arbeitsbereich zugeordnet werden.

Diagramm mehrerer Azure Machine Learning-Arbeitsbereiche mit mehreren Umgebungen.

In Azure verwenden Sie die rollenbasierte Zugriffssteuerung (RBAC), um Kollegen den richtigen Zugriff auf die Teilmenge der Ressourcen zu gewähren, mit der sie arbeiten müssen.

Alternativ können Sie auch nur einen einzelnen Azure Machine Learning-Arbeitsbereich verwenden. Wenn Sie einen Arbeitsbereich für Entwicklung und Produktion verwenden, haben Sie einen geringeren Azure-Speicherbedarf und weniger Verwaltungsaufwand. Die RBAC gilt jedoch sowohl für Entwicklungs- als auch für Prod-Umgebungen, was bedeutet, dass Sie Personen zu wenig oder zu viel Zugriff auf Ressourcen gewähren.

Entwerfen einer MLOps-Architektur

Damit das Modell in der Produktion bereitgestellt werden kann, müssen Sie Ihre Lösung skalieren und mit anderen Teams zusammenarbeiten. Zusammen mit anderen Datenwissenschaftlern, Dateningenieuren und einem Infrastrukturteam können Sie sich für die Verwendung des folgenden Ansatzes entscheiden:

  • Speichern Sie alle Daten in einem Azure-Blobspeicher, der von der technischen Fachkraft für Daten verwaltet wird.
  • Das Infrastrukturteam erstellt alle erforderlichen Azure-Ressourcen, z. B. den Azure Machine Learning-Arbeitsbereich.
  • Wissenschaftliche Fachkräfte für Daten konzentrieren sich auf das, was sie am besten können: Entwickeln und Trainieren des Modells (innere Schleife).
  • Machine Learning-Techniker stellen die trainierten Modelle bereit (äußere Schleife).

Daher umfasst Ihre MLOps-Architektur die folgenden Teile:

Diagramm einer Architektur, die ein typisches MLOps-Projekt darstellt.

  1. Setup: Erstellen aller erforderlichen Azure-Ressourcen für die Lösung.
  2. Modellentwicklung (innere Schleife): Untersuchen und verarbeiten Sie die Daten, um das Modell zu trainieren und auszuwerten.
  3. Kontinuierliche Integration: Packen und Registrieren des Modells.
  4. Modellbereitstellung (äußere Schleife):Stellen Sie das Modell bereit.
  5. Kontinuierliche Bereitstellung: Testen Sie das Modell und fördern Sie die Produktionsumgebung.
  6. Überwachung: Überwachen der Modell- und Endpunktleistung.

Wenn Sie mit größeren Teams arbeiten, wird nicht erwartet, dass Sie als wissenschaftliche Fachkraft für Daten für alle Teile der MLOps-Architektur verantwortlich sind. Um Ihr Modell jedoch auf MLOps vorzubereiten, sollten Sie überlegen, wie Sie die Überwachung und Umschulung entwerfen.