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 ke sledování experimentů a spuštění v pracovních prostorech Azure Machine Learning.

Některé metody dostupné v rozhraní API MLflow nemusí být při připojení ke službě Azure Machine Learning dostupné. Podrobnosti o podporovaných a nepodporovaných operacích najdete v matici 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 následujícím způsobem:

    pip install mlflow azureml-mlflow
    

    Tip

    Můžete použít mlflow-skinny balíček, což je jednoduchý balíček MLflow bez závislostí sql Storage, serveru, uživatelského rozhraní nebo datových věd. Tento balíček se doporučuje uživatelům, kteří primárně potřebují funkce sledování a protokolování MLflow bez importu celé sady 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á informace v experimentech a spuštěních. Spuštění se nazývají úlohy ve službě Azure Machine Learning. Ve výchozím nastavení se protokol spouští do automaticky vytvořeného experimentu s názvem Výchozí, ale můžete nakonfigurovat, který experiment se má 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 běží volání MLflow. Pomocí spuštění zachyťte 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 spustit spuštění explicitně, 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 ručně, abyste je nezapomněli 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

Povolení automatickéhologová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 za vás.

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 studio Azure Machine Learning nebo k nim přistupovat programově prostřednictvím sady MLflow SDK.

Zobrazení metrik a artefaktů v sadě Studio:

  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ě. 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. Jakmile vytvoříte požadované zobrazení, uložte ho 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 prostřednictvím sady MLflow SDK programově přistupovat k metrikám, parametrům a artefaktům, 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)

Tip

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.