Verwalten des Lebenszyklus von Modellen in Unity Catalog

Wichtig

In diesem Artikel wird beschrieben, wie Sie die Modelle in Unity Catalog als Teil Ihres Machine Learning-Workflows verwenden, um den gesamten Lebenszyklus von ML-Modellen zu verwalten. Databricks stellt eine gehostete Version der MLflow-Modellregistrierung in Unity Catalog bereit. Modelle in Unity Catalog erweitern die Vorteile von Unity Catalog auf ML-Modelle, einschließlich zentralisierter Zugriffssteuerung, Überwachung, Herkunft und arbeitsbereichübergreifende Modellsuche. Modelle in Unity Catalog sind mit dem Open-Source-MLflow-Python-Client kompatibel.

Wichtige Features von Modellen in Unity Catalog sind:

  • Namespacing und Governance für Modelle, sodass Sie Modelle auf Umgebungs-, Projekt- oder Teamebene gruppieren und steuern können („Gewähren des schreibgeschützten Zugriffs auf Produktionsmodelle für Data Scientists“).
  • Chronologische Modelllinie (das MLflow-Experiment ausgeführt und das Modell zu einem bestimmten Zeitpunkt produziert hat).
  • Modellbereitstellung.
  • Versionsverwaltung für Modelle:
  • Modellbereitstellung über Aliase. Sie können beispielsweise die „Champion“-Version eines Modells in Ihrem prod-Katalog kennzeichnen.

Wenn ihr Standardkatalog des Arbeitsbereichs in einem Katalog im Unity-Katalog konfiguriert ist, werden Modelle, die mit MLflow-APIs wie mlflow.<model-type>.log_model(..., registered_model_name) oder mlflow.register_model(model_uri, name) registriert sind, standardmäßig im Unity-Katalog registriert.

Dieser Artikel enthält Anweisungen für die Modelle in der Unity Catalog-Benutzeroberfläche und in der API.

Eine Übersicht über Konzepte zur Modellregistrierung finden Sie unter ML-Lebenszyklusverwaltung mit MLflow.

Anforderungen

  1. Unity Catalog muss in Ihrem Arbeitsbereich aktiviert sein. Weitere Informationen zum Erstellen und Aktivieren eines Unity Catalog-Metastores in einem Arbeitsbereich sowie zum Erstellen eines Katalogs finden Sie unter Erste Schritte mit Unity Catalog. Wenn Unity Catalog nicht aktiviert ist, können Sie weiterhin die klassische Arbeitsbereichsmodellregistrierung verwenden.

  2. Ihr Arbeitsbereich muss an einen Unity Catalog-Metastore angefügt sein, der die Vererbung von Berechtigungen unterstützt. Dies gilt für alle Metastores, die nach dem 25. August 2022 erstellt wurden. Wenn Sie einen älteren Metastore verwenden, finden Sie in dieser Dokumentation Informationen zum Upgraden.

  3. Sie benötigen entsprechende Zugriffsrechte, um Befehle in einem Cluster mit Zugriff auf Unity Catalog auszuführen.

  4. Zum Erstellen neuer registrierter Modelle benötigen Sie zusätzlich zu den Berechtigungen USE SCHEMA und USE CATALOG für das Schema und den Katalog, die das Modell enthalten, die Berechtigung CREATE_MODEL für ein Schema. CREATE_MODEL ist eine neue Berechtigung auf Schemaebene, die Sie auf der Katalog-Explorer-Benutzeroberfläche oder mit dem SQL GRANT-Befehl gewähren können, wie nachfolgend dargestellt.

    GRANT CREATE_MODEL ON SCHEMA <schema-name> TO <principal>
    

Upgraden von Trainingsworkloads auf Unity Catalog

Dieser Abschnitt enthält Anweisungen zum Upgrade vorhandener Trainingsworkloads auf Unity Catalog.

Installieren des MLflow-Python-Clients

