Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ważne
Ta funkcja jest dostępna w publicznej wersji testowej.
Uwaga / Notatka
Zadania wdrażania nie muszą być używane z klientami MLflow w wersji 3 ani do śledzenia modeli, i mogą być włączone w starszych, istniejących modelach w Unity Catalog. Zaleca się jednak użycie biblioteki MLflow 3.
W tym artykule opisano sposób używania zadań wdrażania platformy MLflow w ramach przepływu pracy uczenia maszynowego w celu zarządzania pełnym cyklem życia modeli uczenia maszynowego.
Co to są zadania wdrażania?
Zadania wdrażania umożliwiają automatyzację procesów, takich jak ocena, zatwierdzanie i wdrażanie, po utworzeniu nowej wersji modelu. Bezproblemowo integrują się z modelami katalogu Unity oraz zadaniami Lakeflow. Te zadania upraszczają proces konfigurowania potoków wdrażania modeli, zatwierdzenia z udziałem człowieka zapewniają zarządzane przepływy pracy z wyraźnym wglądem w postęp i kontekst historyczny dla każdej wersji modelu.
W przypadku zadań wdrażania proces jest w pełni zautomatyzowany; są one wyzwalane automatycznie, gdy tylko zostanie utworzona nowa wersja modelu, a stan realizacji zadania wdrożenia jest wyświetlany bezpośrednio na stronach modelu i wersji modelu. Informacje historyczne o każdym uruchomieniu zadania dotyczącego wdrożeń są wygodnie zapisywane w dzienniku aktywności, zapewniając przejrzystość i łatwość zarządzania.
Integracja z śledzeniem modeli MLflow 3
Databricks zaleca używanie śledzenia MLflow 3 do rejestrowania modeli i przeprowadzania oceny w pracy wdrożeniowej. Nowy klient będzie automatycznie rejestrować metryki z części ewaluacyjnej zadania wdrożenia, która będzie widoczna w interfejsie użytkownika wersji modelu katalogu Unity. Dzięki temu użytkownicy będą mogli korzystać ze scentralizowanych metryk, parametrów i śladów na stronie wersji modelu, aby podejmować świadome decyzje dotyczące tego, kiedy kontynuować postęp modelu w cyklu życia zadania wdrażania.
Integracja z kontrolą dostępu listy ACL dla tworzenia wersji modelu w Katalogu Unity
Zadania wdrażania integrują się naturalnie z nowo wydaną funkcją ACL dla tworzenia wersji modelu w katalogu Unity, dopełniając twoją opowieść o MLOps. W szczególności użytkownikowi można przyznać uprawnienia CREATE MODEL VERSION ACL (TWORZENIE WERSJI MODELU), aby zarejestrować nowe wersje w modelu. Gdy użytkownik uzna model za wystarczająco dobry do produkcji, zarejestruje tę wersję w modelu Katalogu Unity, co rozpocznie zadanie wdrażania, aby automatycznie ocenić model. W tym momencie osoba zatwierdzająca może ręcznie zatwierdzić tę wersję do wdrożenia lub odrzucić ją.
Ważne
Zadanie wdrożenia zostanie automatycznie uruchomione przy użyciu poświadczeń właściciela modelu. Oznacza to, że przyznanie użytkownikowi CREATE MODEL VERSION uprawnień do modelu katalogu Unity umożliwia wykonywanie przez niego dowolnego kodu w ramach zadania. Firma Databricks zaleca skonfigurowanie zadania wdrożenia przy użyciu głównego konta usługi z minimalnymi uprawnieniami, aby zapobiec eskalacji uprawnień.
Przykłady zadań wdrażania
Poniżej przedstawiono kilka przykładów zadań wdrażania, które odzwierciedlają typowe przypadki użycia. Należy pamiętać, że są to tylko przykłady i można je dostosować w razie potrzeby.
Proste przykładowe zadanie wdrażania składa się z 3 kroków: oceny, zatwierdzania i wdrażania. Ocena wywołuje mlflow.evaluate w celu wygenerowania metryk weryfikacji dla wprowadzonej wersji modelu. Zatwierdzenie umożliwia uprzywilejowanym użytkownikowi określenie, czy te metryki są zadowalające, a jeśli tak, zatwierdzić model. Na koniec wdrożenie wdraża wersję modelu w punkcie końcowym obsługującym model usługi Databricks.
Na poniższej ilustracji przedstawiono zadania Lakeflow Jobs, które składają się na to proste zadanie wdrożeniowe, obejmujące zadania oceny, zatwierdzania i wdrażania:
Można również utworzyć bardziej złożone zadanie wdrażania. Na przykład możesz wykonać wdrożenie etapowe z krokiem zbierania metryk w ramach przepływu pracy. Aby utworzyć to zadanie wdrażania, można dodać dodatkowe zadania po zadaniu zatwierdzenia w celu wdrożenia modelu do 1%, wdrożyć model do 10%, zebrać i przeanalizować metryki, zdecydować, czy kontynuować, czy cofnąć wdrożenie, a na koniec wdrożyć model do 100% lub cofnąć model. Na poniższej ilustracji przedstawiono, jak może wyglądać to bardziej złożone zadanie wdrażania:
Utwórz zadanie wdrożeniowe
Zadania wdrażania umożliwiają zarządzanie cyklem życia wersji modelu. Aby używać zadań wdrażania, najpierw musisz mieć wersje modelu stworzone w ramach zarejestrowanego modelu. Zobacz przykładowe notesy MLflow 3 , aby zapoznać się z zalecanymi metodami trenowania i rejestrowania modeli.
Databricks zaleca ustawienie pola Uruchom jako na główne konto usługi z minimalnymi uprawnieniami. Ponadto w przypadku zadania zatwierdzania usługa Databricks zaleca wyłączenie ponawiania prób, ponieważ zadanie początkowo prawdopodobnie zakończy się niepowodzeniem. Zapobiega to dłuższemu oczekiwaniu i zgłaszaniu wielu dzienników błędów.
Zadanie wdrożenia musi mieć dwa parametry zadania: model_name i model_version. Databricks dodatkowo zaleca ustawienie maksymalnej liczby współbieżnie uruchomionych procesów na 1 (wartość domyślna), aby zapobiec sytuacjom wyścigu podczas wdrażania.
Istnieją dwa sposoby tworzenia zadania wdrożenia: programowo przy użyciu notesu wdrażania lub przy użyciu interfejsu użytkownika. W obu przypadkach należy podać każde z zadań zawodowych jako notatnik.
Programatyczne tworzenie zadania wdrażania za pomocą notebooka (zalecane)
Użycie notesu wdrażania do programatycznego tworzenia zadania wdrożenia jest zalecane, ponieważ korzysta z zestawu SDK usługi Databricks, a wszystkie konfiguracje są łatwo konfigurowalne, z kodem jako punktem odniesienia. Ta metoda umożliwia również łatwe wdrażanie wielu zadań i innych zasobów w wielu obszarach roboczych.
W poniższych instrukcjach prosty przykładowy szablon służy do konfigurowania zadania wdrożenia przy użyciu podstawowych zadań oceny, zatwierdzania i wdrażania.
- Utwórz i zarejestruj model katalogu Unity. Zobacz na przykład przykładowy tradycyjny przepływ pracy uczenia maszynowego MLflow 3 .
- Utwórz notes, który definiuje zadanie oceny. Na przykład zaimportuj notes oceny klasycznego uczenia maszynowego , aby ocenić model utworzony na podstawie przykładu tradycyjnego uczenia maszynowego . Notebook ewaluacyjny dla GenAI zawiera przykład oceny zewnętrznego modelu GenAI. Zaktualizuj wymagane elementy zgodnie z potrzebami. W przypadku innych modeli użyj tego notatnika jako szablonu i dostosuj go, aby ocenić swój model zgodnie z potrzebami w unikalnej sytuacji.
- Utwórz notatnik, który definiuje zadanie zatwierdzania. Na przykład zaimportuj zeszyt zatwierdzania do swojego obszaru roboczego. Więcej informacji na temat działania tego notatnika można znaleźć w części Zatwierdzenia. Możesz również użyć tego notesu jako szablonu i zaktualizować go do swoich potrzeb.
- Utwórz notatnik, który definiuje zadanie wdrażania. Na przykład zaimportuj poniższy notes wdrażania do obszaru roboczego. Możesz również użyć tego notesu jako szablonu i zaktualizować go do swoich potrzeb.
- Utwórz notatnik, który tworzy i orkiestruje zadanie wdrażania. Na przykład zaimportuj zeszyt zadania wdrożeniowego do obszaru roboczego. Ten notatnik tworzy zadanie Databricks, które staje się zadaniem wdrożeniowym. Pamiętaj, aby zaktualizować wymagane elementy w notatniku, aby poprawnie zdefiniować zadanie, używając modelu katalogu Unity i odpowiednich czynności. Możesz również użyć tego notesu jako szablonu i zaktualizować go do swoich potrzeb. Na przykład możesz uwzględnić więcej zadań, jeśli masz bardziej złożony plan wdrożenia.
- Uruchom notes zadania wdrożenia, aby utworzyć zadanie wdrożenia.
Tworzenie zadania wdrożenia przy użyciu interfejsu użytkownika zadań
Zadania można również tworzyć przy użyciu interfejsu użytkownika, zamiast używać zestawu SDK w powyższym szablonie. Jednak dla każdego zadania notesu notesy muszą być tworzone ręcznie i zapisywane w obszarze roboczym. W przypadku modelu instrukcji przyjmuje się prosty przepływ pracy wdrażania z zadaniami oceny, zatwierdzania i wdrażania. Dostosuj instrukcje, dodając więcej zadań, jeśli masz bardziej złożony przepływ pracy wdrażania.
Utwórz i zarejestruj model katalogu Unity. Zobacz na przykład przykładowy tradycyjny przepływ pracy uczenia maszynowego MLflow 3 .
Utwórz notes, który definiuje zadanie oceny. Na przykład zaimportuj notes oceny klasycznego uczenia maszynowego , aby ocenić model utworzony na podstawie przykładu tradycyjnego uczenia maszynowego . Notebook ewaluacyjny dla GenAI zawiera przykład oceny zewnętrznego modelu GenAI. Zaktualizuj wymagane elementy zgodnie z potrzebami. W przypadku innych modeli użyj tego notatnika jako szablonu i dostosuj go, aby ocenić swój model zgodnie z potrzebami w unikalnej sytuacji.
Utwórz notatnik, który definiuje zadanie zatwierdzania. Na przykład zaimportuj zeszyt zatwierdzania do swojego obszaru roboczego. Więcej informacji na temat działania tego notatnika można znaleźć w części Zatwierdzenia. Możesz również użyć tego notesu jako szablonu i zaktualizować go do swoich potrzeb.
Utwórz notatnik, który definiuje zadanie wdrażania. Na przykład zaimportuj poniższy notes wdrażania do obszaru roboczego. Możesz również użyć tego notesu jako szablonu i zaktualizować go do swoich potrzeb.
Utwórz zadanie wdrożenia w interfejsie użytkownika zadań lakeflow:
W okienku nawigacji po lewej stronie kliknij pozycję + Nowe > zadanie , aby utworzyć nowe zadanie.
Skonfiguruj każde zadanie. Na przykład dla zadania wdrażania:
- Nazwa zadania: Wdrożenie
- Typ: Notebook
- Źródło: Obszar roboczy
- Ścieżka:
/Workspace/Users/<user.name@email.com>/deployment - Obliczenia: bezserwerowe
Aby uzyskać więcej informacji na temat konfiguracji, zobacz Zadania notatnika dla zadań.
Po zakończeniu tworzenia każdego zadania dodaj parametry zadania. Na panelu po prawej stronie kliknij pozycję Edytuj parametry. Dodaj
model_nameimodel_version.- Uwaga: Typowym błędem jest dodanie tych parametrów jako parametrów na poziomie zadania. Pamiętaj, aby dodać je jako parametry na poziomie zadaniaprzy użyciu panelu po prawej stronie.
Poniżej przedstawiono przykład tworzenia powyższego zadania szablonu przy użyciu interfejsu użytkownika:
Łączenie zadania wdrożenia z modelem
Po utworzeniu modelu Unity Catalog i zadania wdrożeniowego należy połączyć zadanie z modelem jako zadanie wdrożeniowe. Możesz użyć interfejsu użytkownika lub wykonać go programowo w notesie wdrażania.
Po połączeniu zadania wdrożenia z modelem, jest ono wyświetlane na stronie modelu.
Łączenie zadania wdrożenia z modelem przy użyciu interfejsu użytkownika
Na stronie modelu na karcie Przegląd w obszarze Zadanie wdrażania kliknij pozycję Połącz zadanie wdrożenia.
Wybierz zadanie wdrożenia z listy rozwijanej. Możesz również użyć paska wyszukiwania, aby wyszukać zadania według ich nazwy lub identyfikatora. Kliknij Zapisz zmiany.
Łączenie zadania wdrożenia z modelem przy użyciu klienta MLflow
Głównym sposobem programowego łączenia zadania wdrożenia jest użycie klienta MLflow. Można to zrobić podczas tworzenia zarejestrowanego modelu przez wywołanie client.create_registered_model(model_name, deployment_job_id=<your-created-job-id>)metody , lub zaktualizowanie zarejestrowanego modelu przez wywołanie metody client.update_registered_model(model_name, deployment_job_id=<your-created-job-id>).
Głównym sposobem rozłączenia zadania wdrożenia programowo jest również użycie klienta MLflow. Można to zrobić, określając pusty ciąg "" i wywołując aktualizację za jej pomocą (na przykład client.update_registered_model(model_name, deployment_job_id="")).
Użyj kodu podobnego do poniższego w notesie wdrażania:
import mlflow
from mlflow.tracking.client import MlflowClient
client = MlflowClient(registry_uri="databricks-uc")
# model_name specifies the location of a model in Unity Catalog
# model_name should be in the format <catalog>.<schema>.<model>
try:
if client.get_registered_model(model_name):
client.update_registered_model(model_name, deployment_job_id=created_job.job_id)
except mlflow.exceptions.RestException:
client.create_registered_model(model_name, deployment_job_id=created_job.job_id)
Wymagane uprawnienia
Do nawiązywania połączenia i wyzwalania zadań wdrażania są wymagane następujące uprawnienia:
- ZARZĄDZANIE modelem lub WŁAŚCICIEL w celu połączenia zadania wdrożenia
- Aby nawiązać połączenie, właściciel modelu musi mieć uprawnienia MOŻE ZARZĄDZAĆ PROCESAMI URUCHOMIENIA lub wyższe uprawnienia w zadaniu wdrożeniowym.
- UWAGA: to pole dotyczące zadania wdrożeniowego można również zaktualizować w modelu przez osobę z uprawnieniami do zarządzania lub wyższymi. W takim przypadku zarówno aktualizator, jak i właściciel modelu muszą mieć uprawnienia CAN MANAGE RUN lub wyższe w zadaniu wdrożenia, aby nawiązać z nim połączenie.
Uruchom zadanie wdrożenia
Zadanie wdrożenia zostanie automatycznie wyzwolone na wszystkich nowo utworzonych wersjach modelu, a także może zostać ręcznie wyzwolone zarówno na istniejących, jak i wcześniej wdrożonych wersjach na stronie wersji modelu, klikając pozycję Rozpocznij zadanie wdrożenia.
Zadanie można również wyzwolić bezpośrednio z interfejsu użytkownika lub interfejsu API zadań. Odpowiednią nazwę i wersję modelu należy określić w parametrach zadania.
Wymagane uprawnienia
Do wyzwalania zadań wdrażania wymagane są następujące uprawnienia:
- Aby ręcznie uruchomić lub naprawić zadanie wdrożenia przy użyciu interfejsu użytkownika wersji modelu, użytkownik musi mieć uprawnienia DO ZARZĄDZANIA URUCHOMIENIEM ZADANIA lub wyższe listy kontrolne ACL w zadaniu wdrożenia (te same listy kontrolne ACL są niezbędne do uruchomienia zadania przy użyciu interfejsu użytkownika zadań).
- Ponieważ zadanie jest wyzwalane automatycznie po utworzeniu nowej wersji i używa poświadczeń właściciela modelu, właściciel modelu musi mieć uprawnienia do zarządzania uruchamianiem lub wyższe ACL w zadaniu wdrażania.
Zatwierdź zadanie wdrożenia (eksperymentalne)
Usługa Databricks oferuje eksperymentalny mechanizm zatwierdzania zadań wdrażania, umożliwiając proces z udziałem człowieka dla potoków uczenia maszynowego. Po uruchomieniu zadania wdrożenia wyniki z przebiegu oceny są wyświetlane na stronie wersji modelu. Po przejrzeniu tych metryk osoba zatwierdzająca może zatwierdzić wersję modelu w interfejsie użytkownika, klikając pozycję Zatwierdź. Ta funkcja używa tagów Unity Catalog do określenia, czy zadanie zatwierdzania powinno zostać zaliczone, czy nie. Zadania zatwierdzenia są identyfikowane przez nazwy zadań rozpoczynające się od "zatwierdzenie" (bez uwzględniania wielkości liter) i zostaną zatwierdzone, gdy tag wykazu Unity Catalog zostanie ustawiony na Approved (czy to przez kliknięcie przycisku Zatwierdzenie w interfejsie użytkownika, czy po ręcznym ustawieniu).
Oto jak działa proces zatwierdzania:
- Pierwsze uruchomienie: pierwsze uruchomienie zadania wdrożenia zawsze kończy się niepowodzeniem w zadaniach zatwierdzania, ponieważ wersja modelu nie została jeszcze zatwierdzona i nie ma wymaganego tagu Unity Catalog.
- Ocena zatwierdzenia: osoba zatwierdzająca przegląda wersję modelu i jej metryki oceny, które są wyświetlane na stronie wersji modelu. Dzięki temu osoba zatwierdzająca może ocenić jakość i gotowość wersji modelu.
- Akcja zatwierdzenia: jeśli osoba zatwierdzająca uzna wersję modelu za zadowalającą, kliknij przycisk Zatwierdź w sekcji paska bocznego zadania wdrożenia na stronie wersji modelu.
Ta akcja automatycznie naprawia przebieg zadania i dodaje tag Unity Catalog do wersji modelu, które:
- Klucz tagu jest zgodny z nazwą zadania zatwierdzania. Na przykład w przykładowym notesie zatwierdzania jest to
Approval_Check. - Wartość tagu jest ustawiona na
Approved.
- Kontynuacja zadania: naprawione zadanie wdrożenia jest automatycznie wznawiane z zadania zatwierdzania. Tym razem przechodzi, ponieważ wymagany tag Unity Catalog jest teraz obecny. Następnie przechodzi do kolejnych zadań, takich jak wdrożenie.
Wymagane uprawnienia
Do dodawania tagów Unity Catalog i wyzwalania zadań wdrażania są wymagane następujące uprawnienia:
- ZASTOSUJ TAG na modelu katalogu Unity.
- PROGRAM MOŻE ZARZĄDZAĆ URUCHOMIENIEM zadania wdrażania.
Tagi zarządzane dla zaawansowanych zatwierdzeń
Można również dodatkowo określić, kto ma uprawnienia do zatwierdzania i stosowania tagów przy użyciu zasad tagów zarządzanych dla określonej nazwy tagu. Jeśli używasz zasad tagów zarządzanych i określasz APPLY_TAG uprawnienia dla użytkownika lub grupy, możesz:
- Miej wiele niezależnych grup zatwierdzających w zadaniu wdrażania.
- Można na przykład mieć dwa oddzielne tagi dla oddzielnych zatwierdzeń grup, takich jak:
Approval_LegaliApproval_Securitygdzie:- Utwórz zasady tagów zarządzanych, aby tylko zespół prawny mógł ustawić
Approval_Legaltag. - Utwórz dodatkowe zasady tagów zarządzanych, aby tylko zespół ds. zabezpieczeń mógł ustawić
Approval_Securitytag. - W zadaniu wdrożenia, masz dwa zadania zatwierdzające dotyczące zatwierdzeń prawnych i bezpieczeństwa.
- Przyznaj obu zespołom
APPLY_TAGna model, aby mogli dokonać ustawienia tagu, ale mogą zatwierdzać tylko swoje sprawdzenia.
- Utwórz zasady tagów zarządzanych, aby tylko zespół prawny mógł ustawić
- Można na przykład mieć dwa oddzielne tagi dla oddzielnych zatwierdzeń grup, takich jak:
- Ustaw zasady tagów, aby uniemożliwić właścicielowi modelu zatwierdzenie zadania w celu sprawdzenia, czy istnieje zatwierdzenie drugiej osoby.
- Standaryzacja kontroli zatwierdzania w metastore, katalogu i schemacie przy użyciu zasad tagów i spójnych nazw tagów.
Wyświetlanie stanu zadania wdrożenia i dziennika aktywności
Po uruchomieniu zadań wdrażania dla wersji modelu bieżący stan tych wdrożeń można wyświetlić na stronie modelu na karcie Przegląd. Poniżej stanu można zobaczyć historyczną aktywność w dzienniku aktywności. Dziennik aktywności jest również wyświetlany na stronie wersji modelu.
Wymagane uprawnienia
Do wyświetlania zadań wdrażania i dziennika aktywności (tak samo jak wyświetlanie modelu) wymagane są następujące uprawnienia:
- Uruchom model w Unity Catalog.
Przykładowe notesy szablonów zadań wdrażania
Poniższe przykładowe notesy mogą służyć jako szablon do tworzenia prostego zadania wdrażania składającego się z zadań oceny, zatwierdzania i wdrażania. Aby skonfigurować zadanie wdrażania dla twojego modelu, pamiętaj o podaniu wartości REQUIRED w zeszytach.
Notatnik oceny dla GenAI
Przykładowy notatnik oceny dla GenAI
Notatnik oceny klasycznego ML
Przykładowy notes oceny dla klasycznego uczenia maszynowego
Notatnik zatwierdzeń
Przykładowy notatnik aprobaty
Notatnik wdrożenia
Przykładowy notatnik wdrażania
Tworzenie notatnika zadania wdrożenia
Przykładowy notes do tworzenia zadania wdrożenia
Dalsze kroki
Aby dowiedzieć się więcej na temat nowych funkcji platformy MLflow 3 i rozpocząć pracę, zobacz następujący artykuł: