Zarządzanie cyklem życia modelu w wykazie aparatu Unity

Ważne

  • Ten artykuł zawiera dokumenty Modele w wykazie aparatu Unity, który usługa Databricks zaleca zarządzanie i wdrażanie modeli. Jeśli obszar roboczy nie jest włączony dla wykazu aparatu Unity, funkcje na tej stronie nie są dostępne. Zamiast tego zobacz Zarządzanie cyklem życia modelu przy użyciu rejestru modeli obszaru roboczego. Aby uzyskać wskazówki dotyczące uaktualniania z rejestru modeli obszarów roboczych do wykazu aparatu Unity, zobacz Migrowanie przepływów pracy i modeli do wykazu aparatu Unity.
  • Modele w wykazie aparatu Unity nie są dostępne w regionach usługi Azure Government.

W tym artykule opisano sposób używania modeli w katalogu aparatu Unity w ramach przepływu pracy uczenia maszynowego w celu zarządzania pełnym cyklem życia modeli uczenia maszynowego. Usługa Databricks udostępnia hostowaną wersję rejestru modeli MLflow w katalogu aparatu Unity. Modele w wykazie aparatu Unity rozszerzają zalety wykazu aparatu Unity na modele uczenia maszynowego, w tym scentralizowaną kontrolę dostępu, inspekcję, pochodzenie i odnajdywanie modeli między obszarami roboczymi. Modele w wykazie aparatu Unity są zgodne z klientem języka Python MLflow typu open source.

Najważniejsze funkcje modeli w wykazie aparatu Unity obejmują:

  • Nadawanie nazw modelom i zarządzanie nimi, dzięki czemu można grupować i zarządzać modelami na poziomie środowiska, projektu lub zespołu ("Udziel analitykom danych dostępu tylko do odczytu do modeli produkcyjnych").
  • Pochodzenie modelu chronologicznego (eksperyment MLflow i uruchomienie modelu produkowanego w danym momencie).
  • Obsługa modelu.
  • Przechowywanie wersji modelu.
  • Wdrażanie modelu za pośrednictwem aliasów. Na przykład oznacz wersję modelu "Champion" w prod katalogu.

Jeśli domyślny wykaz obszaru roboczego jest skonfigurowany do wykazu w wykazie aparatu Unity, modele zarejestrowane przy użyciu interfejsów API platformy MLflow, takich jak mlflow.<model-type>.log_model(..., registered_model_name) lub mlflow.register_model(model_uri, name) są domyślnie zarejestrowane w wykazie aparatu Unity.

Ten artykuł zawiera instrukcje dotyczące interfejsu użytkownika i interfejsu API wykazu aparatu Unity.

Aby zapoznać się z omówieniem pojęć związanych z rejestrem modeli, zobacz Zarządzanie cyklem życia uczenia maszynowego przy użyciu platformy MLflow.

Wymagania

  1. Wykaz aparatu Unity musi być włączony w obszarze roboczym. Zobacz Rozpoczynanie pracy z wykazem aparatu Unity w celu utworzenia magazynu metadanych wykazu aparatu Unity, włączenia go w obszarze roboczym i utworzenia wykazu. Jeśli wykaz aparatu Unity nie jest włączony, nadal możesz użyć klasycznego rejestru modeli obszarów roboczych.

  2. Obszar roboczy musi być dołączony do magazynu metadanych wykazu aparatu Unity, który obsługuje dziedziczenie uprawnień. Dotyczy to wszystkich magazynów metadanych utworzonych po 25 sierpnia 2022 r. Jeśli korzystasz ze starszego magazynu metadanych, postępuj zgodnie z dokumentami, aby uaktualnić.

  3. Musisz mieć dostęp do uruchamiania poleceń w klastrze z dostępem do wykazu aparatu Unity.

  4. Aby utworzyć nowe zarejestrowane modele, musisz CREATE_MODEL mieć uprawnienia do schematu, oprócz USE SCHEMA uprawnień i USE CATALOG schematu i jego wykazu otaczającego. CREATE_MODEL to nowe uprawnienie na poziomie schematu, które można przyznać przy użyciu interfejsu użytkownika Eksploratora wykazu lub polecenia PROGRAMU SQL GRANT, jak pokazano poniżej.

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

Uaktualnianie obciążeń szkoleniowych do katalogu aparatu Unity