Sie können Modelle in Unity Catalog auch unter Databricks Runtime 11.3 LTS und höher verwenden, indem Sie die neueste Version des MLflow Python-Clients in Ihrem Notebook mithilfe des folgenden Codes installieren.

%pip install --upgrade "mlflow-skinny[databricks]"
dbutils.library.restartPython()

Konfigurieren des MLflow-Clients für den Zugriff auf Modelle in Unity Catalog

Standardmäßig erstellt der MLflow-Python-Client Modelle in der Databricks-Arbeitsbereichsmodellregistrierung. Um ein Upgrade auf Modelle in Unity Catalog durchzuführen, konfigurieren Sie den MLflow-Client:

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

Hinweis

Wenn sich der Standardkatalog Ihres Arbeitsbereichs in Unity Catalog (und nicht in hive_metastore) befindet und Sie einen Cluster mit Databricks Runtime 13.3 LTS oder höher (Databricks Runtime 15.0 oder höher in Azure China-Regionen) ausführen, werden Modelle automatisch im Standardkatalog erstellt und geladen, ohne dass eine Konfiguration erforderlich ist. Für andere Databricks-Runtime-Versionen gibt es keine Änderung des Verhaltens. Eine kleine Anzahl von Arbeitsbereichen, bei denen der Standardkatalog vor Januar 2024 als Katalog in Unity Catalog konfiguriert und die Arbeitsbereichsmodellregistrierung vor Januar 2024 verwendet wurde, sind von diesem Verhalten ausgenommen.

Trainieren und Registrieren von Unity Catalog-kompatiblen Modellen

Erforderliche Berechtigungen: Um ein neues registriertes Modell zu erstellen, benötigen Sie die Berechtigungen CREATE_MODEL und USE SCHEMA für das Schema, das das Modell enthält, sowie die Berechtigung USE CATALOG für den Katalog, der das Modell enthält. Um neue Modellversionen unter einem registrierten Modell zu erstellen, müssen Sie der Besitzer des registrierten Modells sein und über die Berechtigungen USE SCHEMA und USE CATALOG für das Schema und den Katalog verfügen, die das Modell enthalten.

ML-Modellversionen in Unity Catalog müssen über eine Modellsignatur verfügen. Wenn Sie MLflow-Modelle in Ihren Modelltrainingsworkloads noch nicht mit Signaturen protokollieren, haben Sie die folgenden Möglichkeiten:

  • Verwenden der automatischen Databricks-Protokollierung, die Modelle automatisch mit Signaturen für viele gängige ML-Frameworks protokolliert. Informationen zu den unterstützten Frameworks finden Sie in der MLflow-Dokumentation.
  • Mit MLflow 2.5.0 und höher können Sie in Ihrem mlflow.<flavor>.log_model-Aufruf ein Eingabebeispiel angeben. Die Modellsignatur wird automatisch abgeleitet. Weitere Informationen finden Sie in der MLflow-Dokumentation.

Übergeben Sie dann den dreiteiligen Namen des Modells im Format <catalog>.<schema>.<model> an MLflow-APIs.

In den Beispielen in diesem Abschnitt wird das Schema ml_team unter dem Katalog prod für die Erstellung von und den Zugriff auf Modelle verwendet.

Mit den Modelltrainingsbeispielen in diesem Abschnitt wird eine neue Modellversion erstellt und im Katalog prod registriert. Die Verwendung des Katalogs prod bedeutet nicht unbedingt, dass die Modellversion dem Produktionsdatenverkehr dient. Der Katalog, das Schema und das registrierte Modell, die die Modellversion einschließen, spiegeln ihre die Umgebung (prod) und die zugehörigen Governanceregeln wider (z. B. können Berechtigungen eingerichtet werden, sodass nur Administratoren aus dem Katalog prod löschen können), nicht aber ihren Bereitstellungsstatus. Verwenden Sie Modellaliase, um den Bereitstellungsstatus zu verwalten.

