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:
- Pokud chcete sledovat experimenty spuštěné v Azure Databricks, přečtěte si téma Sledování experimentů Azure Databricks ML pomocí MLflow a Azure Machine Learning.
- Pokud chcete sledovat experimenty spuštěné ve službě Azure Synapse Analytics, přečtěte si téma Sledování experimentů Azure Synapse Analytics ML pomocí MLflow a Azure Machine Learning.
Požadavky
Máte předplatné Azure s bezplatnou nebo placenou verzí služby Azure Machine Learning.
Pokud chcete spouštět příkazy Azure CLI a Pythonu, nainstalujte Azure CLI v2 a sadu Azure Machine Learning SDK v2 pro Python. Rozšíření
ml
pro Azure CLI se automaticky nainstaluje při prvním spuštění příkazu Azure Machine Learning CLI.
Nainstalujte balíček MLflow SDK
mlflow
a modul plug-in Azure Machine Learningazureml-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:
Na stránce Úlohy v pracovním prostoru vyberte název experimentu.
Na stránce podrobností experimentu vyberte kartu Metriky .
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í.
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.
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.