Sdílet prostřednictvím


Sledování experimentů a modelů pomocí MLflow

Sledování je proces ukládání relevantních informací o experimentech. V tomto článku se dozvíte, jak používat MLflow pro sledování experimentů a běhů v pracovních prostorech Azure Machine Learning.

Některé metody dostupné v rozhraní API MLflow nemusí být dostupné, když používáte Azure Machine Learning. Pro podrobnosti o podporovaných a nepodporovaných operacích se podívejte na matrici podpory pro dotazování spuštění a experimentů. Informace o podporovaných funkcích MLflow ve službě Azure Machine Learning najdete také v článku MLflow a Azure Machine Learning.

Poznámka:

Požadavky

  • Nainstalujte balíček MLflow SDK mlflow a modul plug-in Azure Machine Learning azureml-mlflow pro MLflow:

    pip install mlflow azureml-mlflow
    

    Návod

    Můžete použít balíček mlflow-skinny, který je lehký balíček MLflow bez závislostí na sql storage, serveru, uživatelském rozhraní nebo datové vědě. Tento balíček doporučujeme uživatelům, kteří primárně potřebují funkce sledování a protokolování MLflow, ale ne úplnou sadu funkcí, včetně nasazení.

  • Vytvořte pracovní prostor Azure Machine Learning. Pokud chcete vytvořit pracovní prostor, přečtěte si téma Vytvoření prostředků, které potřebujete, abyste mohli začít. Zkontrolujte přístupová oprávnění , která potřebujete k provádění operací MLflow ve vašem pracovním prostoru.

  • Pokud chcete provádět vzdálené sledování nebo sledovat experimenty spuštěné mimo Azure Machine Learning, nakonfigurujte MLflow tak, aby odkazovali na identifikátor URI sledování pracovního prostoru Azure Machine Learning. Další informace o připojení MLflow k pracovnímu prostoru najdete v tématu Konfigurace MLflow pro Azure Machine Learning.

Konfigurace experimentu

MLflow uspořádává informace v experimentech a bězích. Spuštění se nazývají úlohy ve službě Azure Machine Learning. Ve výchozím nastavení se zapisují protokoly do automaticky vytvořeného experimentu s názvem Výchozí, ale můžete určit, který experiment chcete sledovat.

Pro interaktivní trénování, například v poznámkovém bloku Jupyter, použijte příkaz mlflow.set_experiment()MLflow . Například následující fragment kódu konfiguruje experiment:

experiment_name = 'hello-world-example'
mlflow.set_experiment(experiment_name)

Konfigurace spuštění

Azure Machine Learning sleduje trénovací úlohy v tom, co MLflow nazývá běhy. Pomocí běhů zaznamenejte veškeré zpracování, které vaše úloha provádí.

Když pracujete interaktivně, MLflow začne sledovat trénovací rutinu hned po protokolování informací, které vyžadují aktivní spuštění. Pokud je například povolená funkce automatického protokolování MLflow, spustí se sledování MLflow při protokolování metriky nebo parametru nebo spuštění trénovacího cyklu.

Obvykle je ale užitečné spustit spuštění explicitně, zejména pokud chcete zachytit celkový čas experimentu v poli Doba trvání . Chcete-li explicitně spustit proces, použijte mlflow.start_run().

Bez ohledu na to, jestli spuštění spustíte ručně nebo ne, budete nakonec muset spuštění zastavit, aby MLflow věděl, že je spuštění experimentu hotové a může označit stav spuštění jako Dokončeno. Chcete-li zastavit spuštění, použijte mlflow.end_run().

Následující kód spustí spuštění ručně a ukončí ho na konci poznámkového bloku:

mlflow.start_run()

# Your code

mlflow.end_run()

Nejlepší je spustit běhy ručně, abyste nezapomněli je ukončit. Paradigma správce kontextu můžete použít k tomu, abyste si vzpomněli na ukončení spuštění.

with mlflow.start_run() as run:
    # Your code

Když spustíte nové spuštění pomocí mlflow.start_run(), může být užitečné zadat run_name parametr, který se později přeloží na název spuštění v uživatelském rozhraní služby Azure Machine Learning. Tento postup vám pomůže rychleji identifikovat běh.

with mlflow.start_run(run_name="hello-world-example") as run:
    # Your code

Povolte automatické logování MLflow

Metriky, parametry a soubory můžete protokolovat ručně pomocí MLflow a také můžete spoléhat na funkci automatického protokolování MLflow. Každá architektura strojového učení podporovaná MLflow určuje, co se má automaticky sledovat.

Pokud chcete povolit automatické protokolování, vložte před trénovací kód následující kód:

mlflow.autolog()

Zobrazení metrik a artefaktů v pracovním prostoru

Metriky a artefakty z protokolování MLflow se sledují ve vašem pracovním prostoru. Můžete je zobrazit a získat k nim přístup v nástroji Azure Machine Learning Studio nebo k nim přistupovat prostřednictvím kódu programu pomocí sady MLflow SDK.

Chcete-li zobrazit metriky a artefakty ve Studiu:

  1. Na stránce Úlohy v pracovním prostoru vyberte název experimentu.

  2. Na stránce podrobností experimentu vyberte kartu Metriky .

  3. Vyberte protokolované metriky pro vykreslení grafů na pravé straně stránky. Grafy můžete přizpůsobit použitím vyhlazení, změnou barvy nebo vykreslením více metrik v jednom grafu. Můžete také změnit velikost a změnit uspořádání rozložení.

  4. Po vytvoření požadovaného zobrazení ho uložte pro budoucí použití a nasdílejte ho s ostatními členy týmu pomocí přímého odkazu.

    Snímek obrazovky zobrazení metrik, které zobrazuje seznam metrik a grafy vytvořené z metrik

Pokud chcete získat přístup k metrikám, parametrům a artefaktům prostřednictvím kódu programu pomocí sady MLflow SDK, použijte 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)

Návod

Předchozí příklad vrátí pouze poslední hodnotu dané metriky. Pokud chcete načíst všechny hodnoty dané metriky, použijte metodu mlflow.get_metric_history . Další informace o načítání hodnot metrik najdete v tématu Získání parametrů a metrik ze spuštění.

Pokud chcete stáhnout artefakty, které jste protokolovali, například soubory a modely, použijte mlflow.artifacts.download_artifacts().

mlflow.artifacts.download_artifacts(run_id="<RUN_ID>", artifact_path="helloworld.txt")

Další informace o tom, jak načíst nebo porovnat informace z experimentů a spuštění ve službě Azure Machine Learning pomocí MLflow, najdete v tématu Dotazování a porovnání experimentů a spuštění pomocí MLflow.