Registrieren eines Modells bei Unity Catalog mithilfe der automatischen Protokollierung

from sklearn import datasets
from sklearn.ensemble import RandomForestClassifier

# Train a sklearn model on the iris dataset
X, y = datasets.load_iris(return_X_y=True, as_frame=True)
clf = RandomForestClassifier(max_depth=7)
clf.fit(X, y)

# Note that the UC model name follows the pattern
# <catalog_name>.<schema_name>.<model_name>, corresponding to
# the catalog, schema, and registered model name
# in Unity Catalog under which to create the version
# The registered model will be created if it doesn't already exist
autolog_run = mlflow.last_active_run()
model_uri = "runs:/{}/model".format(autolog_run.info.run_id)
mlflow.register_model(model_uri, "prod.ml_team.iris_model")

Registrieren eines Modells bei Unity Catalog mit einer automatisch abgeleiteten Signatur

Unterstützung für automatisch abgeleitete Signaturen ist in MLflow Version 2.5.0 und höher verfügbar und wird in Databricks Runtime 11.3 LTS ML und höher unterstützt. Um automatisch abgeleitete Signaturen zu nutzen, verwenden Sie den folgenden Code, um den neuesten MLflow Python-Client in Ihrem Notebook zu installieren:

%pip install --upgrade "mlflow-skinny[databricks]"
dbutils.library.restartPython()

Der folgende Code zeigt ein Beispiel für eine automatisch abgeleitete Signatur.

from sklearn import datasets
from sklearn.ensemble import RandomForestClassifier

with mlflow.start_run():
    # Train a sklearn model on the iris dataset
    X, y = datasets.load_iris(return_X_y=True, as_frame=True)
    clf = RandomForestClassifier(max_depth=7)
    clf.fit(X, y)
    # Take the first row of the training dataset as the model input example.
    input_example = X.iloc[[0]]
    # Log the model and register it as a new version in UC.
    mlflow.sklearn.log_model(
        sk_model=clf,
        artifact_path="model",
        # The signature is automatically inferred from the input example and its predicted output.
        input_example=input_example,
        registered_model_name="prod.ml_team.iris_model",
    )

Nachverfolgen der Datenherkunft eines Modells in Unity Catalog

Hinweis

Die Unterstützung für Tabellen zur Datenherkunft eines Modells in Unity Catalog ist in MLflow 2.11.0 und höher verfügbar.

Wenn Sie ein Modell anhand einer Tabelle in Unity Catalog trainieren, können Sie die Datasets des Modells bis zu den vorgelagerten Datasets nachverfolgen, auf denen es trainiert und ausgewertet wurde. Verwenden Sie dazu mlflow.log_input. Dadurch werden die Informationen der Eingabetabelle mit der MLflow-Ausführung gespeichert, die das Modell generiert hat. Die Datenherkunft wird auch automatisch für Modelle erfasst, die mithilfe von Featurespeicher-APIs protokolliert werden. Weitere Informationen finden Sie unter Datenherkunft des Featurespeichers anzeigen.

Wenn Sie das Modell in Unity Catalog registrieren, werden die Informationen zur Datenherkunft automatisch gespeichert und auf der Registerkarte Lineage (Datenherkunft) der Modellversions-Benutzeroberfläche in Catalog Explorer angezeigt.

Der folgende Code enthält hierzu ein Beispiel.

import mlflow
import pandas as pd
import pyspark.pandas as ps
from sklearn.datasets import load_iris
from sklearn.ensemble import RandomForestRegressor

# Write a table to Unity Catalog
iris = load_iris()
iris_df = pd.DataFrame(iris.data, columns=iris.feature_names)
iris_df.rename(
  columns = {
    'sepal length (cm)':'sepal_length',
    'sepal width (cm)':'sepal_width',
    'petal length (cm)':'petal_length',
    'petal width (cm)':'petal_width'},
  inplace = True
)
iris_df['species'] = iris.target
ps.from_pandas(iris_df).to_table("prod.ml_team.iris", mode="overwrite")

