Udostępnij za pośrednictwem


Ś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.

Wymagania wstępne

  • Zainstaluj pakiet zestawu MLflow SDK mlflow i wtyczkę usługi Azure Machine Learning azureml-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:

  1. Na stronie Zadania w obszarze roboczym wybierz nazwę eksperymentu.

  2. Na stronie szczegółów eksperymentu wybierz kartę Metryki .

  3. 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.

  4. 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.

    Zrzut ekranu przedstawiający widok metryk przedstawiający listę metryk i wykresy utworzone na podstawie metryk.

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.