Ta sekcja zawiera instrukcje uaktualniania istniejących obciążeń szkoleniowych do wykazu aparatu Unity.

Instalowanie klienta języka Python MLflow

Modele można również używać w wykazie aparatu Unity w środowisku Databricks Runtime 11.3 LTS lub nowszym, instalując najnowszą wersję klienta języka Python MLflow w notesie, korzystając z poniższego kodu.

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

Konfigurowanie klienta MLflow w celu uzyskiwania dostępu do modeli w katalogu aparatu Unity

Domyślnie klient języka Python MLflow tworzy modele w rejestrze modeli obszaru roboczego usługi Databricks. Aby przeprowadzić uaktualnienie do modeli w katalogu aparatu Unity, skonfiguruj klienta MLflow:

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

Uwaga

Jeśli domyślny wykaz obszaru roboczego znajduje się w wykazie aparatu Unity (zamiast hive_metastore) i uruchamiasz klaster przy użyciu środowiska Databricks Runtime 13.3 LTS lub nowszego (środowisko Databricks Runtime 15.0 lub nowsze w regionach Azure China), modele są automatycznie tworzone i ładowane z katalogu domyślnego bez konieczności konfigurowania. Nie ma żadnych zmian w zachowaniu innych wersji środowiska Databricks Runtime. Niewielka liczba obszarów roboczych, w których katalog domyślny został skonfigurowany do wykazu w wykazie aparatu Unity przed styczniem 2024 r., a rejestr modeli obszarów roboczych był używany przed styczniem 2024 r. jest wykluczony z tego zachowania.

Trenowanie i rejestrowanie modeli zgodnych z wykazem aparatu Unity

Wymagane uprawnienia: aby utworzyć nowy zarejestrowany model, potrzebne są CREATE_MODEL uprawnienia i USE SCHEMA w otaczającym schemacie oraz USE CATALOG uprawnienia w wykazie otaczającym. Aby utworzyć nowe wersje modelu w ramach zarejestrowanego modelu, musisz być właścicielem zarejestrowanego modelu i mieć USE SCHEMAUSE CATALOG uprawnienia do schematu i katalogu zawierającego model.

Wersje modelu uczenia maszynowego w interfejsie użytkownika muszą mieć podpis modelu. Jeśli nie rejestrujesz jeszcze modeli MLflow z podpisami w obciążeniach trenowania modelu, możesz wykonać następujące czynności:

  • Użyj automatycznego rejestrowania usługi Databricks, które automatycznie rejestruje modele z podpisami dla wielu popularnych platform uczenia maszynowego. Zobacz obsługiwane platformy w dokumentacji platform MLflow.
  • W przypadku platformy MLflow 2.5.0 lub nowszej można określić przykład danych wejściowych w mlflow.<flavor>.log_model wywołaniu, a podpis modelu jest automatycznie wnioskowany. Aby uzyskać więcej informacji, zapoznaj się z dokumentacją platformy MLflow.

Następnie przekaż trzypoziomową nazwę modelu do interfejsów API MLflow w postaci <catalog>.<schema>.<model>.

Przykłady w tej sekcji umożliwiają tworzenie modeli i uzyskiwanie do ich dostępu w ml_team schemacie w prod katalogu.

Przykłady trenowania modelu w tej sekcji tworzą nową wersję modelu i rejestrują ją w wykazie prod . prod Użycie wykazu nie musi oznaczać, że wersja modelu obsługuje ruch produkcyjny. Katalog, schemat i zarejestrowany model wersji modelu odzwierciedlają swoje środowisko (prod) i skojarzone reguły ładu (na przykład uprawnienia można skonfigurować tak, aby tylko administratorzy mogli usunąć z prod katalogu), ale nie jego stan wdrożenia. Aby zarządzać stanem wdrożenia, użyj aliasów modelu.

Rejestrowanie modelu w wykazie aparatu Unity przy użyciu automatycznego rejestrowania

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")

Rejestrowanie modelu w wykazie aparatu Unity z automatycznym wnioskowanym podpisem

Obsługa automatycznie wnioskowanych podpisów jest dostępna w środowisku MLflow w wersji 2.5.0 lub nowszej i jest obsługiwana w środowisku Databricks Runtime 11.3 LTS ML i nowszym. Aby użyć automatycznie wnioskowanych podpisów, użyj następującego kodu, aby zainstalować najnowszego klienta języka Python MLflow w notesie:

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