# Load a Unity Catalog table, train a model, and log the input table
dataset = mlflow.data.load_delta(table_name="prod.ml_team.iris", version="0")
pd_df = dataset.df.toPandas()
X = pd_df.drop("species", axis=1)
y = pd_df["species"]
with mlflow.start_run():
    clf = RandomForestRegressor(n_estimators=100)
    clf.fit(X, y)
    mlflow.log_input(dataset, "training")

Anzeigen von Modellen auf der Benutzeroberfläche

Erforderliche Berechtigungen: Um ein registriertes Modell und dessen Modellversionen auf der Benutzeroberfläche anzuzeigen, benötigen Sie die Berechtigung EXECUTE für das registrierte Modell sowie die Berechtigungen USE SCHEMAund USE CATALOG für das Schema und den Katalog, die das Modell enthalten.

Sie können registrierte Modelle und Modellversionen in Unity Catalog mit dem Katalog-Explorer anzeigen und verwalten.

Steuern des Zugriffs auf Modelle

Informationen zum Steuern des Zugriffs auf Modelle, die in Unity Catalog registriert sind, finden Sie unter Unity Catalog-Berechtigungen und sicherungsfähige Objekte. Bewährte Methoden zum Organisieren von Modellen über Kataloge und Schemas hinweg finden Sie unter Organisieren Ihrer Daten.

Sie können Modellberechtigungen mithilfe der Grants REST-API programmgesteuert konfigurieren. Legen Sie beim Konfigurieren von Modellberechtigungen in REST-API-Anforderungen securable_type auf fest"FUNCTION". Verwenden Sie beispielsweise PATCH /api/2.1/unity-catalog/permissions/function/{full_name}, um registrierte Modellberechtigungen zu aktualisieren.

Bereitstellen und Organisieren von Modellen mit Aliasen und Tags

Modellaliase und Tags unterstützen Sie beim Organisieren und Verwalten von Modellen in Unity Catalog.

Mithilfe von Modellaliasen können Sie einer bestimmten Version eines registrierten Modells einen veränderlichen, benannten Verweis zuweisen. Sie können Aliase verwenden, um den Bereitstellungsstatus einer Modellversion anzugeben. Beispielsweise können Sie der Modellversion, die sich derzeit in der Produktion befindet, den Alias „Champion“ zuordnen und ihn in Workloads, die das Produktionsmodell nutzen, als Ziel verwenden. Anschließend können Sie das Produktionsmodell aktualisieren, indem Sie den Alias „Champion“ einer anderen Modellversion neu zuweisen.

Tags sind Schlüssel-Wert-Paare, die Sie registrierten Modellen und Modellversionen zuordnen können, sodass Sie sie nach Funktion oder Status bezeichnen und kategorisieren können. Sie können beispielsweise ein Tag mit dem Schlüssel "task" und dem Wert "question-answering" (wird auf der Benutzeroberfläche als task:question-answering angezeigt) auf registrierte Modelle anwenden, deren Aufgabe es sein soll, Fragen zu beantworten. Auf Modellversionsebene könnten Sie Versionen, die vor der Bereitstellung noch überprüft werden, mit validation_status:pending und Versionen, die bereits für die Bereitstellung zugelassen sind, mit validation_status:approved taggen.

Informationen zur Verwendung von Aliasen und Tags finden Sie in den folgenden Abschnitten.

Festlegen und Löschen von Aliasen für Modelle

Erforderliche Berechtigungen: Besitzer des registrierten Modells sowie die Berechtigungen USE SCHEMA und USE CATALOG für das Schema und den Katalog, die das Modell enthalten.

