Zarządzanie cyklem życia uczenia maszynowego przy użyciu biblioteki MLflow

W tym artykule opisano sposób użycia biblioteki MLflow w usłudze Databricks do zarządzania cyklem życia uczenia maszynowego. Zawiera również przykłady przedstawiające każdy składnik MLflow i linki do zawartości opisujące sposób hostowania tych składników w usłudze Azure Databricks.

Zarządzanie cyklem życia uczenia maszynowego w usłudze Databricks jest udostępniane przez zarządzany MLflow. Usługa Azure Databricks udostępnia w pełni zarządzaną i hostowaną wersję platformy MLflow zintegrowaną z funkcjami zabezpieczeń przedsiębiorstwa, wysoką dostępnością i innymi funkcjami obszarów roboczych usługi Azure Databricks, takimi jak zarządzanie eksperymentami i przebiegami oraz rejestrowanie modyfikacji notesów.

Użytkownicy po raz pierwszy powinni rozpocząć pracę z eksperymentami MLflow, które pokazują podstawowe interfejsy API śledzenia MLflow.

Co to jest MLflow?

MLflow to platforma typu „open source” umożliwiająca zarządzanie całym cyklem życia uczenia maszynowego. Ma ona następujące składniki podstawowe:

  • Śledzenie: umożliwia śledzenie eksperymentów w celu rejestrowania i porównywania parametrów i wyników.
  • Modele: umożliwia zarządzanie modelami i wdrażanie ich z różnych bibliotek uczenia maszynowego do różnych platform obsługujących i wnioskowania.
  • Projekty: umożliwia pakowanie kodu uczenia maszynowego w postaci wielokrotnego użytku, powtarzalnej w celu udostępnienia innym analitykom danych lub transferowi do środowiska produkcyjnego.
  • Rejestr modeli: umożliwia scentralizowanie magazynu modeli na potrzeby zarządzania pełnymi przejściami etapu cyklu życia modeli: od przemieszczania do środowiska produkcyjnego z funkcjami przechowywania wersji i dodawania adnotacji. Usługa Databricks udostępnia zarządzaną wersję rejestru modeli w katalogu aparatu Unity.
  • Obsługa modeli: umożliwia hostowanie modeli MLflow jako punktów końcowych REST. Usługa Databricks udostępnia ujednolicony interfejs do wdrażania, zarządzania i wykonywania zapytań dotyczących obsługiwanych modeli sztucznej inteligencji.

Platforma MLflow obsługuje język Java, Python, R oraz interfejsy API REST.

Dane MLflow są szyfrowane przez usługę Azure Databricks przy użyciu klucza zarządzanego przez platformę. Szyfrowanie przy użyciu kluczy zarządzanych przez klienta dla usług zarządzanych nie jest obsługiwane.

Śledzenie MLflow

Platforma MLflow w usłudze Azure Databricks oferuje zintegrowane środowisko do śledzenia i zabezpieczania przebiegów szkoleniowych dla modeli uczenia maszynowego i uczenia głębokiego.

Zarządzanie cyklem życia modelu

Rejestr modeli MLflow to scentralizowane repozytorium modeli oraz interfejs użytkownika i zestaw interfejsów API, które umożliwiają zarządzanie pełnym cyklem życia modeli MLflow. Usługa Databricks udostępnia hostowaną wersję rejestru modeli MLflow w katalogu aparatu Unity. Wykaz aparatu Unity zapewnia scentralizowany nadzór nad modelem, dostęp między obszarami roboczymi, pochodzenie i wdrażanie. Aby uzyskać szczegółowe informacje na temat zarządzania cyklem życia modelu w katalogu aparatu Unity, zobacz Zarządzanie cyklem życia modelu w wykazie aparatu Unity.

Jeśli obszar roboczy nie jest włączony dla wykazu aparatu Unity, możesz użyć rejestru modeli obszaru roboczego.

Pojęcia dotyczące rejestru modeli

  • Model: model MLflow zarejestrowany z eksperymentu lub przebiegu zarejestrowanego przy użyciu jednej z metod odmiany mlflow.<model-flavor>.log_model modelu. Po zarejestrowaniu modelu można zarejestrować go w rejestrze modeli.
  • Zarejestrowany model: model MLflow zarejestrowany w rejestrze modeli. Zarejestrowany model ma unikatową nazwę, wersje, pochodzenie modelu i inne metadane.
  • Wersja modelu: wersja zarejestrowanego modelu. Po dodaniu nowego modelu do rejestru modeli zostanie dodany jako wersja 1. Każdy model zarejestrowany w tej samej nazwie modelu zwiększa numer wersji.
  • Alias modelu: alias jest modyfikowalnym, nazwanym odwołaniem do określonej wersji zarejestrowanego modelu. Typowe zastosowania aliasów to określenie wersji modelu wdrożonych w danym środowisku w przepływach pracy trenowania modelu lub zapisywanie obciążeń wnioskowania przeznaczonych dla określonego aliasu. Można na przykład przypisać alias "Champion" zarejestrowanego modelu "Wykrywanie oszustw" do wersji modelu, która powinna obsługiwać większość ruchu produkcyjnego, a następnie zapisywać obciążenia wnioskowania, które są przeznaczone dla tego aliasu (czyli przewidywania przy użyciu wersji "Champion").
  • Etap modelu (tylko rejestr modeli obszaru roboczego): można przypisać wersję modelu co najmniej jeden etap. Platforma MLflow udostępnia wstępnie zdefiniowane etapy dla typowych przypadków użycia: Brak, Przejściowe, Produkcyjne i Zarchiwizowane. Przy użyciu odpowiednich uprawnień możesz przenieść wersję modelu między etapami lub zażądać przejścia etapu modelu. Etapy wersji modelu nie są używane w wykazie aparatu Unity.
  • Opis: Możesz dodać adnotację do intencji modelu, w tym opis i wszelkie istotne informacje przydatne dla zespołu, takie jak opis algorytmu, zastosowany zestaw danych lub metodologia.

Przykładowe notesy

Przykład ilustrujący sposób użycia rejestru modeli do utworzenia aplikacji uczenia maszynowego, która prognozuje dzienne dane wyjściowe zasilania farmy wiatrowej, zobacz następujące kwestie:

Wdrożenie modelu

Obsługa modeli usługi Databricks udostępnia ujednolicony interfejs do wdrażania modeli sztucznej inteligencji, zarządzania nimi i wykonywania zapytań. Każdy model, który służy, jest dostępny jako interfejs API REST, który można zintegrować z aplikacją internetową lub kliencką.

Obsługa modelu obsługuje obsługę:

  • Modele niestandardowe. Są to modele języka Python spakowane w formacie MLflow. Można je zarejestrować w wykazie aparatu Unity lub w rejestrze modeli obszaru roboczego. Przykłady obejmują modele przekształcania twarzy scikit-learn, XGBoost, PyTorch i Hugging Face transformer.
  • Najnowocześniejsze otwarte modele udostępniane przez interfejsy API modelu foundation. Te modele są nadzorowanymi architekturami modeli podstawowych, które obsługują zoptymalizowane wnioskowanie. Modele podstawowe, takie jak Llama-2-70B-chat, BGE-Large i Mistral-7B są dostępne do natychmiastowego użycia z cenami płatności za token, a obciążenia wymagające gwarancji wydajności i dostosowane warianty modelu można wdrożyć z aprowizowaną przepływnością.
  • Modele zewnętrzne. Są to modele hostowane poza platformą Databricks. Przykłady obejmują modele podstawowe, takie jak GPT-4 OpenAI, Claude Anthropic i inne. Punkty końcowe obsługujące modele zewnętrzne mogą być centralnie zarządzane, a klienci mogą ustanawiać limity szybkości i mechanizmy kontroli dostępu.

Można również wdrożyć modele MLflow na potrzeby wnioskowania w trybie offline. Zobacz Wdrażanie modeli dla wnioskowania wsadowego.