Poniższy kod przedstawia przykład automatycznie wnioskowanego podpisu.

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",
    )

Śledzenie pochodzenia danych modelu w wykazie aparatu Unity

Uwaga

Obsługa pochodzenia tabel w wykazie aparatu Unity jest dostępna w środowisku MLflow 2.11.0 lub nowszym.

Podczas trenowania modelu w tabeli w wykazie aparatu Unity można śledzić pochodzenie modelu do nadrzędnych zestawów danych, na których został wytrenowany i oceniony. W tym celu użyj mlflow.log_input. Spowoduje to zapisanie informacji o tabeli wejściowej przy użyciu przebiegu platformy MLflow, który wygenerował model. Pochodzenie danych jest również automatycznie przechwytywane dla modeli rejestrowanych przy użyciu interfejsów API magazynu funkcji. Zobacz Wyświetlanie pochodzenia magazynu funkcji.

Po zarejestrowaniu modelu w wykazie aparatu Unity informacje o pochodzenia są automatycznie zapisywane i widoczne na karcie Pochodzenie interfejsu użytkownika wersji modelu w Eksploratorze wykazu.

Poniższy kod przedstawia przykład.

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")

Wyświetlanie modeli w interfejsie użytkownika

Wymagane uprawnienia: aby wyświetlić zarejestrowany model i jego wersje modelu w interfejsie użytkownika, potrzebujesz EXECUTE uprawnień do zarejestrowanego modelu oraz USE SCHEMAUSE CATALOG uprawnień w schemacie i wykazie zawierającym model

Zarejestrowane modele i wersje modeli można wyświetlać i zarządzać nimi w wykazie aparatu Unity przy użyciu Eksploratora wykazu.

Kontrola dostępu do modeli

Aby uzyskać informacje na temat kontrolowania dostępu do modeli zarejestrowanych w wykazie aparatu Unity, zobacz Uprawnienia wykazu aparatu Unity i zabezpieczane obiekty. Aby uzyskać najlepsze rozwiązania dotyczące organizowania modeli między wykazami i schematami, zobacz Organizowanie danych.

Uprawnienia modelu można skonfigurować programowo przy użyciu interfejsu API REST grantów. Podczas konfigurowania uprawnień modelu ustaw wartość securable_type na "FUNCTION" w żądaniach interfejsu API REST. Na przykład użyj polecenia PATCH /api/2.1/unity-catalog/permissions/function/{full_name} , aby zaktualizować zarejestrowane uprawnienia modelu.

Wdrażanie i organizowanie modeli za pomocą aliasów i tagów

Aliasy i tagi modelu ułatwiają organizowanie modeli i zarządzanie nimi w wykazie aparatu Unity.

Aliasy modelu umożliwiają przypisanie modyfikowalnego, nazwanego odwołania do określonej wersji zarejestrowanego modelu. Możesz użyć aliasów, aby wskazać stan wdrożenia wersji modelu. Można na przykład przydzielić alias "Champion" do wersji modelu obecnie w środowisku produkcyjnym i określić ten alias w obciążeniach korzystających z modelu produkcyjnego. Następnie można zaktualizować model produkcyjny, ponownie przypisując alias "Champion" do innej wersji modelu.

Tagi to pary klucz-wartość, które są skojarzone z zarejestrowanymi modelami i wersjami modelu, co umożliwia etykietowanie i kategoryzowanie ich według funkcji lub stanu. Można na przykład zastosować tag z kluczem "task" i wartością "question-answering" (wyświetlaną w interfejsie użytkownika jako task:question-answering) do zarejestrowanych modeli przeznaczonych do zadań odpowiadania na pytania. Na poziomie wersji modelu można oznaczyć wersje w ramach weryfikacji przed wdrożeniem za pomocą polecenia validation_status:pending i te, które zostały wyczyszczone do wdrożenia za pomocą polecenia validation_status:approved.

Zapoznaj się z poniższymi sekcjami, aby dowiedzieć się, jak używać aliasów i tagów.

Ustawianie i usuwanie aliasów w modelach

Wymagane uprawnienia: właściciel zarejestrowanego modelu oraz USE SCHEMAUSE CATALOG uprawnienia do schematu i katalogu zawierającego model.

Można ustawić, zaktualizować i usunąć aliasy dla modeli w wykazie aparatu Unity przy użyciu Eksploratora wykazu. Aliasy można zarządzać w ramach zarejestrowanego modelu na stronie szczegółów modelu i konfigurować aliasy dla określonej wersji modelu na stronie szczegółów wersji modelu.

Aby ustawić, zaktualizować i usunąć aliasy przy użyciu interfejsu API klienta MLflow, zapoznaj się z poniższymi przykładami:

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")

Ustawianie i usuwanie tagów w modelach

Wymagane uprawnienia: właściciel lub ma APPLY_TAG uprawnienia do zarejestrowanego modelu oraz USE SCHEMAUSE CATALOG uprawnienia w schemacie i wykazie zawierającym model.

Zobacz Zarządzanie tagami w Eksploratorze wykazu, aby dowiedzieć się, jak ustawiać i usuwać tagi przy użyciu interfejsu użytkownika.

Aby ustawić i usunąć tagi przy użyciu interfejsu API klienta MLflow, zobacz poniższe przykłady:

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")

Zarówno zarejestrowane tagi modelu, jak i wersji modelu muszą spełniać ograniczenia dotyczące całej platformy.

Aby uzyskać więcej informacji na temat aliasów i tagów interfejsów API klienta, zobacz dokumentację interfejsu API platformy MLflow.

Ładowanie modeli na potrzeby wnioskowania

Korzystanie z wersji modelu według aliasów w obciążeniach wnioskowania

Wymagane uprawnienia: EXECUTE uprawnienia do zarejestrowanego modelu oraz USE SCHEMAUSE CATALOG uprawnienia schematu i katalogu zawierającego model.

Obciążenia wnioskowania wsadowego odwołujące się do wersji modelu można zapisywać według aliasu. Na przykład poniższy fragment kodu ładuje i stosuje wersję modelu "Champion" na potrzeby wnioskowania wsadowego. Jeśli wersja "Champion" zostanie zaktualizowana w celu odwołania się do nowej wersji modelu, obciążenie wnioskowania wsadowego automatycznie podniesie go podczas następnego wykonania. Dzięki temu można rozdzielić wdrożenia modelu z obciążeń wnioskowania wsadowego.

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)

Możesz również napisać przepływy pracy wdrażania, aby uzyskać wersję modelu według aliasu i zaktualizować punkt końcowy obsługujący model w celu obsługi tej wersji przy użyciu modelu obsługującego interfejs API REST:

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(...)

Korzystanie z wersji modelu według numeru wersji w obciążeniach wnioskowania

Wersje modelu można również załadować według numeru wersji:

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)

Udostępnianie modeli między obszarami roboczymi

Udostępnianie modeli użytkownikom w tym samym regionie

Jeśli masz odpowiednie uprawnienia, możesz uzyskać dostęp do modeli w katalogu aparatu Unity z dowolnego obszaru roboczego dołączonego do magazynu metadanych zawierającego model. Na przykład możesz uzyskać dostęp do modeli z prod katalogu w obszarze roboczym deweloperskim, aby ułatwić porównywanie nowo opracowanych modeli z punktem odniesienia produkcyjnym.

Aby współpracować z innymi użytkownikami (udostępniać uprawnienia do zapisu) w zarejestrowanym modelu, musisz przyznać własność modelu grupie zawierającej siebie i użytkownikom, z którymi chcesz współpracować. Współpracownicy muszą również mieć USE CATALOG uprawnienia i USE SCHEMA w wykazie i schemacie zawierającym model. Aby uzyskać szczegółowe informacje, zobacz Uprawnienia wykazu aparatu Unity i zabezpieczane obiekty .

Udostępnianie modeli użytkownikom w innym regionie lub koncie

Aby udostępnić modele użytkownikom w innych regionach lub kontach, użyj przepływu udostępniania danych usługi Delta Sharing Databricks-to-Databricks. Zobacz Dodawanie modeli do udziału (dla dostawców) i Uzyskiwanie dostępu w modelu databricks-to-Databricks (dla adresatów). Jako odbiorca po utworzeniu wykazu na podstawie udziału uzyskujesz dostęp do modeli w tym wykazie udostępnionym tak samo jak w przypadku dowolnego innego modelu w wykazie aparatu Unity.

Dodawanie adnotacji do modelu lub wersji modelu

Wymagane uprawnienia: właściciel zarejestrowanego modelu oraz USE SCHEMAUSE CATALOG uprawnienia do schematu i katalogu zawierającego model.

Możesz przekazać informacje dotyczące modelu lub wersji modelu, dodając adnotację. Możesz na przykład dołączyć omówienie problemu lub informacje na temat używanych metodologii i algorytmów.

Dodawanie adnotacji do modelu lub wersji modelu przy użyciu interfejsu użytkownika

Zobacz Dokument data in Catalog Explorer using markdown comments (Dane dokumentów w Eksploratorze wykazu przy użyciu komentarzy markdown).

Dodawanie adnotacji do modelu lub wersji modelu przy użyciu interfejsu API

Aby zaktualizować opis zarejestrowanego modelu, użyj metody interfejsu API update_registered_model() klienta MLflow:

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

Aby zaktualizować opis wersji modelu, użyj metody update_model_version() interfejsu API klienta platformy MLflow:

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

Zmienianie nazwy modelu (tylko interfejs API)

Wymagane uprawnienia: właściciel zarejestrowanego modelu, CREATE_MODEL uprawnienia do schematu zawierającego zarejestrowany model oraz USE CATALOG uprawnienia schematu i USE SCHEMA katalogu zawierającego model.

Aby zmienić nazwę zarejestrowanego modelu, użyj metody rename_registered_model() interfejsu API klienta platformy MLflow:

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

Usuwanie modelu lub wersji modelu

Wymagane uprawnienia: właściciel zarejestrowanego modelu oraz USE SCHEMAUSE CATALOG uprawnienia do schematu i katalogu zawierającego model.

Zarejestrowany model lub wersja modelu można usunąć w ramach zarejestrowanego modelu przy użyciu interfejsu użytkownika eksploratora wykazu lub interfejsu API.

Usuwanie modelu lub wersji modelu przy użyciu interfejsu API

Ostrzeżenie

Nie można cofnąć tej akcji. Po usunięciu modelu wszystkie artefakty modelu przechowywane przez wykaz aparatu Unity i wszystkie metadane skojarzone z zarejestrowanym modelem zostaną usunięte.

Usuwanie wersji modelu

Aby usunąć wersję modelu, użyj metody delete_model_version() interfejsu API klienta platformy MLflow:

# 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)

Usuń model

Aby usunąć model, użyj metody delete_registered_model() interfejsu API klienta platformy MLflow:

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

Wyświetlanie listy i wyszukiwanie modeli

Zarejestrowane modele można wyświetlić w katalogu aparatu Unity przy użyciu interfejsu API języka Python search_registered_models() platformy MLflow:

client=MlflowClient()
client.search_registered_models()

Możesz również wyszukać określoną nazwę modelu i wyświetlić jego szczegóły wersji przy użyciu search_model_versions() metody :

from pprint import pprint

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

Przykład

W tym przykładzie pokazano, jak używać modeli w katalogu aparatu Unity do tworzenia aplikacji uczenia maszynowego.

Przykład modeli w wykazie aparatu Unity

Migrowanie przepływów pracy i modeli do wykazu aparatu Unity

Usługa Databricks zaleca używanie modeli w wykazie aparatu Unity w celu zwiększenia ładu, łatwego udostępniania w obszarach roboczych i środowiskach oraz bardziej elastycznych przepływów pracy metodyki MLOps. Tabela porównuje możliwości rejestru modeli obszarów roboczych i wykazu aparatu Unity.