Sie können Aliase für Modelle in Unity Catalog mithilfe des Katalog-Explorers festlegen, aktualisieren und entfernen. Sie können Aliase für ein registriertes Modell auf der Seite Modelldetails verwalten und Aliase für eine bestimmte Modellversion auf der Seite Details zur Modellversion konfigurieren.

Informationen zum Festlegen, Aktualisieren und Löschen von Aliasen mithilfe der MLflow-Client-API finden Sie in den folgenden Beispielen:

from mlflow import MlflowClient
client = MlflowClient()

# create "Champion" alias for version 1 of model "prod.ml_team.iris_model"
client.set_registered_model_alias("prod.ml_team.iris_model", "Champion", 1)

# reassign the "Champion" alias to version 2
client.set_registered_model_alias("prod.ml_team.iris_model", "Champion", 2)

# get a model version by alias
client.get_model_version_by_alias("prod.ml_team.iris_model", "Champion")

# delete the alias
client.delete_registered_model_alias("prod.ml_team.iris_model", "Champion")

Festlegen und Löschen von Tags für Modelle

Erforderliche Berechtigungen: Besitzer oder Inhaber der Berechtigung APPLY_TAG für das registrierte Modell sowie die Berechtigungen USE SCHEMA und USE CATALOG für das Schema und den Katalog, die das Modell enthalten.

Informationen zum Festlegen und Löschen von Tags mithilfe der Benutzeroberfläche finden Sie unter Verwalten von Tags im Katalog-Explorer.

Informationen zum Festlegen und Löschen von Tags mithilfe der MLflow-Client-API finden Sie in den folgenden Beispielen:

from mlflow import MlflowClient
client = MlflowClient()

# Set registered model tag
client.set_registered_model_tag("prod.ml_team.iris_model", "task", "classification")

# Delete registered model tag
client.delete_registered_model_tag("prod.ml_team.iris_model", "task")

# Set model version tag
client.set_model_version_tag("prod.ml_team.iris_model", "1", "validation_status", "approved")

# Delete model version tag
client.delete_model_version_tag("prod.ml_team.iris_model", "1", "validation_status")

Sowohl registrierte Modell- als auch Modellversionstags müssen die plattformweiten Einschränkungen erfüllen.

Weitere Informationen zu Alias- und Tagclient-APIs finden Sie in der Dokumentation zur MLflow-API.

Laden von Modellen für Rückschlüsse

Nutzen von Modellversionen über den Alias in Rückschlussworkloads

Erforderliche Berechtigungen: Berechtigung EXECUTE für das registrierte Modell sowie die Berechtigungen USE SCHEMA und USE CATALOG für das Schema und den Katalog, die das Modell enthalten.

Sie können Batchrückschlussworkloads schreiben, die über den Alias auf eine Modellversion verweisen. Im folgenden Codeausschnitt wird beispielsweise die „Champion“-Modellversion für Batchrückschlüsse geladen und angewendet. Wenn die „Champion“-Version aktualisiert wird und auf eine neue Modellversion verweist, wird sie automatisch von der Batchrückschlussworkload bei der nächsten Ausführung ausgewählt. Dadurch können Sie Modellbereitstellungen von Ihren Batchrückschlussworkloads entkoppeln.

import mlflow.pyfunc
model_version_uri = "models:/prod.ml_team.iris_model@Champion"
champion_version = mlflow.pyfunc.load_model(model_version_uri)
champion_version.predict(test_x)

Sie können auch Bereitstellungsworkflows schreiben, um eine Modellversion über den Alias abzurufen, und ein Modell aktualisieren, das den Endpunkt für die Bereitstellung dieser Version bereitstellt, indem Sie die REST-API für die Modellbereitstellung verwenden:

import mlflow
import requests
client = mlflow.tracking.MlflowClient()
champion_version = client.get_model_version_by_alias("prod.ml_team.iris_model", "Champion")
# Invoke the model serving REST API to update endpoint to serve the current "Champion" version
model_name = champion_version.name
model_version = champion_version.version
requests.request(...)

