Konfigurace MLflow pro Azure Machine Learning
Tento článek vysvětluje, jak nakonfigurovat MLflow pro připojení k pracovnímu prostoru Azure Machine Učení pro sledování, registry a nasazení.
Pracovní prostory Azure Machine Učení jsou kompatibilní s MLflow, což znamená, že můžou fungovat jako server MLflow bez jakékoli další konfigurace. Každý pracovní prostor má identifikátor URI sledování MLflow, který MLflow může použít pro připojení k pracovnímu prostoru. Pracovní prostory Azure Machine Učení jsou už nakonfigurované tak, aby fungovaly s MLflow, takže není nutná žádná další konfigurace.
Pokud ale pracujete mimo azure Machine Učení (například místní počítač, Azure Synapse Analytics nebo Azure Databricks), musíte nakonfigurovat MLflow tak, aby odkazovat na pracovní prostor.
Důležité
Při spouštění ve službě Azure Compute (poznámkové bloky Učení Azure, poznámkové bloky Jupyter hostované na výpočetních instancích Azure Učení nebo úlohy spuštěné na výpočetních clusterech Azure Machine Učení), nemusíte konfigurovat identifikátor URI pro sledování. Automaticky se nakonfiguruje za vás.
Požadavky
K provedení tohoto kurzu potřebujete následující požadavky:
Nainstalujte balíček
mlflow
MLflow SDK a modul plug-in Azure Machine Učení pro MLflowazureml-mlflow
.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.mlflow-skinny
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í.Pracovní prostor služby Azure Machine Learning. Můžete ho vytvořit podle kurzu Vytvoření prostředků strojového učení.
Pokud provádíte vzdálené sledování (tj. sledování experimentů spuštěných mimo azure Machine Učení), nakonfigurujte MLflow tak, aby odkazovali na identifikátor URI sledování vašeho pracovního prostoru azure machine Učení. Další informace o připojení MLflow k pracovnímu prostoru najdete v tématu Konfigurace MLflow pro azure machine Učení.
Konfigurace identifikátoru URI sledování MLflow
Pokud chcete připojit MLflow k pracovnímu prostoru Azure Machine Učení, potřebujete identifikátor URI pro sledování pracovního prostoru. Každý pracovní prostor má vlastní identifikátor URI pro sledování a má protokol azureml://
.
Získejte identifikátor URI sledování pro váš pracovní prostor:
PLATÍ PRO:Rozšíření Azure CLI ml v2 (aktuální)
Přihlaste se a nakonfigurujte pracovní prostor:
az account set --subscription <subscription> az configure --defaults workspace=<workspace> group=<resource-group> location=<location>
Identifikátor URI sledování můžete získat pomocí
az ml workspace
příkazu:az ml workspace show --query mlflow_tracking_uri
Konfigurace identifikátoru URI sledování:
Pak metoda
set_tracking_uri()
odkazuje identifikátor URI sledování MLflow na tento identifikátor URI.import mlflow mlflow.set_tracking_uri(mlflow_tracking_uri)
Tip
Při práci na sdílených prostředích, jako je cluster Azure Databricks, cluster Azure Synapse Analytics nebo podobný, je užitečné nastavit proměnnou
MLFLOW_TRACKING_URI
prostředí na úrovni clusteru tak, aby automaticky nakonfiguroval identifikátor URI pro sledování MLflow tak, aby odkazoval na azure Machine Učení pro všechny relace spuštěné v clusteru, a ne pro jednotlivé relace.
Konfigurace ověřování
Jakmile je sledování nastavené, musíte také nakonfigurovat metodu ověřování pro přidružený pracovní prostor. Ve výchozím nastavení modul plug-in Azure Machine Učení pro MLflow provádí interaktivní ověřování otevřením výchozího prohlížeče, aby se zobrazila výzva k zadání přihlašovacích údajů.
Modul plug-in Azure Machine Učení pro MLflow podporuje prostřednictvím balíčku azure-identity
několik mechanismů ověřování, které se instaluje jako závislost modulu plug-in azureml-mlflow
. Následující metody ověřování se zkusí jeden po druhém, dokud jeden z nich neuspěje:
- Prostředí: Čte informace o účtu zadané prostřednictvím proměnných prostředí a používá je k ověření.
- Spravovaná identita: Pokud je aplikace nasazená na hostitele Azure s povolenou spravovanou identitou, ověří se s ní.
- Azure CLI: Pokud se uživatel přihlásí pomocí příkazu Azure CLI
az login
, ověří se jako tento uživatel. - Azure PowerShell: Pokud se uživatel přihlásí pomocí příkazu Azure PowerShellu
Connect-AzAccount
, ověří se jako uživatel. - Interaktivní prohlížeč: Interaktivně ověřuje uživatele prostřednictvím výchozího prohlížeče.
U interaktivních úloh, kde je uživatel připojený k relaci, můžete spoléhat na interaktivní ověřování, a proto není potřeba provádět žádnou další akci.
Upozorňující
Interaktivní ověřování prohlížeče zablokuje provádění kódu při zobrazení výzvy k zadání přihlašovacích údajů. Není to vhodná možnost pro ověřování v bezobslužných prostředích, jako jsou trénovací úlohy. Doporučujeme nakonfigurovat jiný režim ověřování.
V případě, že se vyžaduje bezobslužné spuštění, budete muset nakonfigurovat instanční objekt pro komunikaci se službou Azure Machine Učení.
import os
os.environ["AZURE_TENANT_ID"] = "<AZURE_TENANT_ID>"
os.environ["AZURE_CLIENT_ID"] = "<AZURE_CLIENT_ID>"
os.environ["AZURE_CLIENT_SECRET"] = "<AZURE_CLIENT_SECRET>"
Tip
Při práci na sdílených prostředích je vhodné nakonfigurovat tyto proměnné prostředí na výpočetních prostředcích. Osvědčeným postupem je spravovat jako tajné kódy v instanci služby Azure Key Vault, kdykoli je to možné. V Azure Databricks můžete například použít tajné kódy v proměnných prostředí následujícím způsobem v konfiguraci clusteru: AZURE_CLIENT_SECRET={{secrets/<scope-name>/<secret-name>}}
Informace o tom, jak to udělat v Azure Databricks, najdete v tématu Referenční informace o tajném kódu v proměnné prostředí nebo se podívejte na podobnou dokumentaci ve vaší platformě.
Pokud byste raději používali certifikát místo tajného klíče, můžete nakonfigurovat proměnné AZURE_CLIENT_CERTIFICATE_PATH
prostředí na cestu k PEM
souboru nebo PKCS12
souboru certifikátu (včetně privátního klíče) a AZURE_CLIENT_CERTIFICATE_PASSWORD
s heslem souboru certifikátu( pokud existuje).
Konfigurace úrovní autorizace a oprávnění
Některé výchozí role, jako je AzureML Datoví vědci nebo Přispěvatel, jsou už nakonfigurované pro provádění operací MLflow v pracovním prostoru Azure Machine Učení. Pokud používáte vlastní roli, potřebujete následující oprávnění:
Použití sledování MLflow:
Microsoft.MachineLearningServices/workspaces/experiments/*
Microsoft.MachineLearningServices/workspaces/jobs/*
Použití registru modelů MLflow:
Microsoft.MachineLearningServices/workspaces/models/*/*
Informace o udělení přístupu k instančnímu objektu, který jste vytvořili nebo uživatelský účet pro váš pracovní prostor, najdete v tématu Udělení přístupu.
Řešení potíží s ověřováním
MLflow se pokusí ověřit ve službě Azure Machine Učení při první operaci, která komunikuje se službou, například mlflow.set_experiment()
nebo mlflow.start_run()
. Pokud během procesu zjistíte problémy nebo neočekávané výzvy k ověření, můžete zvýšit úroveň protokolování, abyste získali další podrobnosti o chybě:
import logging
logging.getLogger("azure").setLevel(logging.DEBUG)
Nastavení názvu experimentu (volitelné)
Všechna spuštění MLflow se protokolují do aktivního experimentu. Ve výchozím nastavení se spuštění protokolují do experimentu s názvem Default
, který se automaticky vytvoří za vás. Můžete nakonfigurovat experiment, ve kterém probíhá sledování.
Tip
Při odesílání úloh pomocí Azure Machine Učení CLI v2 můžete název experimentu nastavit pomocí vlastnosti experiment_name
v definici YAML úlohy. Nemusíte ho konfigurovat ve svém trénovacím skriptu. Podrobnosti najdete v YAML: zobrazovaný název, název experimentu, popis a značky .
Nakonfigurujte experiment pomocí příkazu mlflow.set_experiment()
MLflow .
experiment_name = 'experiment_with_mlflow'
mlflow.set_experiment(experiment_name)
Podpora nepublikovaných cloudů Azure
Modul plug-in Azure Machine Učení pro MLflow je standardně nakonfigurovaný tak, aby fungoval s globálním cloudem Azure. Cloud Azure, který používáte, ale můžete nakonfigurovat nastavením proměnné AZUREML_CURRENT_CLOUD
prostředí.
import os
os.environ["AZUREML_CURRENT_CLOUD"] = "AzureChinaCloud"
Cloud, který používáte, můžete identifikovat pomocí následujícího příkazu Azure CLI:
az cloud list
Aktuální cloud má hodnotu IsActive
nastavenou na True
.
Další kroky
Teď, když je vaše prostředí připojené k vašemu pracovnímu prostoru ve službě Azure Machine Učení, můžete s ním začít pracovat.