Zarządzanie cyklem życia modelu przy użyciu rejestru modeli obszaru roboczego (starsza wersja)
Ważne
Ta dokumentacja obejmuje rejestr modeli obszarów roboczych. Jeśli w Twoim workspace jest włączony Unity Catalog, nie używaj procedur na tej stronie. Zamiast tego zobacz modele w katalogu Unity.
Aby uzyskać wskazówki dotyczące uaktualniania z Rejestru Modeli Obszaru Roboczego do Wykazu Unity, zobacz Migrowanie przepływów pracy i modeli do Wykazu Unity.
Jeśli domyślny katalog obszaru roboczego znajduje się w katalogu Unity (zamiast hive_metastore
) i uruchamiasz klaster przy użyciu środowiska Databricks Runtime 13.3 LTS lub nowszego, modele są automatycznie tworzone i ładowane z domyślnego katalogu obszaru roboczego, bez konieczności konfiguracji. Aby użyć Rejestru Modeli Obszarów Roboczych w tym przypadku, należy jawnie go wskazać, uruchamiając import mlflow; mlflow.set_registry_uri("databricks")
na początku obciążenia. Niewielka liczba obszarów roboczych, w których katalog domyślny został skonfigurowany na katalog w Unity Catalog przed styczniem 2024 r., a rejestr modeli obszarów roboczych był używany przed styczniem 2024 r., są wyłączone z tego zachowania i domyślnie nadal używają Rejestru Modeli Obszarów Roboczych.
W tym artykule opisano sposób korzystania z rejestru modeli obszarów roboczych w ramach przepływu pracy uczenia maszynowego w celu zarządzania pełnym cyklem życia modeli uczenia maszynowego. Rejestr modeli obszaru roboczego to udostępniona przez usługę Databricks hostowana wersja rejestru modeli MLflow.
Rejestr modeli obszaru roboczego zapewnia:
- Pochodzenie modelu chronologicznego (eksperyment MLflow i uruchomienie, które wyprodukowały model w danym czasie).
- Obsługa modelu.
- Wersjonowanie modeli.
- Przejścia etapowe (na przykład ze środowiska testowego do produkcyjnego lub archiwalnego).
- Webhooks pozwalają na automatyczne wyzwalanie działań na podstawie zdarzeń w rejestrze.
- Powiadomienia e-mail dotyczące zdarzeń modelu.
Możesz również tworzyć i wyświetlać opisy modeli oraz pozostawiać komentarze.
Ten artykuł zawiera instrukcje dotyczące interfejsu użytkownika rejestru modeli obszarów roboczych i interfejsu API rejestru modeli obszaru roboczego.
Aby zapoznać się z omówieniem pojęć związanych z rejestrem modeli w przestrzeni roboczej, przejdź do MLflow for gen AI agent and ML model lifecycle.
Tworzenie lub rejestrowanie modelu
Model można utworzyć lub zarejestrować przy użyciu interfejsu użytkownika albo zarejestrować model przy użyciu interfejsu API.
Tworzenie lub rejestrowanie modelu przy użyciu interfejsu użytkownika
Istnieją dwa sposoby rejestrowania modelu w rejestrze modeli obszarów roboczych. Można zarejestrować istniejący zapisany model na platformie MLflow lub utworzyć i zarejestrować nowy, pusty model, a następnie przypisać do niego wcześniej zapisany model.
Rejestracja istniejącego zalogowanego modelu z notatnika
W obszarze roboczym znajdź przebieg MLflow zawierający model, który chcesz zarejestrować.
Kliknij ikonę Eksperyment
na prawym pasku bocznym notesu.
Na pasku bocznym Przebiegi eksperymentów kliknij ikonę
obok daty uruchomienia. Strona MLflow Run zostanie wyświetlona. Na tej stronie przedstawiono szczegóły przebiegu, w tym parametry, metryki, tagi i listę artefaktów.
W sekcji Artifacts (Artefakty) kliknij katalog o nazwie xxx-model.
Kliknij przycisk Register model (Zarejestruj model) po prawej stronie.
W oknie dialogowym kliknij pozycję Model i wykonaj jedną z następujących czynności:
- Wybierz pozycję Utwórz nowy model z menu rozwijanego. Zostanie wyświetlone pole Nazwa modelu. Wprowadź nazwę modelu, na przykład
scikit-learn-power-forecasting
. - Wybierz istniejący model z menu rozwijanego.
- Wybierz pozycję Utwórz nowy model z menu rozwijanego. Zostanie wyświetlone pole Nazwa modelu. Wprowadź nazwę modelu, na przykład
Kliknij pozycję Zarejestruj.
- W przypadku wybrania opcji Utwórz nowy model rejestruje model o nazwie
scikit-learn-power-forecasting
, kopiuje model do bezpiecznej lokalizacji zarządzanej przez rejestr modeli obszarów roboczych i tworzy nową wersję modelu. - Jeśli wybrano istniejący model, spowoduje to zarejestrowanie nowej wersji wybranego modelu.
Po kilku chwilach przycisk Zarejestruj model zmieni się na link do nowej zarejestrowanej wersji modelu.
- W przypadku wybrania opcji Utwórz nowy model rejestruje model o nazwie
Kliknij link, aby otworzyć nową wersję modelu w interfejsie użytkownika rejestru modeli obszarów roboczych. Model można również znaleźć w rejestrze modeli obszaru roboczego, klikając pozycję
Modele na pasku bocznym.
Tworzenie nowego zarejestrowanego modelu i przypisywanie do niego zapisanego modelu
Możesz użyć przycisku Create model (Utwórz model) na stronie Registered models (Zarejestrowane modele), aby utworzyć nowy, pusty model, a następnie przypisać do niego zapisany model. Wykonaj te kroki:
Na stronie Registered models kliknij przycisk Create Model. Wprowadź nazwę modelu i kliknij pozycję Create (Utwórz).
Wykonaj kroki od 1 do 3 z sekcji Rejestrowanie istniejącego zapisanego modelu z notesu.
W oknie dialogowym Rejestrowanie modelu wybierz nazwę modelu utworzonego w kroku 1, a następnie kliknij przycisk Zarejestruj. Spowoduje to zarejestrowanie modelu o utworzonej nazwie, skopiowanie modelu do bezpiecznej lokalizacji zarządzanej przez rejestr modeli obszaru roboczego i utworzenie wersji modelu:
Version 1
.Po chwili w interfejsie użytkownika MLflow przycisk "Zarejestruj model" zostaje zastąpiony linkiem do nowo zarejestrowanej wersji modelu. Teraz możesz wybrać model z listy rozwijanej Model w oknie dialogowym Rejestrowanie modelu na stronie Przebiegi eksperymentów. Możesz również rejestrować nowe wersje modelu, wprowadzając jego nazwę w poleceniach interfejsu API takich jak Create ModelVersion.
Rejestrowanie modelu przy użyciu interfejsu API
Istnieją trzy programowe sposoby rejestrowania modelu w rejestrze modeli obszarów roboczych. Wszystkie metody kopiują model do bezpiecznej lokalizacji zarządzanej przez rejestr modeli obszaru roboczego.
Aby zapisać model i zarejestrować go z określoną nazwą podczas eksperymentu platformy MLflow, użyj metody
mlflow.<model-flavor>.log_model(...)
. Jeśli nie istnieje jeszcze zarejestrowany model z taką nazwą, ta metoda spowoduje zarejestrowanie nowego modelu, utworzenie wersji 1 i zwrócenie obiektu MLflowModelVersion
. Jeśli już istnieje zarejestrowany model o takiej nazwie, ta metoda spowoduje utworzenie nowej wersji modelu i zwrócenie obiektu wersji.with mlflow.start_run(run_name=<run-name>) as run: ... mlflow.<model-flavor>.log_model(<model-flavor>=<model>, artifact_path="<model-path>", registered_model_name="<model-name>" )
Aby zarejestrować model z określoną nazwą po zakończeniu wszystkich przebiegów eksperymentu i wybraniu najbardziej odpowiedniego modelu do zarejestrowania, użyj metody
mlflow.register_model()
. W tej metodzie potrzebujesz identyfikatora przebiegu dla argumentumlruns:URI
. Jeśli nie istnieje jeszcze zarejestrowany model z taką nazwą, ta metoda spowoduje zarejestrowanie nowego modelu, utworzenie wersji 1 i zwrócenie obiektu MLflowModelVersion
. Jeśli już istnieje zarejestrowany model o takiej nazwie, ta metoda spowoduje utworzenie nowej wersji modelu i zwrócenie obiektu wersji.result=mlflow.register_model("runs:<model-path>", "<model-name>")
Aby utworzyć nowy zarejestrowany model z określoną nazwą, użyj metody
create_registered_model()
interfejsu API klienta platformy MLflow. Jeśli taka nazwa modelu już istnieje, metoda rzuci wyjątekMLflowException
.client = MlflowClient() result = client.create_registered_model("<model-name>")
Możesz również zarejestrować model za pomocą provider Terraform Databricks i databricks_mlflow_model.
Limity przydziału
Od maja 2024 r. dla wszystkich obszarów roboczych usługi Databricks rejestr modeli obszarów roboczych nakłada limity przydziału na łączną liczbę zarejestrowanych modeli i wersji modelu na obszar roboczy. Zobacz Limity zasobów. Jeśli przekroczysz limity kwot rejestru, usługa Databricks zaleca usunięcie zarejestrowanych modeli i wersji modelu, których już nie potrzebujesz. Usługa Databricks zaleca również dostosowanie strategii rejestracji i przechowywania modelu, aby utrzymać się w limicie. Jeśli potrzebujesz zwiększenia limitów obszaru roboczego, skontaktuj się z zespołem ds. kont usługi Databricks.
W poniższym notebooku pokazano, jak inwentaryzować i usuwać elementy rejestru modelu.
Notes jednostek rejestru modeli obszaru roboczego inwentarza
Wyświetlanie modeli w interfejsie użytkownika
Strona Zarejestrowanych modeli
Po kliknięciu przycisku Modele na pasku bocznym zostanie wyświetlona strona Zarejestrowanych modeli. Na tej stronie przedstawiono wszystkie modele w rejestrze.
Na tej stronie możesz utworzyć nowy model .
Ponadto na tej stronie administratorzy obszaru roboczego mogą ustawić uprawnienia dla wszystkich modeli w rejestrze modeli obszaru roboczego.
Strona zarejestrowanego modelu
Aby wyświetlić stronę zarejestrowanego modelu, kliknij nazwę modelu na stronie zarejestrowanych modeli. Strona zarejestrowanego modelu zawiera informacje o wybranym modelu i tabeli z informacjami o każdej wersji modelu. Na tej stronie można również wykonywać następujące czynności:
- Skonfiguruj usługę Model Serving.
- Automatycznie wygeneruj notatnik, aby użyć modelu do przeprowadzania wnioskowania.
- Konfigurowanie powiadomień e-mail.
- Porównanie wersji modelu.
- Ustaw uprawnienia dla modelu.
- Usuwanie modelu.
Strona wersji modelu
Aby wyświetlić stronę wersji modelu, wykonaj jedną z następujących czynności:
- Kliknij nazwę wersji w kolumnie Latest Version na stronie zarejestrowanych modeli.
- Kliknij nazwę wersji w kolumnie Wersja na stronie zarejestrowanego modelu.
Na tej stronie są wyświetlane informacje o określonej wersji zarejestrowanego modelu, a także link do źródłowego przebiegu (wersji notatnika, która została uruchomiona w celu utworzenia modelu). Na tej stronie można również wykonywać następujące czynności:
Wersja modelu
Kontrolowanie dostępu do modeli
Aby skonfigurować uprawnienia do modelu, musisz mieć co najmniej uprawnienia DO ZARZĄDZANIA. Aby uzyskać informacje na temat poziomów uprawnień modelu, zobacz Listy ACL modelu MLflow. Wersja modelu dziedziczy uprawnienia po modelu nadrzędnym. Nie można ustawić uprawnień dla wersji modelu.
Na pasku bocznym kliknij
Modele.
Wybierz nazwę modelu.
Kliknij pozycję Uprawnienia. Zostanie otwarte okno dialogowe Ustawienia uprawnień
W oknie dialogowym, najpierw wybierz listę rozwijaną Wybierz użytkownika, grupę lub jednostkę usługi..., a następnie wybierz użytkownika, grupę lub jednostkę usługi.
Wybierz uprawnienie z listy rozwijanej uprawnień.
Kliknij przycisk Dodaj i kliknij przycisk Zapisz.
Administratorzy obszaru roboczego i użytkownicy z uprawnieniami CAN MANAGE na poziomie rejestru mogą ustawiać poziomy uprawnień we wszystkich modelach w obszarze roboczym, klikając pozycję Uprawnienia na stronie Modele.
Przenoszenie etapu modelu
Wersja modelu ma jeden z następujących etapów: Brak, Testowe, Produkcja lub Zarchiwizowane. Etap Staging jest przeznaczony do testowania i walidacji modeli, natomiast etap Production jest przeznaczony dla wersji modeli, które przeszły już procesy testowania lub przeglądu i zostały wdrożone w aplikacjach w celu wykonywania oceny na żywo. Zakłada się, że wersja modelu w archiwum jest już nieaktywna, można więc rozważyć jej usunięcie. Różne wersje modelu mogą znajdować się na różnych etapach.
Użytkownik z odpowiednimi uprawnieniami może przenosić wersję modelu między etapami. Jeśli masz uprawnienia do przeniesienia wersji modelu do określonego etapu, możesz wykonać to przeniesienie bezpośrednio. Jeśli nie masz takich uprawnień, możesz zażądać przeniesienia między etapami, a użytkownik mający uprawnienia do przenoszenia wersji modeli może wówczas zatwierdzić, odrzucić lub anulować to żądanie.
Etap modelu można przenieść przy użyciu interfejsu użytkownika lub interfejsu API.
Przenoszenie modeli między etapami przy użyciu interfejsu użytkownika
Skorzystaj z tych instrukcji, aby zmienić etap modelu.
Aby wyświetlić listę dostępnych etapów modelu i dostępnych opcji, na stronie wersji modelu kliknij listę rozwijaną obok Etap: i zażądaj przejścia lub wybierz przejście do innego etapu.
Opcjonalnie wprowadź komentarz i kliknij przycisk OK.
Przenoszenie wersji modelu do etapu produkcji
Po zakończeniu testowania i walidacji możesz przejść lub zażądać przejścia do etapu produkcji.
Rejestr modeli obszaru roboczego zezwala na więcej niż jedną wersję zarejestrowanego modelu na każdym etapie. Jeśli chcesz, aby na etapie produkcji była tylko jedna wersja, możesz przenieść wszystkie wersje modelu znajdujące się obecnie na etapie produkcji do archiwum, zaznaczając pole wyboru Transition existing Production model versions to Archived (Przenieś istniejące produkcyjne wersje modelu do archiwum).
Zatwierdzanie, odrzucanie lub anulowanie żądania przeniesienia wersji modelu
Użytkownik bez uprawnień do przejścia etapu może poprosić o takie przejście. Żądanie będzie widoczne w sekcji Pending Requests (Oczekujące żądania) na stronie wersji modelu:
Aby zatwierdzić, odrzucić lub anulować żądanie przeniesienia do innego etapu, kliknij link Approve (Zatwierdź), Reject (Odrzuć) lub Cancel (Anuluj).
Twórca żądania przejścia może także je anulować.
Wyświetlanie działań dotyczących wersji modelu
Aby wyświetlić wszystkie zmiany — zażądane, zatwierdzone, oczekujące i zastosowane do wersji modelu — przejdź do sekcji Activities (Działania). Rekord działań zapewnia śledzenie historii cyklu życia modelu na potrzeby audytu lub inspekcji.
Przenoszenie etapu modelu przy użyciu interfejsu API
Użytkownicy z odpowiednimi uprawnieniami mogą przenieść wersję modelu do nowego etapu.
Aby zaktualizować etap wersji modelu do nowego etapu, użyj metody transition_model_version_stage()
interfejsu API klienta MLflow:
client = MlflowClient()
client.transition_model_version_stage(
name="<model-name>",
version=<model-version>,
stage="<stage>",
description="<description>"
)
Akceptowane wartości <stage>
to: "Staging"|"staging"
, "Archived"|"archived"
, "Production"|"production"
, "None"|"none"
.
Używanie modelu do wnioskowania
Ważne
Ta funkcja jest dostępna w publicznej wersji zapoznawczej.
Po zarejestrowaniu modelu w Rejestrze Modeli Obszaru Roboczego, możesz automatycznie wygenerować notatnik, aby użyć modelu do przetwarzania wsadowego lub przetwarzania strumieniowego. Alternatywnie, możesz utworzyć punkt końcowy, aby wykorzystać model do obsługi w czasie rzeczywistym przy użyciu Model Serving.
W prawym górnym rogu strony zarejestrowanego modelu lub strony wersji modelu kliknij przycisk użycia modelu. Zostanie wyświetlone okno dialogowe Konfigurowanie wnioskowania modelu, które umożliwia skonfigurowanie wnioskowania wsadowego, przesyłania strumieniowego lub wnioskowania w czasie rzeczywistym.
Ważne
Anaconda Inc. zaktualizowała swoje warunki świadczenia usług dla kanałów anaconda.org. Na podstawie nowych warunków świadczenia usług możesz potrzebować licencji komercyjnej, jeśli polegasz na pakietach i dystrybucji Anaconda. Aby uzyskać więcej informacji, zobacz Często zadawane pytania dotyczące wersji komercyjnej Anaconda. Korzystanie z jakichkolwiek kanałów Anaconda podlega warunkom świadczenia usług.
Modele MLflow zarejestrowane przed wersją 1.18 (Databricks Runtime 8.3 ML lub starsze) były domyślnie rejestrowane przy użyciu kanału Conda defaults
(https://repo.anaconda.com/pkgs/) jako zależności. Ze względu na tę zmianę licencji usługa Databricks zatrzymała korzystanie z kanału defaults
dla modeli zarejestrowanych przy użyciu platformy MLflow w wersji 1.18 lub nowszej. Zarejestrowany kanał domyślny to teraz conda-forge
, co wskazuje na zarządzany przez społeczność https://conda-forge.org/.
Jeśli zanotowano model przed wersją 1.18 MLflow bez wykluczania kanału defaults
ze środowiska conda dla modelu, ten model może wykazywać zależność od kanału defaults
, której mogłeś nie zamierzać.
Aby ręcznie potwierdzić, czy model ma tę zależność, możesz sprawdzić wartość channel
w pliku conda.yaml
spakowanym z zalogowanym modelem. Na przykład model conda.yaml
z zależnością kanału defaults
może wyglądać następująco:
channels:
- defaults
dependencies:
- python=3.8.8
- pip
- pip:
- mlflow
- scikit-learn==0.23.2
- cloudpickle==1.6.0
name: mlflow-env
Ponieważ usługa Databricks nie może określić, czy korzystanie z repozytorium Anaconda do interakcji z modelami jest dozwolone w ramach relacji z platformą Anaconda, usługa Databricks nie zmusza swoich klientów do wprowadzania żadnych zmian. Jeśli korzystanie z repozytorium Anaconda.com za pośrednictwem korzystania z usługi Databricks jest dozwolone zgodnie z warunkami platformy Anaconda, nie musisz podejmować żadnych działań.
Jeśli chcesz zmienić kanał używany w środowisku modelu, możesz ponownie zarejestrować model przy użyciu nowego conda.yaml
w rejestrze modeli obszaru roboczego. Można to zrobić, określając kanał w parametrze conda_env
log_model()
.
Aby uzyskać więcej informacji na temat interfejsu log_model()
API, zobacz dokumentację platformy MLflow dotyczącą odmiany modelu, z którą pracujesz, na przykład log_model dla biblioteki scikit-learn.
Aby uzyskać więcej informacji na conda.yaml
temat plików, zobacz dokumentację platformy MLflow.
Konfigurowanie wnioskowania wsadowego
Po wykonaniu tych kroków w celu utworzenia notesu wnioskowania wsadowego, notes zostanie zapisany w folderze użytkownika w folderze Batch-Inference
, w folderze o nazwie modelu. Można edytować notatnik zgodnie z potrzebami.
Kliknij kartę Wnioskowanie wsadowe .
Z listy rozwijanej wersja modelu wybierz wersję modelu do użycia. Pierwsze dwa elementy z listy rozwijanej to bieżąca wersja produkcyjna i tymczasowa modelu (jeśli istnieją). Po wybraniu jednej z tych opcji notes automatycznie używa wersji produkcyjnej lub testowej od momentu uruchomienia. Nie trzeba aktualizować notesu podczas opracowywania modelu.
Kliknij przycisk Przeglądaj obok tabeli wejściowej. Zostanie wyświetlone okno dialogowe Wybieranie danych wejściowych. W razie potrzeby możesz zmienić grupę w menu rozwijanym Obliczenia.
Uwaga
W przypadku obszarów roboczych z obsługą katalogu Unity okno dialogowe Wybieranie danych wejściowych pozwala wybrać jeden z trzech poziomów,
<catalog-name>.<database-name>.<table-name>
.Wybierz tabelę zawierającą dane wejściowe dla modelu, a następnie kliknij pozycję Wybierz. Wygenerowany notatnik automatycznie importuje dane i wysyła je do modelu. Wygenerowany notes można edytować, jeśli dane wymagają jakichkolwiek przekształceń, zanim będą wprowadzane do modelu.
Przewidywania są zapisywane w folderze w katalogu
dbfs:/FileStore/batch-inference
. Domyślnie przewidywania są zapisywane w folderze o takiej samej nazwie jak model. Każde uruchomienie wygenerowanego notesu zapisuje nowy plik do tego katalogu z znacznikiem czasu dołączonym do nazwy. Możesz również zdecydować się nie dołączać znacznika czasu i zastąpić plik późniejszymi wykonaniami notatnika; instrukcje są udostępniane w wygenerowanym notatniku.Możesz zmienić folder, w którym są zapisywane przewidywania, wpisując nową nazwę folderu w lokalizacji tabeli Output lub klikając ikonę folderu, aby przejrzeć katalog i wybrać inny folder.
Aby zapisać przewidywania w lokalizacji w Unity Catalogu, należy edytować notatnik. Przykładowy notatnik pokazujący sposób trenowania modelu uczenia maszynowego korzystającego z danych w Unity Catalog i zapisywania wyników z powrotem do Unity Catalog, zobacz samouczek uczenie maszynowe.
Konfigurowanie wnioskowania transmisji strumieniowej z użyciem DLT
Postępując zgodnie z tymi krokami, aby stworzyć notatnik do wnioskowania strumieniowego, notatnik zostanie zapisany w twoim folderze użytkownika, w folderze DLT-Inference
, w folderze o nazwie modelu. Możesz edytować notatnik zgodnie z potrzebami.
Kliknij kartę Streaming (DLT).
Z listy rozwijanej wersja modelu wybierz wersję modelu do użycia. Pierwsze dwa elementy z listy rozwijanej to bieżąca wersja produkcyjna i tymczasowa modelu (jeśli istnieją). Po wybraniu jednej z tych opcji notatnik automatycznie używa wersji produkcyjnej lub testowej od momentu uruchomienia. Nie trzeba aktualizować notesu podczas opracowywania modelu.
Kliknij przycisk Przeglądaj obok tabeli Wejściowej. Zostanie wyświetlone okno dialogowe Wybór danych wejściowych. W razie potrzeby możesz zmienić klaster w menu rozwijanym Obliczenia.
Uwaga
W przypadku obszarów roboczych z obsługą katalogu Unity okno dialogowe Wybieranie danych wejściowych umożliwia wybranie spośród trzech poziomów,
<catalog-name>.<database-name>.<table-name>
.Wybierz tabelę zawierającą dane wejściowe dla modelu, a następnie kliknij pozycję Wybierz. Wygenerowany notatnik tworzy przekształcenie danych, które używa tabeli wejściowej jako źródła i integruje funkcję UDF PySpark do wykonywania prognoz modelu. Wygenerowany notes można edytować, jeśli dane wymagają dodatkowych przekształceń przed zastosowaniem modelu lub po nim.
Podaj nazwę wyjściową DLT. Notatnik tworzy dynamiczną tabelę o podanej nazwie i używa jej do przechowywania wniosków modelu. Wygenerowany notes można zmodyfikować, aby dostosować docelowy zestaw danych zgodnie z potrzebami — na przykład: zdefiniuj tabelę transmisji strumieniowej na żywo jako dane wyjściowe, dodaj informacje o schemacie lub ograniczenia dotyczące jakości danych.
Następnie możesz utworzyć nowy potok DLT za pomocą tego notesu lub dodać go do istniejącego potoku jako dodatkową bibliotekę notesów.
Konfigurowanie wnioskowania w czasie rzeczywistym
Obsługa modelu uwidacznia modele uczenia maszynowego MLflow jako skalowalne punkty końcowe interfejsu API REST. Aby utworzyć punkt końcowy obsługujący model, zobacz Tworzenie niestandardowych punktów końcowych obsługujących model.
Przekazywanie opinii
Ta funkcja jest dostępna w wersji zapoznawczej i chętnie otrzymamy Twoją opinię. Aby przekazać opinię, kliknij Provide Feedback
w oknie dialogowym Konfigurowanie wnioskowania modelu.
Porównanie wersji modelu
Wersje modeli można porównać w rejestrze modeli obszaru roboczego.
- Na stronie zarejestrowanego modelu wybierz co najmniej dwie wersje modelu, klikając pole wyboru po lewej stronie wersji modelu.
- Kliknij pozycję Porównaj.
- Zostanie wyświetlony ekran Porównanie wersji
<N>
z tabelą porównującą parametry, schemat i metryki wybranych wersji modelu. W dolnej części ekranu można wybrać typ wykresu (punktowy, konturowy lub współrzędnych równoległych) oraz parametry lub metryki do wykreślenia.
Kontrolowanie preferencji powiadomień
Rejestr modeli obszaru roboczego można skonfigurować, aby powiadomić Cię pocztą e-mail o działaniach dotyczących zarejestrowanych modeli i wersji modelu, które określisz.
Na stronie zarejestrowanego modelu w menu Powiadom mnie o są dostępne trzy opcje:
- Wszystkie nowe działanie: Wysyłaj powiadomienia e-mail dotyczące wszystkich działań we wszystkich wersjach modelu tego modelu. Jeśli utworzono zarejestrowany model, to ustawienie jest ustawieniem domyślnym.
- Aktywność w wersjach, które obserwuję: Wysyłaj powiadomienia e-mail tylko o obserwowanych wersjach modelu. Po wybraniu tej opcji otrzymasz powiadomienia dotyczące wszystkich obserwowanych wersji modelu; nie można wyłączyć powiadomień dla określonej wersji modelu.
- Powiadomienia wyciszenia: nie wysyłaj powiadomień e-mail dotyczących działań w tym zarejestrowanym modelu.
Następujące zdarzenia wyzwalają powiadomienie e-mail:
- Tworzenie nowej wersji modelu
- Żądanie przeniesienia etapu
- Przenoszenie etapu
- Nowe komentarze
Po wykonaniu dowolnej z następujących czynności automatycznie subskrybujesz powiadomienia dotyczące modelu:
- Komentarz do tej wersji modelu
- Zmień etap wersji modelu
- Złóż żądanie przeniesienia etapu modelu
Aby sprawdzić, czy korzystasz z wersji modelu, zapoznaj się z polem Status obserwowania na stronie wersji modelu lub w tabeli wersji modelu na stronie zarejestrowanego modelu .
Wyłącz wszystkie powiadomienia e-mail
Powiadomienia e-mail można wyłączyć na karcie Ustawienia rejestru modelu obszaru roboczego w menu Ustawienia użytkownika:
- Kliknij swoją nazwę użytkownika w prawym górnym rogu obszaru roboczego usługi Azure Databricks i wybierz pozycję Ustawienia z menu rozwijanego.
- Na pasku bocznym ustawienia wybierz pozycję Powiadomienia.
- Wyłącz powiadomienia e-mail Rejestru Modeli.
Administrator konta może wyłączyć powiadomienia e-mail dla całej organizacji na stronie ustawień administratora.
Maksymalna liczba wysłanych wiadomości e-mail
Rejestr modelu przestrzeni roboczej ogranicza liczbę wiadomości e-mail wysyłanych do każdego użytkownika dziennie na każde działanie. Jeśli na przykład otrzymasz 20 wiadomości e-mail w ciągu jednego dnia o nowych wersjach modelu utworzonych dla zarejestrowanego modelu, rejestr modeli obszarów roboczych wysyła wiadomość e-mail z informacją o osiągnięciu dziennego limitu i nie są wysyłane żadne dodatkowe wiadomości e-mail dotyczące tego zdarzenia do następnego dnia.
Aby zwiększyć limit liczby dozwolonych wiadomości e-mail, skontaktuj się z zespołem konta usługi Azure Databricks.
Webhooki
Ważne
Ta funkcja jest dostępna w publicznej wersji zapoznawczej.
Webhooks pozwalają na nasłuchiwanie zdarzeń rejestru modeli w przestrzeni roboczej, aby integracje mogły automatycznie uruchamiać akcje. Możesz użyć webhooków, aby zautomatyzować i zintegrować potok uczenia maszynowego z istniejącymi narzędziami i przepływami pracy CI/CD. Możesz na przykład uruchomić buildy ciągłej integracji po utworzeniu nowej wersji modelu. Każdorazowo, gdy wnioskowane jest przejście modelu do środowiska produkcyjnego, możesz także powiadomić członków zespołu przez Slacka.
Dodawanie adnotacji do modelu lub wersji modelu
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
Interfejs użytkownika usługi Azure Databricks udostępnia kilka sposobów dodawania adnotacji do modeli i wersji modelu. Informacje tekstowe można dodawać przy użyciu opisu lub komentarzy, a także dodawać przeszukiwalne tagi klucz-wartość. Opisy i tagi są dostępne dla modeli i wersji modelu; komentarze są dostępne tylko dla wersji modelu.
- Opisy mają na celu podanie informacji o modelu.
- Komentarze umożliwiają utrzymanie ciągłej dyskusji o działaniach związanych z wersją modelu.
- Tagi umożliwiają dostosowanie metadanych modelu, aby ułatwić znajdowanie określonych modeli.
Dodawanie lub aktualizowanie opisu modelu lub wersji modelu
Na stronie zarejestrowanego modelu lub wersji modelu kliknij przycisk Edytuj obok pozycji Opis. Zostanie wyświetlone okno edycji.
Wprowadź lub edytuj opis w oknie edycji.
Kliknij przycisk Zapisz, aby zapisać zmiany lub Anuluj, aby zamknąć okno.
Jeśli wprowadzono opis wersji modelu, zostanie on wyświetlony w kolumnie Opis w tabeli na stronie zarejestrowanego modelu. Kolumna zawiera maksymalnie 32 znaki lub jeden wiersz tekstu, w zależności od tego, co jest krótsze.
Dodawanie komentarzy dla wersji modelu
- Przewiń stronę wersji modelu w dół i kliknij strzałkę w dół obok Działania.
- Wpisz komentarz w oknie edycji i kliknij przycisk Dodaj komentarz.
Dodawanie tagów dla modelu lub wersji modelu
Na stronie zarejestrowanego modelu lub wersji modelu kliknij
, jeśli jeszcze nie jest otwarta. Zostanie wyświetlona tabela tagów.
Kliknij pola Nazwa i Wartość, a następnie wpisz klucz i wartość tagu.
Kliknij przycisk Dodaj.
Edytowanie lub usuwanie tagów dla modelu lub wersji modelu
Aby edytować lub usunąć istniejący tag, użyj ikon w kolumnie Actions.
Dodawanie adnotacji do wersji modelu przy użyciu interfejsu API
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>"
)
Aby ustawić lub zaktualizować tag dla zarejestrowanego modelu lub wersji modelu, użyj metody interfejsu API klienta MLflow set_registered_model_tag()
) lub set_model_version_tag()
:
client = MlflowClient()
client.set_registered_model_tag()(
name="<model-name>",
key="<key-value>",
tag="<tag-value>"
)
client = MlflowClient()
client.set_model_version_tag()(
name="<model-name>",
version=<model-version>,
key="<key-value>",
tag="<tag-value>"
)
Zmień nazwę modelu (tylko interfejs API)
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>")
Uwaga
Nazwę zarejestrowanego modelu można zmienić tylko wówczas, gdy nie ma on żadnych wersji lub gdy wszystkie wersje mają przypisany etap None lub Archived.
Wyszukiwanie modelu
Modele można wyszukiwać w rejestrze modeli obszaru roboczego przy użyciu interfejsu użytkownika lub interfejsu API.
Uwaga
Podczas wyszukiwania modelu zwracane są tylko modele, dla których masz co najmniej uprawnienia CAN READ.
Wyszukiwanie modelu przy użyciu interfejsu użytkownika
Aby wyświetlić zarejestrowane modele, kliknij pozycję Modele na pasku bocznym.
Aby wyszukać określony model, wprowadź tekst w polu wyszukiwania. Możesz wprowadzić nazwę modelu lub dowolną część nazwy:
Możesz również wyszukiwać tagi. Wprowadź tagi w tym formacie: tags.<key>=<value>
. Aby wyszukać wiele tagów, użyj AND
operatora .
Możesz wyszukać zarówno nazwę modelu, jak i tagi przy użyciu składni wyszukiwania MLflow. Na przykład:
Wyszukiwanie modelu przy użyciu interfejsu API
Zarejestrowane modele można wyszukać w rejestrze modeli obszaru roboczego przy użyciu metody interfejsu API klienta MLflow search_registered_models()
Jeśli masz ustawione tagi na swoich modelach, możesz również przeszukiwać te tagi za pomocą search_registered_models()
.
print(f"Find registered models with a specific tag value")
for m in client.search_registered_models(f"tags.`<key-value>`='<tag-value>'"):
pprint(dict(m), indent=4)
Możesz również wyszukać określoną nazwę modelu i wyświetlić jego szczegóły wersji przy użyciu metody search_model_versions()
interfejsu API klienta MLflow:
from pprint import pprint
client=MlflowClient()
[pprint(mv) for mv in client.search_model_versions("name='<model-name>'")]
To pokazuje:
{ 'creation_timestamp': 1582671933246,
'current_stage': 'Production',
'description': 'A random forest model containing 100 decision trees '
'trained in scikit-learn',
'last_updated_timestamp': 1582671960712,
'name': 'sk-learn-random-forest-reg-model',
'run_id': 'ae2cc01346de45f79a44a320aab1797b',
'source': './mlruns/0/ae2cc01346de45f79a44a320aab1797b/artifacts/sklearn-model',
'status': 'READY',
'status_message': None,
'user_id': None,
'version': 1 }
{ 'creation_timestamp': 1582671960628,
'current_stage': 'None',
'description': None,
'last_updated_timestamp': 1582671960628,
'name': 'sk-learn-random-forest-reg-model',
'run_id': 'd994f18d09c64c148e62a785052e6723',
'source': './mlruns/0/d994f18d09c64c148e62a785052e6723/artifacts/sklearn-model',
'status': 'READY',
'status_message': None,
'user_id': None,
'version': 2 }
Usuwanie modelu lub wersji modelu
Model można usunąć za pomocą interfejsu użytkownika lub interfejsu API.
Usuwanie modelu lub wersji modelu przy użyciu interfejsu użytkownika
Ostrzeżenie
Nie można cofnąć tej akcji. Zamiast usuwać wersję modelu z rejestru, możesz przenieść ją do etapu Archived. Po usunięciu modelu wszystkie artefakty modelu przechowywane przez rejestr modeli obszaru roboczego i wszystkie metadane skojarzone z zarejestrowanym modelem zostaną usunięte.
Uwaga
Można usuwać tylko modele i wersje modeli przypisane do etapu None lub Archived. Jeśli zarejestrowany model ma wersje na etapie Staging lub Production, przed usunięciem modelu trzeba przenieść je do etapu None lub Archived.
Aby usunąć wersję modelu:
- Kliknij
Modele na pasku bocznym.
- Kliknij nazwę modelu.
- Kliknij wersję modelu.
- Kliknij menu kebab
w prawym górnym rogu ekranu i wybierz Usuń z menu rozwijanego.
Aby usunąć model:
- Kliknij ikonę
w pasku bocznym.
- Kliknij nazwę modelu.
- Kliknij Menu Kebab
w prawym górnym rogu ekranu i wybierz Usuń z listy rozwijanej.
Usuń wersję modelu lub model za pomocą interfejsu API
Ostrzeżenie
Nie można cofnąć tej akcji. Zamiast usuwać wersję modelu z rejestru, możesz przenieść ją do etapu Archived. Po usunięciu modelu wszystkie artefakty modelu przechowywane przez rejestr modeli obszaru roboczego i wszystkie metadane skojarzone z zarejestrowanym modelem zostaną usunięte.
Uwaga
Można usuwać tylko modele i wersje modeli przypisane do etapu None lub Archived. Jeśli zarejestrowany model ma wersje na etapie Staging lub Production, przed usunięciem modelu trzeba przenieść je do etapu None lub Archived.
Usuń wersję 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>")
Udostępnianie modeli między obszarami roboczymi
Databricks zaleca używanie modeli w katalogu Unity do udostępniania modeli między obszarami roboczymi. Unity Catalog zapewnia wbudowaną obsługę dostępu między obszarami roboczymi, zarządzania i rejestrowania działań audytowych.
Jeśli jednak korzystasz z rejestru modeli obszarów roboczych, możesz również udostępniać modele w wielu obszarach roboczych przy użyciu niektórych ustawień. Można na przykład opracowywać i rejestrować model we własnym obszarze roboczym, a następnie uzyskiwać do niego dostęp z innego obszaru roboczego przy użyciu zdalnego rejestru modeli obszaru roboczego. Jest to przydatne, gdy wiele zespołów współdzieli dostęp do modeli. Możesz utworzyć wiele obszarów roboczych i używać modeli w tych środowiskach i zarządzać nimi.
Kopiowanie obiektów MLflow między obszarami roboczymi
Aby zaimportować lub wyeksportować obiekty MLflow do lub z obszaru roboczego usługi Azure Databricks, możesz użyć opartego na społeczności projektu open source MLflow Export-Import w celu migracji eksperymentów, modeli i przebiegów między obszarami roboczymi.
Za pomocą tych narzędzi można wykonywać następujące czynności:
- Dziel się i współpracuj z innymi specjalistami ds. danych na tym samym serwerze śledzenia lub na innym. Na przykład możesz sklonować eksperyment z innego użytkownika do obszaru roboczego.
- Skopiuj model z jednego obszaru roboczego do innego, na przykład z obszaru projektowego do produkcyjnego obszaru roboczego.
- Skopiuj eksperymenty MLflow i uruchom je z lokalnego serwera śledzenia do obszaru roboczego usługi Databricks.
- Tworzenie kopii zapasowych eksperymentów i modeli o krytycznym znaczeniu dla innego obszaru roboczego usługi Databricks.
Przykład
W tym przykładzie pokazano, jak utworzyć aplikację uczenia maszynowego za pomocą rejestru modeli obszaru roboczego.