Nutzen von Modellversionen über die Versionsnummer in Rückschlussworkloads

Sie können Modellversionen auch über die Versionsnummer laden:

import mlflow.pyfunc
# Load version 1 of the model "prod.ml_team.iris_model"
model_version_uri = "models:/prod.ml_team.iris_model/1"
first_version = mlflow.pyfunc.load_model(model_version_uri)
first_version.predict(test_x)

Arbeitsbereichsübergreifendes Freigeben von Modellen

Freigeben von Modellen für Benutzer in derselben Region

Sofern Sie über die entsprechenden Berechtigungen verfügen, können Sie von jedem Arbeitsbereich aus, der an den Metastore mit dem Modell angefügt ist, auf Modelle in Unity Catalog zugreifen. Sie können beispielsweise auf Modelle im prod-Katalog in einem Entwicklungsarbeitsbereich zugreifen, um den Vergleich neu entwickelter Modelle mit der Produktionsbaseline zu ermöglichen.

Um mit anderen Benutzern an einem registrierten Modell, das Sie erstellt haben, zusammenzuarbeiten (Schreibberechtigungen freigeben), müssen Sie eine Gruppe als Besitzer des Modells festlegen, die Sie selbst und die Benutzer enthält, mit denen Sie zusammenarbeiten möchten. Projektmitarbeiter müssen außerdem über die Berechtigungen USE CATALOG und USE SCHEMA für den Katalog und das Schema verfügen, die das Modell enthalten. Weitere Informationen finden Sie unter Unity Catalog-Berechtigungen und sicherungsfähige Objekte.

Freigeben von Modellen für Benutzer in einer anderen Region oder einem anderen Konto

Um Modelle für Benutzer in anderen Regionen oder Konten freizugeben, verwenden Sie den Databricks-zu-Databricks-Freigabeflow von Delta Sharing. Siehe Hinzufügen von Modellen zu einer Freigabe (für Anbieter) und Erhalten von Zugriff im Databricks-zu-Databricks-Modell (für Empfänger). Nachdem Sie einen Katalog aus einer Freigabe erstellt haben, greifen Sie als Empfänger auf Modelle in diesem freigegebenen Katalog genauso wie auf jedes andere Modell in Unity Catalog zu.

Hinzufügen einer Anmerkung zu einem Modell oder einer Modellversion

Erforderliche Berechtigungen: Besitzer des registrierten Modells sowie die Berechtigungen USE SCHEMA und USE CATALOG für das Schema und den Katalog, die das Modell enthalten.

Sie können Informationen zu einem Modell oder einer Modellversion angeben, indem Sie eine Anmerkung anfügen. Beispielsweise können Sie eine Übersicht über das Problem oder Informationen zur verwendeten Methodik und zum Algorithmus angeben.

Versehen eines Modells oder einer Modellversion mit einer Anmerkung über die Benutzeroberfläche

Weitere Informationen finden Sie unter Dokumentieren von Daten im Katalog-Explorer mit Markdownkommentaren.

Versehen eines Modells oder einer Modellversion mit einer Anmerkung über die API

Verwenden Sie die update_registered_model()-Methode der MLflow-Client-API, um die Beschreibung eines registrierten Modells zu aktualisieren:

client = MlflowClient()
client.update_registered_model(
  name="<model-name>",
  description="<description>"
)

Verwenden Sie die Methode update_model_version() der MLflow-Client-API, um die Beschreibung einer Modellversion zu aktualisieren:

client = MlflowClient()
client.update_model_version(
  name="<model-name>",
  version=<model-version>,
  description="<description>"
)

Umbenennen eines Modells (nur API)

Erforderliche Berechtigungen: Besitzer des registrierten Modells, Berechtigung CREATE_MODEL für das Schema, das das registrierte Modell enthält, und die Berechtigungen USE SCHEMA und USE CATALOG für das Schema und den Katalog, die das Modell enthalten.

