Freigeben über


Upgraden von ML-Workflows auf Zielmodelle in Unity Catalog

In diesem Artikel wird erläutert, wie Sie ML-Workflows migrieren und auf Zielmodelle in Unity Catalog aktualisieren.

Anforderungen

Stellen Sie zunächst sicher, dass die Anforderungen unter Anforderungen erfüllt sind. Stellen Sie insbesondere sicher, dass die Benutzer*innen oder Prinzipale, die zum Ausführen Ihrer Modelltrainings-, Bereitstellungs- und Rückschlussworkflows verwendet werden, über die erforderlichen Berechtigungen für ein registriertes Modell in Unity Catalog verfügen:

  • Training: Besitz des registrierten Modells (erforderlich zum Erstellen neuer Modellversionen) sowie Berechtigungen vom Typ USE CATALOG und USE SCHEMA für den Katalog, der das Modell enthält, und das Schema.
  • Bereitstellung: Besitz des registrierten Modells (erforderlich zum Festlegen von Aliasen für das Modell) sowie Berechtigungen vom Typ USE CATALOG und USE SCHEMA für den Katalog, der das Modell enthält, und das Schema.
  • Rückschluss: Die Berechtigung EXECUTE für das registrierte Modell (erforderlich zum Lesen und Ausführen von Rückschlüssen mit Modellversionen) sowie Berechtigungen vom Typ USE CATALOG und „USE SCHEMA“ für den Katalog, der das Modell enthält, und das Schema.

Erstellen von parallelem Training, Bereitstellung und Workflows

Um Modelltrainings- und Rückschlussworkflows auf Unity Catalog zu aktualisieren, empfiehlt Databricks einen inkrementellen Ansatz, bei dem Sie eine Pipeline für paralleles Training, Bereitstellung und Rückschluss erstellen, die Modelle in Unity Catalog nutzt. Wenn Sie mit den Ergebnissen bei Verwendung von Unity Catalog zufrieden sind, können Sie Downstreamconsumer auf das Lesen der Batchrückschlussausgabe umstellen oder den an Modelle in Unity Catalog weitergeleiteten Datenverkehr in Bereitstellungsendpunkten erhöhen.

Modelltrainingsworkflow

Klonen Sie Ihren Modelltrainingsworkflow. Stellen Sie dann Folgendes sicher:

  1. Der Workflowcluster hat Zugriff auf Unity Catalog und erfüllt die unter Anforderungen beschriebenen Anforderungen.
  2. Der Prinzipal, der den Workflow ausführt, verfügt über die erforderlichen Berechtigungen für ein registriertes Modell in Unity Catalog.

Ändern Sie als Nächstes den Modelltrainingscode im geklonten Workflow. Möglicherweise müssen Sie das vom Workflow ausgeführte Notebook klonen oder einen neuen Git-Branch im geklonten Workflow erstellen und als Ziel festlegen. Führen Sie diese Schritte aus, um die erforderliche Version von MLflow zu installieren, den Client mit Unity Catalog als Ziel in Ihrem Trainingscode zu konfigurieren und den Modelltrainingscode zu aktualisieren, um Modelle bei Unity Catalog zu registrieren.

Modellbereitstellungsworkflow

Klonen Sie Ihren Modellbereitstellungsworkflow, indem Sie ähnliche Schritte wie die unter Modelltrainingsworkflow ausführen, um die Computekonfiguration zu aktualisieren und dadurch den Zugriff auf Unity Catalog zu ermöglichen.

Stellen Sie sicher, dass der Prinzipal, der den geklonten Workflow besitzt, über die erforderlichen Berechtigungen verfügt. Wenn Sie über eine Modellüberprüfungslogik in Ihrem Bereitstellungsworkflow verfügen, aktualisieren Sie sie, um Modellversionen aus UC zu laden. Verwenden Sie Aliase, um Rollouts von Produktionsmodellen zu verwalten.

Modellrückschlussworkflow

Batchrückschlussworkflow

Führen Sie ähnliche Schritte wie die unter Modelltrainingsworkflow aus, um den Batchrückschlussworkflow zu klonen und die Computekonfiguration zu aktualisieren, um den Zugriff auf Unity Catalog zu ermöglichen. Stellen Sie sicher, dass der Prinzipal, der den geklonten Batchrückschlussauftrag ausführt, über die erforderlichen Berechtigungen zum Laden des Modells für Rückschlüsse verfügt.

Modellbereitstellungsworkflow

