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.
Śledzenie MLflow umożliwia rejestrowanie notesów i zestawów danych szkoleniowych, parametrów, metryk, tagów i artefaktów związanych z trenowaniem modelu uczenia maszynowego lub uczenia głębokiego. Przykładowy notes umożliwiający rozpoczęcie pracy z MLflow znajduje się w samouczku: kompleksowe klasyczne modele uczenia maszynowego w Azure Databricks.
Śledzenie MLflow za pomocą eksperymentów, przebiegów i modeli
Proces tworzenia modelu jest iteracyjny i śledzenie postępów w pracy podczas opracowywania i optymalizacji modelu może być trudne. W usłudze Azure Databricks możesz użyć śledzenia MLflow, które pomogą ci śledzić proces opracowywania modelu, w tym ustawienia parametrów lub kombinacje, które próbowałeś/próbowałaś oraz jak wpływały na wydajność modelu.
Śledzenie MLflow używa eksperymentów, uruchomień i modeli do rejestrowania i śledzenia tworzenia modeli uczenia maszynowego i uczenia głębokiego. Uruchomienie to pojedyncze wykonanie kodu modelu. Podczas sesji MLflow można rejestrować parametry i wyniki modelu. Eksperyment jest zbiorem powiązanych uruchomień. W eksperymencie można porównać i filtrować przebiegi, aby zrozumieć, jak działa model i jak jego wydajność zależy od ustawień parametrów, danych wejściowych itd. Model to kolekcja artefaktów reprezentujących wytrenowany model uczenia maszynowego.
W przypadku platformy MLflow 3LoggedModels podnosi koncepcję modelu utworzonego przez przebieg, ustanawiając go jako odrębną jednostkę do śledzenia cyklu życia modelu w różnych przebiegach trenowania i oceny.
- Organizowanie przebiegów trenowania przy użyciu eksperymentów MLflow
- Śledzenie i porównywanie modeli przy użyciu modeli zarejestrowanych przez platformę MLflow
- Wyświetl wyniki trenowania za pomocą przebiegów MLflow
- Tworzenie pulpitów nawigacyjnych za pomocą metadanych MLflow w tabelach systemowych
Uwaga
Począwszy od 27 marca 2024 r., MLflow wprowadza limit ilościowy na liczbę całkowitą parametrów, tagów i etapów metryk dla wszystkich istniejących i nowych przebiegów oraz całkowitą liczbę przebiegów dla wszystkich istniejących i nowych eksperymentów, zobacz Limity zasobów. Jeśli osiągniesz limit przebiegów na eksperyment, Databricks zaleca usunięcie przebiegów, które nie są już potrzebne, korzystając z API do usuwania przebiegów w języku Python. Jeśli osiągniesz inne limity kwot, Databricks zaleca dostosowanie strategii rejestrowania, aby pozostać w limicie. Jeśli potrzebujesz zwiększenia tego limitu, skontaktuj się z zespołem ds. kont usługi Databricks z krótkim wyjaśnieniem przypadku użycia, dlaczego sugerowane metody ograniczania ryzyka nie działają, a także nowy limit, którego żądasz.
API do śledzenia MLflow
Interfejs API śledzenia MLflow zapisuje parametry, metryki, tagi i artefakty z uruchomienia modelu. API śledzenia komunikuje się z serwerem śledzenia MLflow. W przypadku korzystania z usługi Databricks serwer śledzenia hostowany w usłudze Databricks rejestruje dane. Hostowany serwer śledzenia MLflow ma interfejsy API python, Java i R.
Środowisko MLflow jest wstępnie zainstalowane w klastrach uczenia maszynowego usługi Databricks Runtime. Aby użyć biblioteki MLflow w klastrze środowiska Databricks Runtime, należy zainstalować bibliotekę mlflow . Aby uzyskać instrukcje dotyczące instalowania biblioteki w klastrze, zobacz Instalowanie biblioteki w klastrze. Aby użyć platformy MLflow 3 i jej najnowszych możliwości śledzenia, pamiętaj o uaktualnieniu do najnowszej wersji (zobacz Instalowanie platformy MLflow 3).
Gdzie są rejestrowane przebiegi MLflow
Usługa Databricks udostępnia hostowany serwer śledzenia MLflow, który przechowuje dane eksperymentu w obszarze roboczym bez konieczności konfigurowania. W razie potrzeby można również skonfigurować platformę MLflow do korzystania z różnych serwerów śledzenia.
Śledzenie MLflow jest kontrolowane przez dwa ustawienia:
- Identyfikator URI śledzenia: określa, który serwer ma być używany (domyślnie bieżący obszar roboczy usługi Databricks)
- Eksperyment: określa, który eksperyment na tym serwerze ma być zalogowany
import mlflow
# By default MLflow logs to the Databricks-hosted workspace tracking server. You can connect to a different server using the tracking URI.
mlflow.set_tracking_uri("databricks://remote-workspace-url")
# Set experiment in the tracking server
mlflow.set_experiment("/Shared/my-experiment")
Jeśli nie ustawiono aktywnego eksperymentu, przebiegi są rejestrowane w eksperymencie notebook.
Aby uzyskać więcej informacji na temat kontrolowania miejsca przechowywania danych MLflow, zobacz Wybieranie miejsca przechowywania danych MLflow.
Rejestrowanie przebiegów i modeli w eksperymencie
Platforma MLflow może automatycznie rejestrować kod trenowania napisany w wielu strukturach uczenia maszynowego i uczenia głębokiego. Jest to najprostszy sposób rozpoczęcia korzystania ze śledzenia MLflow. Zobacz przykład w notesie .
Aby uzyskać większą kontrolę nad tym, które parametry i metryki są rejestrowane, lub rejestrować dodatkowe artefakty, takie jak pliki CSV lub wykresy, użyj interfejsu API rejestrowania MLflow. Zobacz przykład w notesie .
Użyj autologowania do śledzenia procesu tworzenia modeli
W tym przykładowym notesie pokazano, jak używać automatycznego rejestrowania z scikit-learn. Aby uzyskać informacje na temat automatycznego rejestrowania z innymi bibliotekami języka Python, zobacz dokumentacji automatycznego rejestrowania platformy MLflow.
MLflow 3
Notatnik Python dla automatycznego logowania w MLflow 3
Zdobądź notatnik
MLflow 2.x
Automatyczne rejestrowanie MLflow — notatnik Python
Zdobądź notatnik
Śledź rozwój modelu za pomocą interfejsu API rejestrowania
W tym przykładowym notesie pokazano, jak używać interfejsu API rejestrowania języka Python . Platforma MLflow ma również interfejsy API REST, R i Java .
MLflow 3
Notatnik Python z interfejsem API rejestrowania MLflow dla MLflow 3
Zdobądź notatnik
MLflow 2.x
Notes rejestrowania MLflow API w Pythonie
Zdobądź notatnik
Rejestrowanie przebiegów w eksperymencie obszaru roboczego
Domyślnie podczas trenowania modelu w notatniku usługi Databricks przebiegi są rejestrowane w eksperymencie notatnika. W eksperymencie notesu można rejestrować tylko przebiegi MLflow zainicjowane w notesie.
Środowisko MLflow uruchamiane z dowolnego notesu lub z interfejsów API może być rejestrowane w eksperymencie obszaru roboczego. Aby zarejestrować przebiegi w eksperymencie obszaru roboczego, użyj kodu podobnego do poniższego w wywołaniu notatnika lub interfejsu API.
experiment_name = "/Shared/name_of_experiment/"
mlflow.set_experiment(experiment_name)
Aby uzyskać instrukcje dotyczące tworzenia eksperymentu obszaru roboczego, zobacz Tworzenie eksperymentu obszaru roboczego. Aby uzyskać informacje na temat wyświetlania zarejestrowanych przebiegów, zobacz Wyświetlanie eksperymentu notesu i Wyświetlanie eksperymentu obszaru roboczego.
Analizowanie przebiegów MLflow w sposób programatyczny
Dostęp do danych przebiegu MLflow można uzyskać programowo, korzystając z następujących dwóch interfejsów API DataFrame:
- Interfejs API klienta MLflow w języku Python search_runs zwraca ramkę danych w formacie pandas.
- Źródło danych eksperymentu MLflow zwraca ramkę danych platformy Apache Spark.
W tym przykładzie pokazano, jak używać klienta języka Python MLflow do tworzenia pulpitu nawigacyjnego, który wizualizuje zmiany w metrykach oceny w czasie, śledzi liczbę przebiegów uruchomionych przez określonego użytkownika i mierzy łączną liczbę przebiegów dla wszystkich użytkowników:
Dlaczego metryki i dane wyjściowe trenowania modelu mogą się różnić
Wiele algorytmów używanych w usłudze ML ma losowy element, taki jak próbkowanie lub losowe warunki początkowe w obrębie samego algorytmu. Podczas trenowania modelu przy użyciu jednego z tych algorytmów wyniki mogą nie być takie same przy każdym uruchomieniu, nawet jeśli rozpoczniesz uruchomienie z tymi samymi warunkami. Wiele bibliotek oferuje mechanizm rozmieszczania w celu naprawienia początkowych warunków dla tych elementów stochastycznych. Jednak mogą istnieć inne źródła odmian, które nie są kontrolowane przez nasiona. Niektóre algorytmy są wrażliwe na kolejność danych, a rozproszone algorytmy uczenia maszynowego mogą również mieć wpływ na sposób partycjonowania danych. Ta odmiana nie jest znacząca i nie jest ważna w procesie tworzenia modelu.
Aby kontrolować zmiany spowodowane różnicami w kolejności i partycjonowaniu, użyj funkcji PySpark repartycjonowania i sortWithinPartitions.
Przykłady śledzenia MLflow
W poniższych notesach pokazano, jak śledzić tworzenie modeli przy użyciu biblioteki MLflow.