Verwenden Sie die Methode rename_registered_model() der MLflow-Client-API, um ein registriertes Modell umzubenennen:

client=MlflowClient()
client.rename_registered_model("<model-name>", "<new-model-name>")

Löschen eines Modells oder einer Modellversion

Erforderliche Berechtigungen: Besitzer des registrierten Modells sowie die Berechtigungen USE SCHEMA und USE CATALOG für das Schema und den Katalog, die das Modell enthalten.

Sie können ein registriertes Modell oder eine Modellversion in einem registrierten Modell über die Benutzeroberfläche des Katalog-Explorers oder die API löschen.

Löschen einer Modellversion oder eines Modells über die API

Warnung

Dieser Vorgang lässt sich nicht rückgängig machen. Wenn Sie ein Modell löschen, werden alle Modellartefakte, die in Unity Catalog gespeichert sind, und alle zugehörigen Metadaten des registrierten Modells gelöscht.

Löschen einer Modellversion

Verwenden Sie zum Löschen einer Modellversion die Methode delete_model_version() der MLflow-Client-API:

# Delete versions 1,2, and 3 of the model
client = MlflowClient()
versions=[1, 2, 3]
for version in versions:
  client.delete_model_version(name="<model-name>", version=version)

Löschen eines Modells

Verwenden Sie zum Löschen eines Modells die Methode delete_registered_model() der MLflow-Client-API:

client = MlflowClient()
client.delete_registered_model(name="<model-name>")

Auflisten und Suchen von Modellen

Sie können registrierte Modelle in Unity Catalog mit der search_registered_models()-Python-API von MLflow auflisten:

client=MlflowClient()
client.search_registered_models()

Sie können auch nach einem bestimmten Modellnamen suchen und die zugehörigen Versionsdetails auflisten, indem Sie die search_model_versions()-Methode verwenden:

from pprint import pprint

client=MlflowClient()
[pprint(mv) for mv in client.search_model_versions("name='<model-name>'")]

Beispiel

In diesem Beispiel wird veranschaulicht, wie Sie Modelle in Unity Catalog zum Erstellen einer Machine Learning-Anwendung verwenden.

Beispiel für Modelle in Unity Catalog

Migrieren von Workflows und Modellen zu Unity Catalog

Databricks empfiehlt die Verwendung von Modellen in Unity Catalog, um die Governance zu verbessern, die Freigabe über Arbeitsbereiche und Umgebungen hinweg zu erleichtern und flexiblere MLOps-Workflows zu ermöglichen. In der Tabelle werden die Funktionen der Arbeitsbereichsmodellregistrierung und von Unity Catalog verglichen.

