ML-Lebenszyklusverwaltung mit MLflow

In diesem Artikel wird beschrieben, wie MLflow in Databricks für die Verwaltung des Lebenszyklus beim maschinellen Lernen verwendet wird. Er enthält auch Beispiele, in denen die einzelnen MLflow-Komponenten vorgestellt und Links zu Inhalten bereitgestellt werden, unter denen beschrieben wird, wie diese Komponenten in Azure Databricks gehostet werden.

Die ML-Lebenszyklusverwaltung in Databricks erfolgt über einen verwalteten MLflow. Azure Databricks bietet eine vollständig verwaltete und gehostete Version von MLflow, die in Features für Unternehmenssicherheit, Hochverfügbarkeit und weitere Azure Databricks-Arbeitsbereichsfeatures wie die Verwaltung von Experimenten und deren Durchführung und die Erfassung von Notebookrevisionen integriert ist.

Erstbenutzer*innen sollten mit dem Artikel Erste Schritte mit MLflow-Experimenten beginnen. Darin werden die grundlegenden Nachverfolgungs-APIs von MLflow vorgestellt.

Was ist MLflow?

MLflow ist eine Open-Source-Plattform für die Verwaltung des gesamten Machine Learning-Lebenszyklus. Sie enthält die folgenden primären Komponenten:

  • Nachverfolgung: Ermöglicht Ihnen das Nachverfolgen von Experimenten, um Parameter und Ergebnisse aufzuzeichnen und zu vergleichen.
  • Modelle: Ermöglichen die Verwaltung und Bereitstellung von Modellen aus einer Vielzahl von ML-Bibliotheken für verschiedene Plattformen, die die Modellbereitstellung und Rückschlussfunktionen unterstützen.
  • Projekte: Unterstützen die Integration von ML-Code in ein wiederverwendbares, reproduzierbares Paketformat, das mit anderen Data Scientists ausgetauscht oder in die Produktion übertragen werden kann.
  • Modellregistrierung: Ermöglicht Ihnen das Zentralisieren eines Modellspeichers für die Verwaltung der Phasenübergänge des vollständigen Lebenszyklus von Modellen, vom Staging bis zur Produktion, mit Funktionen für die Versionsverwaltung und Anmerkung. Databricks stellt eine verwaltete Version der Modellregistrierung in Unity Catalog bereit.
  • Model Serving: ermöglicht das Hosten von MLflow-Modellen als REST-Endpunkte. Databricks bietet eine einheitliche Schnittstelle zum Bereitstellen, Steuern und Abfragen Ihrer bereitgestellten KI-Modelle.

MLflow unterstützt Java-, Python-, R- und REST-APIs.

MLflow-Daten werden von Azure Databricks mithilfe eines plattformseitig verwalteten Schlüssels verschlüsselt. Die Verschlüsselung mithilfe von kundenseitig verwalteten Schlüssels für verwaltete Dienste wird nicht unterstützt.

MLflow-Nachverfolgung

MLflow in Azure Databricks bietet eine integrierte Oberfläche, über die die Trainingsausführungen für Machine Learning- und Deep Learning-Modelle nachverfolgt und geschützt werden können.

Lebenszyklusverwaltung von Modellen

Die MLflow-Modellregistrierung ist ein zentralisiertes Modellrepository mit Benutzeroberfläche und APIs, mit denen Sie den gesamten Lebenszyklus von MLflow-Modellen verwalten können. Databricks stellt eine gehostete Version der MLflow-Modellregistrierung in Unity Catalog bereit. Unity Catalog bietet zentralisierte Modellgovernance, arbeitsbereichsübergreifenden Zugriff, Datenherkunft und Bereitstellung. Ausführliche Informationen zum Verwalten des Modelllebenszyklus in Unity Catalog finden Sie unter Verwalten des Modelllebenszyklus in Unity Catalog.

Wenn Ihr Arbeitsbereich nicht für Unity Catalog aktiviert ist, können Sie die Arbeitsbereichsmodellregistrierung verwenden.

Konzepte der Modellregistrierung

  • Modell: Hierbei handelt es sich um ein MLflow-Modell aus einem Experiment oder einer Ausführung, das mit einer der mlflow.<model-flavor>.log_model-Methoden des Modells protokolliert wird. Nachdem ein Modell protokolliert wurde, können Sie es bei der Modellregistrierung registrieren.
  • Registriertes Modell: Hierbei handelt es sich um ein MLflow-Modell, das bei der Modellregistrierung registriert wurde. Zu dem registrierten Modell gehören ein eindeutiger Name, Versionen, die Modellherkunft und andere Metadaten.
  • Modellversion: Hierbei handelt es sich um die Version eines registrierten Modells. Wenn ein neues Modell zur Modellregistrierung hinzugefügt wird, erhält es den Namen „Version 1“. Mit jedem Modell, das unter dem selben Modellnamen registriert wird, erhöht sich die Versionsnummer.
  • Modellalias: Ein Alias ist ein veränderlicher, benannter Verweis auf eine bestimmte Version eines registrierten Modells. Typische Verwendungszwecke von Aliasen sind die Angabe, welche Modellversionen in einer bestimmten Umgebung in Ihren Modelltrainingsworkflows eingesetzt werden, oder das Schreiben von Rückschlussworkloads für einen bestimmten Alias. Beispielsweise können Sie den Alias „Champion“ Ihres registrierten Betrugserkennungsmodells der Modellversion zuweisen, die den Großteil des Produktionsdatenverkehrs bedienen soll, und dann Rückschlussworkloads schreiben, die auf diesen Alias abzielen (d. h. Vorhersagen mit der Version „Champion“ vornehmen).
  • Modellphase (nur Arbeitsbereichsmodellregistrierung): Eine Modellversion kann einer oder mehreren Phasen zugewiesen werden. MLflow bietet vordefinierte Phasen für die gängigen Anwendungsfälle None, Staging, Production und Archived. Mit der entsprechenden Berechtigung können Sie eine Modellversion zwischen Phasen verschieben oder einen Phasenübergang anfordern. Modellversionsphasen werden in Unity Catalog nicht verwendet.
  • Beschreibung: Sie können den Zweck eines Modells kommentieren, einschließlich der Beschreibung und aller relevanten Informationen, die für das Team nützlich sind, wie z. B. die Algorithmusbeschreibung, das verwendete Dataset oder die Methodik.

Beispielnotebooks

Im Folgenden finden Sie ein Beispiel, in dem veranschaulicht wird, wie Sie die Modellregistrierung verwenden können, um eine Machine Learning-Anwendung zu erstellen, die die tägliche Stromerzeugung eines Windparks vorhersagt:

Modellimplementierung

Databricks Model Serving bietet eine einheitliche Schnittstelle zum Bereitstellen, Steuern und Abfragen Ihrer bereitgestellten KI-Modelle. Jedes von Ihnen bereitgestellte Modell ist als REST-API verfügbar, die Sie in Ihre Web- oder Clientanwendung integrieren können.

Modellbereitstellung unterstützt die Bereitstellung von:

  • Benutzerdefinierte Modelle: Dies sind Python-Modelle, die im MLflow-Format verpackt sind. Sie können in Unity Catalog oder in der Arbeitsbereichsmodellregistrierung registriert werden. Beispiele sind scikit-learn-, XGBoost-, PyTorch- und Hugging Face-Transformationsmodelle.
  • Modernste offene Modelle, die von Foundation Model-APIszur Verfügung gestellt werden Diese Modelle sind kuratierte Basismodellarchitekturen, die optimierte Rückschlüsse unterstützen. Basismodelle wie Llama-2-70B-chat, BGE-Large und Mistral-7B stehen für die sofortige Verwendung mit tokenbasierter Bezahlung zur Verfügung. Workloads, die Leistungsgarantien und optimierte Modellvarianten erfordern, können mit bereitgestelltem Durchsatz bereitgestellt werden.
  • Externe Modelle. Dies sind Modelle, die außerhalb von Databricks gehostet werden. Beispiele sind Basismodelle wie GPT-4 von OpenAI, Claude von Anthropic und andere. Endpunkte für externe Modelle können zentral gesteuert werden, und Kund*innen können Ratenbegrenzungen und Zugriffssteuerungen für sie festlegen.

Sie können auch MLflow-Modelle für Offlinerückschlüsse bereitstellen, siehe Bereitstellen von Modellen für Batchrückschlüsse.