Możliwość Rejestr modeli obszaru roboczego (starsza wersja) Modele w wykazie aparatu Unity (zalecane)
Odwołania do wersji modelu według nazwanych aliasów Etapy rejestru modeli: przenieś wersje modelu do jednego z czterech stałych etapów, aby odwoływać się do nich według tego etapu. Nie można zmienić nazwy lub dodać etapów. Aliasy rejestru modeli: utwórz maksymalnie 10 niestandardowych i ponownie przypisanych nazwanych odwołań do wersji modelu dla każdego zarejestrowanego modelu.
Tworzenie środowisk kontrolowanych dostępem dla modeli Etapy rejestru modeli: użyj etapów w jednym zarejestrowanym modelu, aby oznaczyć środowisko jego wersji modelu z mechanizmami kontroli dostępu tylko dla dwóch z czterech stałych etapów (Staging i Production). Zarejestrowane modele: utwórz zarejestrowany model dla każdego środowiska w przepływie pracy metodyki MLOps, korzystając z trzech poziomów przestrzeni nazw i uprawnień wykazu aparatu Unity do wyrażania ładu.
Podwyższanie poziomu modeli w różnych środowiskach (wdrażanie modelu) Użyj interfejsu transition_model_version_stage() API klienta MLflow, aby przenieść wersję modelu na inny etap, potencjalnie powodując niezgodność przepływów pracy odwołujących się do poprzedniego etapu. Użyj interfejsu copy_model_version() API klienta MLflow, aby skopiować wersję modelu z jednego zarejestrowanego modelu do innego.
Uzyskiwanie dostępu do modeli i udostępnianie ich w obszarach roboczych Ręczne eksportowanie i importowanie modeli między obszarami roboczymi lub konfigurowanie połączeń z rejestrami modeli zdalnych przy użyciu osobistych tokenów dostępu i zakresów wpisów tajnych obszaru roboczego. Poza zakresem dostępu do modeli między obszarami roboczymi na tym samym koncie. Nie jest wymagana żadna konfiguracja.
Konfiguracja uprawnień Ustaw uprawnienia na poziomie obszaru roboczego. Ustaw uprawnienia na poziomie konta, które stosuje spójny nadzór między obszarami roboczymi.
Uzyskiwanie dostępu do modeli w markplace usługi Databricks Niedostępne. Załaduj modele z platformy handlowej usługi Databricks do magazynu metadanych wykazu aparatu Unity i uzyskaj do nich dostęp w różnych obszarach roboczych.

W poniższych artykułach opisano sposób migrowania przepływów pracy (zadań trenowania modelu i wnioskowania wsadowego) oraz modeli z rejestru modeli obszaru roboczego do wykazu aparatu Unity.

Ograniczenia dotyczące obsługi wykazu aparatu Unity

  • Etapy nie są obsługiwane w przypadku modeli w wykazie aparatu Unity. Usługa Databricks zaleca używanie trzy-poziomowej przestrzeni nazw w wykazie aparatu Unity do wyrażania środowiska, w których znajduje się model, i używania aliasów do promowania modeli na potrzeby wdrażania. Aby uzyskać szczegółowe informacje, zobacz przewodnik uaktualniania.
  • Elementy webhook nie są obsługiwane w przypadku modeli w katalogu aparatu Unity. Zobacz sugerowane alternatywy w przewodniku uaktualniania.
  • Niektóre pola i operatory interfejsu API wyszukiwania nie są obsługiwane w przypadku modeli w wykazie aparatu Unity. Można temu zapobiec, wywołując interfejsy API wyszukiwania przy użyciu obsługiwanych filtrów i skanując wyniki. Poniżej przedstawiono kilka przykładów:
    • Parametr order_by nie jest obsługiwany w interfejsach API klienta search_model_versions ani search_registered_models .
    • Filtry oparte na tagach (tags.mykey = 'myvalue') nie są obsługiwane dla search_model_versions programu lub search_registered_models.
    • Operatory inne niż dokładna równość (na przykład , LIKE, ILIKE) !=nie są obsługiwane dla search_model_versions lub search_registered_models.
    • Wyszukiwanie zarejestrowanych modeli według nazwy (na przykład MlflowClient().search_registered_models(filter_string="name='main.default.mymodel'") nie jest obsługiwane. Aby pobrać określony zarejestrowany model według nazwy, użyj get_registered_model.
  • Powiadomienia e-mail i wątki dyskusji o komentarzach dotyczące zarejestrowanych modeli i wersji modelu nie są obsługiwane w wykazie aparatu Unity.
  • Dziennik aktywności nie jest obsługiwany w przypadku modeli w wykazie aparatu Unity. Można jednak śledzić aktywność modeli w wykazie aparatu Unity przy użyciu dzienników inspekcji.
  • search_registered_models może zwracać nieaktualne wyniki dla modeli udostępnionych za pośrednictwem funkcji udostępniania różnicowego. Aby zapewnić najnowsze wyniki, użyj interfejsu wiersza polecenia usługi Databricks lub zestawu SDK , aby wyświetlić listę modeli w schemacie.