Funktion Arbeitsbereichsmodellregistrierung (Legacy) Modelle in Unity Catalog (empfohlen)
Verweis auf Modellversionen durch benannte Aliasse Modellregistrierungsphasen: Verschieben Sie Modellversionen in eine von vier festen Phasen, um auf sie in dieser Phase zu verweisen. Phasen können nicht umbenannt oder hinzugefügt werden. Modellregistrierungs-Aliasse: Erstellen Sie für jedes registrierte Modell bis zu 10 benutzerdefinierte und neu zuweisbare benannte Verweise auf Modellversionen.
Erstellen von zugriffsgesteuerten Umgebungen für Modelle Modellregistrierungsphasen: Verwenden Sie Phasen innerhalb eines registrierten Modells, um die Umgebung der Modellversionen mit Zugriffssteuerungen für nur zwei der vier festen Phasen (Staging und Production) zu kennzeichnen. Registrierte Modelle: Erstellen Sie ein registriertes Modell für jede Umgebung in Ihrem MLOps-Workflow, und verwenden Sie dabei die Namespace-Notation und Berechtigungen auf drei Ebenen von Unity Catalog, um Governance auszudrücken.
Höherstufen von Modellen in Umgebungen (Modell bereitstellen) Verwenden Sie die MLflow-Client-API transition_model_version_stage(), um eine Modellversion in eine andere Phase zu verschieben, was möglicherweise zu einer Unterbrechung von Workflows führen kann, die auf die vorherige Phase verweisen. Verwenden Sie die MLflow-Client-API copy_model_version(), um eine Modellversion von einem registrierten Modell in ein anderes zu kopieren.
Arbeitsbereichsübergreifendes Zugreifen auf und Freigeben von Modellen Exportieren und importieren Sie Modelle manuell und arbeitsbereichsübergreifend, oder konfigurieren Sie Verbindungen mit Remotemodellregistrierungen mithilfe von persönlichen Zugriffstoken und Arbeitsbereichsgeheimnisbereichen. Greifen Sie direkt auf Modelle in anderen Arbeitsbereichen desselben Kontos zu. Es ist keine Konfiguration erforderlich.
Konfigurieren von Berechtigungen Legen Sie Berechtigungen auf Arbeitsbereichsebene fest. Legen Sie Berechtigungen auf Kontoebene fest, was eine einheitliche Governance für alle Arbeitsbereiche sicherstellt.
Zugreifen auf Modelle im Databricks-Marketplace Nicht verfügbar. Laden Sie Modelle aus dem Databricks-Marketplace in Ihren Unity Catalog-Metastore, und greifen Sie auf sie in allen Arbeitsbereichen zu.

In den unten verlinkten Artikeln wird beschrieben, wie Workflows (Modelltraining und Batchrückschlussaufträge) und Modelle aus der Arbeitsbereichsmodellregistrierung zu Unity Catalog migriert werden.

Einschränkungen der Unity Catalog-Unterstützung

  • Phasen werden für Modelle in Unity Catalog nicht unterstützt. Databricks empfiehlt die Verwendung des dreistufigen Namespace in Unity Catalog zum Angeben der Umgebung, in der sich ein Modell befindet, sowie die Verwendung von Aliasen zum Heraufstufen von Modellen für die Bereitstellung. Weitere Informationen finden Sie im Upgradeleitfaden.
  • Webhooks werden für Modelle in Unity Catalog nicht unterstützt. Alternativvorschläge finden Sie im Upgradeleitfaden.
  • Einige API-Suchfelder und -operatoren werden für Modelle in Unity Catalog nicht unterstützt. Dieses Problem kann entschärft werden, indem Sie die Such-APIs mithilfe unterstützter Filter aufrufen und die Ergebnisse überprüfen. Hier einige Beispiele:
    • Der Parameter order_by wird in den search_model_versions- und search_registered_models-Client-APIs nicht unterstützt.
    • Tagbasierte Filter (tags.mykey = 'myvalue') werden für search_model_versions und search_registered_modelsnicht unterstützt.
    • Andere Operatoren als exakte Gleichheit (z. B. LIKE, ILIKE, !=) werden für search_model_versions und search_registered_models nicht unterstützt.
    • Die Suche nach registrierten Modellen nach Namen (z. B. MlflowClient().search_registered_models(filter_string="name='main.default.mymodel'")) wird nicht unterstützt. Um ein bestimmtes registriertes Modell basierend auf seinem Namen abzurufen, verwenden Sie get_registered_model.
  • Email-Benachrichtigungen und Threads mit Diskussionskommentaren zu registrierten Modellen und Modellversionen werden in Unity Catalog nicht unterstützt.
  • Das Aktivitätsprotokoll wird für Modelle in Unity Catalog nicht unterstützt. Sie können jedoch die Aktivität für Modelle in Unity Catalog mithilfe von Überwachungsprotokollen nachverfolgen.
  • search_registered_models kann veraltete Ergebnisse für Modelle zurückgeben, die über Delta Sharing freigegeben wurden. Um die neuesten Ergebnisse sicherzustellen, verwenden Sie die Databricks-CLI oder -SDK, um die Modelle in einem Schema auflisten.