Wenn Sie Mosaic AI Model Serving verwenden, müssen Sie Ihren vorhandenen Endpunkt nicht klonen. Stattdessen können Sie das Feature zur Datenverkehrsaufteilung nutzen, um einen kleinen Teil des Datenverkehrs an Modelle in Unity Catalog weiterzuleiten.

Stellen Sie zunächst sicher, dass der Prinzipal, der den Modellbereitstellungsendpunkt besitzt, über die erforderlichen Berechtigungen zum Laden des Modells für Rückschlüsse verfügt. Aktualisieren Sie dann Ihren geklonten Workflow für die Modellbereitstellung, um Modellversionen in Unity Catalog einen kleinen Prozentsatz des Datenverkehrs zuzuweisen.

Höherstufen eines Modell in mehreren Umgebungen

Databricks empfiehlt, ML-Pipelines als Code bereitzustellen. Dadurch entfällt die Notwendigkeit, Modelle umgebungsübergreifend höher zu stufen, da alle Produktionsmodelle durch automatisierte Trainingsworkflows in einer Produktionsumgebung generiert werden können.

In einigen Fällen kann es jedoch zu teuer sein, Modelle umgebungsübergreifend erneut zu trainieren. Stattdessen können Sie Modellversionen zwischen registrierten Modellen in Unity Catalog kopieren, um sie umgebungsübergreifend höher zu stufen.

Sie benötigen die folgenden Berechtigungen, um den folgenden Beispielcode auszuführen:

  • USE CATALOG für die Kataloge staging und prod
  • USE SCHEMA für die Schemas staging.ml_team und prod.ml_team
  • EXECUTE für staging.ml_team.fraud_detection

Darüber hinaus müssen Sie Besitzer*in des registrierten Modells prod.ml_team.fraud_detection sein.

Im folgenden Codeschnipsel wird die copy_model_version MLflow-Client-API verwendet, die in MLflow Version 2.8.0 und höher verfügbar ist.

import mlflow
mlflow.set_registry_uri("databricks-uc")

client = mlflow.tracking.MlflowClient()
src_model_name = "staging.ml_team.fraud_detection"
src_model_version = "1"
src_model_uri = f"models:/{src_model_name}/{src_model_version}"
dst_model_name = "prod.ml_team.fraud_detection"
copied_model_version = client.copy_model_version(src_model_uri, dst_model_name)

Wenn sich die Modellversion in der Produktionsumgebung befindet, können Sie alle erforderlichen Überprüfungsschritte vor der Bereitstellung durchführen. Anschließend können Sie die Modellversion für die Bereitstellung mithilfe von Aliasen markieren.

client = mlflow.tracking.MlflowClient()
client.set_registered_model_alias(name="prod.ml_team.fraud_detection", alias="Champion", version=copied_model_version.version)

Im obigen Beispiel können nur Benutzer*innen, die aus dem registrierten Modell staging.ml_team.fraud_detection lesen und in das registrierte Modell prod.ml_team.fraud_detection schreiben können, Stagingmodelle in die Produktionsumgebung höher stufen. Dieselben Benutzer*innen können auch Aliase verwenden, um zu verwalten, welche Modellversionen in der Produktionsumgebung bereitgestellt werden. Sie müssen keine anderen Regeln oder Richtlinien konfigurieren, um die Modellhöherstufung und -bereitstellung zu steuern.

Sie können diesen Flow anpassen, um die Modellversion in mehreren Umgebungen höher zu stufen, die Ihrem Setup entsprechen, z. B. dev, qa und prod. Die Zugriffssteuerung wird in jeder Umgebung wie konfiguriert erzwungen.

Verwenden von Auftragswebhooks zur manuellen Genehmigung für die Modellimplementierung

Databricks empfiehlt, die ModellImplemented. nach Möglichkeit vollständig zu automatisieren und während des Modellimplementierungsprozesses geeignete Überprüfungen und Tests zu verwenden. Wenn Sie jedoch manuelle Genehmigungen für die Bereitstellung von Produktionsmodellen durchführen müssen, können Sie Auftragswebhooks verwenden, um externe CI/CD-Systeme aufzurufen und eine manuelle Genehmigung für die Bereitstellung eines Modells anzufordern, nachdem Ihr Modelltrainingsauftrag erfolgreich abgeschlossen wurde. Nach der manuellen Genehmigung kann Ihr CI/CD-System die Modellversion bereitstellen, um Datenverkehr zu verarbeiten, z. B. durch Festlegen des Alias „Champion“.