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
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.
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ć.
Musisz mieć dostęp do uruchamiania poleceń w klastrze z dostępem do wykazu aparatu Unity.
Aby utworzyć nowe zarejestrowane modele, musisz
CREATE_MODEL
mieć uprawnienia do schematu, opróczUSE SCHEMA
uprawnień iUSE 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 SCHEMA
USE 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 SCHEMA
USE 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 SCHEMA
USE 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 SCHEMA
USE 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 SCHEMA
USE 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 SCHEMA
USE 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 SCHEMA
USE 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.
- Uaktualnianie przepływów pracy uczenia maszynowego do modeli docelowych w wykazie aparatu Unity
- Uaktualnianie modeli 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 dlasearch_model_versions
programu lubsearch_registered_models
. - Operatory inne niż dokładna równość (na przykład ,
LIKE
,ILIKE
)!=
nie są obsługiwane dlasearch_model_versions
lubsearch_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.
- Parametr
- 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.
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla