Śledzenie przebiegów trenowania uczenia maszynowego i uczenia głębokiego
Składnik śledzenia MLflow umożliwia rejestrowanie właściwości źródła, parametrów, metryk, tagów i artefaktów związanych z trenowaniem modelu uczenia maszynowego lub uczenia głębokiego. Aby rozpocząć pracę z platformą MLflow, wypróbuj jeden z samouczków szybkiego startu MLflow.
Śledzenie MLflow przy użyciu eksperymentów i przebiegów
Śledzenie MLflow opiera się na dwóch pojęciach, eksperymentach i przebiegach:
Uwaga
Od 27 marca 2024 r. platforma MLflow nakłada limit przydziału na liczbę całkowitych parametrów, tagów i kroków metryk dla wszystkich istniejących i nowych przebiegów oraz liczbę łącznych przebiegów dla wszystkich istniejących i nowych eksperymentów, zobacz Limity zasobów. W przypadku trafienia przebiegów na limit przydziału eksperymentu usługa Databricks zaleca usunięcie przebiegów, które nie są już potrzebne przy użyciu interfejsu API uruchamiania usuwania w języku Python. Jeśli osiągniesz inne limity przydziału, usługa Databricks zaleca dostosowanie strategii rejestrowania, aby utrzymać limit. 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.
Eksperyment MLflow jest podstawową jednostką organizacji i kontrolą dostępu dla przebiegów MLflow; wszystkie przebiegi MLflow należą do eksperymentu. Eksperymenty umożliwiają wizualizowanie, wyszukiwanie i porównywanie przebiegów, a także pobieranie artefaktów przebiegu i metadanych do analizy w innych narzędziach.
Uruchomienie platformy MLflow odpowiada pojedynczemu wykonaniu kodu modelu.
Organizowanie przebiegów trenowania przy użyciu eksperymentów MLflow
Parametry , metryki, tagi i artefakty z przebiegu modelu są dzienniki interfejsu API śledzenia MLflow. Interfejs 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.
Uwaga
Środowisko MLflow jest instalowane w klastrach uczenia maszynowego środowiska 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. Określone pakiety do zainstalowania dla platformy MLflow to:
- W polu Python wybierz pozycję Źródło biblioteki PyPI i wprowadź
mlflow
ciąg w polu Pakiet . - W polu R wybierz pozycję Źródło biblioteki CRAN i wprowadź
mlflow
wartość w polu Pakiet . - W przypadku języka Scala zainstaluj następujące dwa pakiety:
- Wybierz pozycję Źródło biblioteki Maven i wprowadź ciąg
org.mlflow:mlflow-client:1.11.0
w polu Współrzędne . - Wybierz pozycję Źródło biblioteki PyPI i wprowadź
mlflow
ciąg w polu Pakiet .
- Wybierz pozycję Źródło biblioteki Maven i wprowadź ciąg
Gdzie są rejestrowane przebiegi MLflow
Wszystkie przebiegi platformy MLflow są rejestrowane w aktywnym eksperymencie, który można ustawić przy użyciu dowolnego z następujących sposobów:
- Użyj polecenia mlflow.set_experiment().
- Użyj parametru
experiment_id
w poleceniu mlflow.start_run(). - Ustaw jedną ze zmiennych środowiskowych MLflow MLFLOW_EXPERIMENT_NAME lub MLFLOW_EXPERIMENT_ID.
Jeśli nie ustawiono aktywnego eksperymentu, przebiegi są rejestrowane w eksperymencie notesu.
Aby zarejestrować wyniki eksperymentu na zdalnym serwerze śledzenia MLflow w obszarze roboczym innym niż ten, w którym uruchamiasz eksperyment, ustaw identyfikator URI śledzenia, aby odwoływać się do zdalnego obszaru roboczego za mlflow.set_tracking_uri()
pomocą polecenia , i ustawić ścieżkę do eksperymentu w zdalnym obszarze roboczym przy użyciu polecenia mlflow.set_experiment()
.
mlflow.set_tracking_uri(<uri-of-remote-workspace>)
mlflow.set_experiment("path to experiment in remote workspace")
Jeśli eksperymenty są uruchamiane lokalnie i chcesz rejestrować wyniki eksperymentów na serwerze śledzenia MLflow usługi Databricks, podaj wystąpienie obszaru roboczego usługi Databricks (DATABRICKS_HOST
) i osobisty token dostępu usługi Databricks (DATABRICKS_TOKEN
). Następnie możesz ustawić identyfikator URI śledzenia, aby odwoływać się do obszaru roboczego za mlflow.set_tracking_uri()
pomocą polecenia , i ustawić ścieżkę do eksperymentu przy użyciu polecenia mlflow.set_experiment()
. Aby uzyskać szczegółowe informacje na temat tego, gdzie można znaleźć wartości zmiennych DATABRICKS_HOST
środowiskowych iDATABRICKS_TOKEN
, zobacz Perform Azure Databricks personal access token authentication (Wykonywanie uwierzytelniania osobistego tokenu dostępu w usłudze Azure Databricks).
W poniższym przykładzie kodu pokazano ustawienie następujących wartości:
os.environ["DATABRICKS_HOST"] = "https://dbc-1234567890123456.cloud.databricks.com" # set to your server URI
os.environ["DATABRICKS_TOKEN"] = "dapixxxxxxxxxxxxx"
mlflow.set_tracking_uri("databricks")
mlflow.set_experiment("/your-experiment")
Przykładowy notes rejestrowania
W tym notesie pokazano, jak rejestrować przebiegi do eksperymentu notesu i eksperymentu obszaru roboczego. 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 uzyskać informacje na temat wyświetlania zarejestrowanych przebiegów, zobacz Wyświetlanie eksperymentu notesu i Wyświetlanie eksperymentu obszaru roboczego.
Dziennik MLflow uruchamia notes
Możesz użyć języka MLflow Python, Java lub Scala oraz interfejsów API języka R do uruchamiania przebiegów i rejestrowania danych przebiegu. Aby uzyskać szczegółowe informacje, zobacz przykładowe notesy MLflow.
Uzyskiwanie dostępu do serwera śledzenia MLflow spoza usługi Azure Databricks
Możesz również zapisywać i odczytywać z serwera śledzenia spoza usługi Azure Databricks, na przykład przy użyciu interfejsu wiersza polecenia platformy MLflow. Zobacz Uzyskiwanie dostępu do serwera śledzenia MLflow spoza usługi Azure Databricks.
Programowe analizowanie przebiegów platformy MLflow
Dostęp do danych uruchamiania platformy MLflow można uzyskać programowo przy użyciu następujących dwóch interfejsów API ramki danych:
- Interfejs API search_runs klienta języka Python MLflow zwraca ramkę danych biblioteki 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 w przypadku każdego przebiegu, nawet jeśli uruchomisz przebieg 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. Ogólnie rzecz biorąc, 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 ponownej partycjonowania i sortowaniaWithinPartitions.
Przykłady śledzenia MLflow
W poniższych notesach pokazano, jak wytrenować kilka typów modeli i śledzić dane treningowe w usłudze MLflow oraz jak przechowywać dane śledzenia w usłudze Delta Lake.
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