Śledzenie eksperymentów i modeli za pomocą biblioteki MLflow
Śledzenie to proces zapisywania odpowiednich informacji o eksperymentach. Z tego artykułu dowiesz się, jak używać biblioteki MLflow do śledzenia eksperymentów i przebiegów w obszarach roboczych usługi Azure Machine Learning.
Niektóre metody dostępne w interfejsie API platformy MLflow mogą nie być dostępne po nawiązaniu połączenia z usługą Azure Machine Learning. Aby uzyskać szczegółowe informacje na temat obsługiwanych i nieobsługiwanych operacji, zobacz Macierz obsługi dla przebiegów zapytań i eksperymentów. Możesz również dowiedzieć się więcej o obsługiwanych funkcjach platformy MLflow w usłudze Azure Machine Learning, korzystając z artykułu MLflow i Azure Machine Learning.
Uwaga
- Aby śledzić eksperymenty uruchomione w usłudze Azure Databricks, zobacz Track Azure Databricks ML experiments with MLflow and Azure Machine Learning (Śledzenie eksperymentów usługi Azure Databricks ML za pomocą platformy MLflow i usługi Azure Machine Learning).
- Aby śledzić eksperymenty uruchomione w usłudze Azure Synapse Analytics, zobacz Track Azure Synapse Analytics ML experiments with MLflow and Azure Machine Learning (Śledzenie eksperymentów usługi Azure Synapse Analytics ML przy użyciu platformy MLflow i usługi Azure Machine Learning).
Wymagania wstępne
Posiadanie subskrypcji platformy Azure z bezpłatną lub płatną wersją usługi Azure Machine Learning.
Aby uruchomić polecenia interfejsu wiersza polecenia platformy Azure i języka Python, zainstaluj interfejs wiersza polecenia platformy Azure w wersji 2 i zestaw Azure Machine Learning SDK w wersji 2 dla języka Python.
ml
Rozszerzenie interfejsu wiersza polecenia platformy Azure jest instalowane automatycznie przy pierwszym uruchomieniu polecenia interfejsu wiersza polecenia usługi Azure Machine Learning.
Zainstaluj pakiet zestawu MLflow SDK
mlflow
i wtyczkę usługi Azure Machine Learningazureml-mlflow
dla biblioteki MLflow w następujący sposób:pip install mlflow azureml-mlflow
Napiwek
Możesz użyć
mlflow-skinny
pakietu, który jest lekkim pakietem MLflow bez magazynu SQL, serwera, interfejsu użytkownika lub zależności nauki o danych. Ten pakiet jest zalecany dla użytkowników, którzy potrzebują głównie funkcji śledzenia i rejestrowania MLflow bez importowania pełnego zestawu funkcji, w tym wdrożeń.Tworzenie obszaru roboczego usługi Azure Machine Learning. Aby utworzyć obszar roboczy, zobacz Tworzenie zasobów, które należy rozpocząć. Przejrzyj uprawnienia dostępu potrzebne do wykonywania operacji MLflow w obszarze roboczym.
Aby przeprowadzić zdalne śledzenie lub śledzić eksperymenty uruchomione poza usługą Azure Machine Learning, skonfiguruj rozwiązanie MLflow, aby wskazywało identyfikator URI śledzenia obszaru roboczego usługi Azure Machine Learning. Aby uzyskać więcej informacji na temat łączenia platformy MLflow z obszarem roboczym, zobacz Konfigurowanie biblioteki MLflow dla usługi Azure Machine Learning.
Konfigurowanie eksperymentu
Platforma MLflow organizuje informacje w eksperymentach i przebiegach. Uruchomienia są nazywane zadaniami w usłudze Azure Machine Learning. Domyślnie uruchamia dziennik do automatycznie utworzonego eksperymentu o nazwie Default, ale można skonfigurować eksperyment do śledzenia.
W przypadku interaktywnego szkolenia, takiego jak w notesie Jupyter, użyj polecenia mlflow.set_experiment()
MLflow . Na przykład poniższy fragment kodu konfiguruje eksperyment:
experiment_name = 'hello-world-example'
mlflow.set_experiment(experiment_name)
Konfigurowanie przebiegu
Usługa Azure Machine Learning śledzi zadania szkoleniowe w tym, co jest uruchamiane przez aplikację MLflow. Użyj przebiegów, aby przechwycić wszystkie wykonywane przez zadanie przetwarzanie.
Gdy pracujesz interaktywnie, platforma MLflow zacznie śledzić procedurę trenowania, gdy tylko rejestrujesz informacje, które wymagają aktywnego uruchomienia. Jeśli na przykład funkcja automatycznego rejestrowania usługi Mlflow jest włączona, śledzenie MLflow rozpoczyna się po zarejestrowaniu metryki lub parametru albo rozpoczęciu cyklu trenowania.
Jednak zwykle pomocne jest jawne uruchomienie przebiegu, zwłaszcza jeśli chcesz przechwycić całkowity czas eksperymentu w polu Czas trwania . Aby jawnie uruchomić przebieg, użyj polecenia mlflow.start_run()
.
Bez względu na to, czy uruchamiasz przebieg ręcznie, czy nie, w końcu musisz zatrzymać przebieg, aby usługa MLflow wiedziała, że przebieg eksperymentu jest wykonywany i może oznaczać stan przebiegu jako Ukończono. Aby zatrzymać przebieg, użyj polecenia mlflow.end_run()
.
Poniższy kod uruchamia przebieg ręcznie i kończy go na końcu notesu:
mlflow.start_run()
# Your code
mlflow.end_run()
Najlepiej jest uruchomić przebiegi ręcznie, więc nie zapomnij o ich zakończeniu. Możesz użyć paradygmatu menedżera kontekstu, aby ułatwić zapamiętanie zakończenia przebiegu.
with mlflow.start_run() as run:
# Your code
Po uruchomieniu nowego przebiegu mlflow.start_run()
za pomocą polecenia może być przydatne określenie parametru run_name
, który później przekłada się na nazwę przebiegu w interfejsie użytkownika usługi Azure Machine Learning. Ta praktyka ułatwia szybsze identyfikowanie przebiegu.
with mlflow.start_run(run_name="hello-world-example") as run:
# Your code
Włączanie automatycznego rejestrowania MLflow
Metryki, parametry i pliki można rejestrować ręcznie za pomocą biblioteki MLflow, a także korzystać z funkcji automatycznego rejestrowania WLflow . Każda platforma uczenia maszynowego obsługiwana przez platformę MLflow określa, co ma być śledzone automatycznie.
Aby włączyć automatyczne rejestrowanie, wstaw następujący kod przed kodem treningowym:
mlflow.autolog()
Wyświetlanie metryk i artefaktów w obszarze roboczym
Metryki i artefakty z rejestrowania MLflow są śledzone w obszarze roboczym. Można je wyświetlać i uzyskiwać do nich dostęp w usłudze Azure Machine Learning Studio lub uzyskać do nich dostęp programowo za pośrednictwem zestawu MLflow SDK.
Aby wyświetlić metryki i artefakty w studio:
Na stronie Zadania w obszarze roboczym wybierz nazwę eksperymentu.
Na stronie szczegółów eksperymentu wybierz kartę Metryki .
Wybierz zarejestrowane metryki, aby renderować wykresy po prawej stronie. Wykresy można dostosować, stosując wygładzenie, zmianę koloru lub kreślenie wielu metryk na jednym grafie. Możesz również zmienić rozmiar i zmienić układ.
Po utworzeniu żądanego widoku zapisz go do użycia w przyszłości i udostępnij go swoim kolegom z zespołu przy użyciu linku bezpośredniego.
Aby uzyskać dostęp do metryk, parametrów i artefaktów lub wykonywać zapytania programowo za pomocą zestawu MLflow SDK, użyj mlflow.get_run().
import mlflow
run = mlflow.get_run("<RUN_ID>")
metrics = run.data.metrics
params = run.data.params
tags = run.data.tags
print(metrics, params, tags)
Napiwek
Powyższy przykład zwraca tylko ostatnią wartość danej metryki. Aby pobrać wszystkie wartości danej metryki, użyj mlflow.get_metric_history
metody . Aby uzyskać więcej informacji na temat pobierania wartości metryk, zobacz Pobieranie parametrów i metryk z przebiegu.
Aby pobrać zarejestrowane artefakty, takie jak pliki i modele, użyj mlflow.artifacts.download_artifacts ().
mlflow.artifacts.download_artifacts(run_id="<RUN_ID>", artifact_path="helloworld.txt")
Aby uzyskać więcej informacji na temat pobierania lub porównywania informacji z eksperymentów i przebiegów w usłudze Azure Machine Learning przy użyciu biblioteki MLflow, zobacz Zapytania i porównanie eksperymentów i przebiegów za pomocą biblioteki MLflow.