Konfigurace MLflow pro Azure Machine Learning
Tento článek vysvětluje, jak nakonfigurovat MLflow pro připojení k pracovnímu prostoru Služby Azure Machine Learning pro sledování, správu registru a nasazení.
Pracovní prostory Azure Machine Learning jsou kompatibilní s MLflow, což znamená, že můžou fungovat jako servery 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 Learning jsou už nakonfigurované tak, aby fungovaly s MLflow, takže není nutná žádná další konfigurace.
Pokud ale pracujete mimo Azure Machine Learning, musíte nakonfigurovat MLflow tak, aby odkazovat na pracovní prostor. Ovlivněná prostředí zahrnují místní počítač, Azure Synapse Analytics a Azure Databricks.
Důležité
Pokud používáte výpočetní infrastrukturu Azure, nemusíte konfigurovat identifikátor URI pro sledování. Automaticky se nakonfiguruje za vás. Prostředí s automatickou konfigurací zahrnují poznámkové bloky Azure Machine Learning, poznámkové bloky Jupyter hostované ve výpočetních instancích služby Azure Machine Learning a úlohy, které běží na výpočetních clusterech Azure Machine Learning.
Požadavky
Balíček MLflow SDK
mlflow
a modul plug-in Azure Machine Learningazureml-mlflow
pro MLflow. K instalaci tohoto softwaru můžete použít následující příkaz:pip install mlflow azureml-mlflow
Tip
mlflow
Místo , zvažte použitímlflow-skinny
. Tento balíček je jednoduchý balíček MLflow bez závislostí úložiště SQL, serveru, uživatelského rozhraní nebo datových věd. Doporučuje se uživatelům, kteří primárně potřebují funkce sledování a protokolování MLflow, ale nechtějí importovat celou sadu funkcí, včetně nasazení.Pracovní prostor služby 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.
Přístupová oprávnění pro provádění operací MLflow ve vašem pracovním prostoru Seznam operací a požadovaných oprávnění najdete v tématu Operace MLflow.
Konfigurace identifikátoru URI sledování MLflow
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.
Pokud chcete připojit MLflow k pracovnímu prostoru Azure Machine Learning, potřebujete identifikátor URI sledování pracovního prostoru. Každý pracovní prostor má vlastní identifikátor URI pro sledování, který začíná protokolem 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-ID> az configure --defaults workspace=<workspace-name> group=<resource-group-name> location=<location>
Pomocí příkazu získejte identifikátor URI
az ml workspace
pro sledování:az ml workspace show --query mlflow_tracking_uri
Nakonfigurujte identifikátor URI sledování:
set_tracking_uri()
Pomocí metody nastavte identifikátor URI sledování MLflow na identifikátor URI sledování vašeho pracovního prostoru.import mlflow mlflow.set_tracking_uri(mlflow_tracking_uri)
Tip
Některé scénáře zahrnují práci ve sdíleném prostředí, jako je cluster Azure Databricks nebo cluster Azure Synapse Analytics. V těchto případech je vhodné nastavit
MLFLOW_TRACKING_URI
proměnnou prostředí na úrovni clusteru, a ne pro každou relaci. Nastavení proměnné na úrovni clusteru automaticky nakonfiguruje identifikátor URI pro sledování MLflow tak, aby ukazoval na Azure Machine Learning pro všechny relace v clusteru.
Konfigurace ověřování
Po nastavení sledování musíte také nakonfigurovat metodu ověřování pro přidružený pracovní prostor.
Ve výchozím nastavení modul plug-in Azure Machine Learning 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 ale podporuje i několik dalších mechanismů ověřování. Balíček azure-identity
tuto podporu poskytuje. Tento balíček se nainstaluje jako závislost modulu azureml-mlflow
plug-in.
Proces ověřování zkouší následující metody, jeden po druhém, dokud jeden nebude úspěšný:
- Prostředí: Informace o účtu zadané prostřednictvím proměnných prostředí se čtou a používají k ověřování.
- Spravovaná identita: Pokud je aplikace nasazená na hostitele Azure s povolenou spravovanou identitou, použije se spravovaná identita k ověřování.
- Azure CLI: Pokud k přihlášení použijete příkaz Azure CLI
az login
, použijí se vaše přihlašovací údaje k ověřování. - Azure PowerShell: Pokud k přihlášení použijete příkaz Azure PowerShellu
Connect-AzAccount
, použijí se vaše přihlašovací údaje k ověřování. - Interaktivní prohlížeč: Uživatel je interaktivně ověřen prostřednictvím výchozího prohlížeče.
V případě interaktivních úloh, kde je uživatel připojený k relaci, můžete spoléhat na interaktivní ověřování. Nevyžaduje se žádná další akce.
Upozorňující
Interaktivní ověřování v prohlížeči blokuje provádění kódu při zobrazení výzvy k zadání přihlašovacích údajů. Tento přístup není vhodný pro ověřování v bezobslužných prostředích, jako jsou trénovací úlohy. V těchto prostředích doporučujeme nakonfigurovat jiný režim ověřování.
V případě scénářů, které vyžadují bezobslužné spuštění, je potřeba nakonfigurovat instanční objekt pro komunikaci se službou Azure Machine Learning. Informace o vytvoření instančního objektu najdete v tématu Konfigurace instančního objektu.
V následujícím kódu použijte ID tenanta, ID klienta a tajný klíč klienta instančního objektu:
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 ve sdílených prostředích doporučujeme nakonfigurovat tyto proměnné prostředí na úrovni výpočetních prostředků. Osvědčeným postupem je spravovat jako tajné kódy v instanci služby Azure Key Vault.
Například v konfiguraci clusteru Azure Databricks můžete tajné kódy použít v proměnných prostředí následujícím způsobem: AZURE_CLIENT_SECRET={{secrets/<scope-name>/<secret-name>}}
. Další informace o implementaci tohoto přístupu v Azure Databricks najdete v tématu Odkazování na tajný kód v proměnné prostředí nebo dokumentaci pro vaši platformu.
Pokud byste raději použili certifikát než tajný klíč, můžete nakonfigurovat následující proměnné prostředí:
- Nastavte
AZURE_CLIENT_CERTIFICATE_PATH
cestu k souboru, který obsahuje dvojici certifikátů a privátních klíčů ve formátu PEM (Privacy Enhanced Mail) nebo Public-Key Cryptography Standards 12 (PKCS #12). - Nastavte
AZURE_CLIENT_CERTIFICATE_PASSWORD
heslo souboru certifikátu, pokud používá heslo.
Konfigurace úrovní autorizace a oprávnění
Některé výchozí role, jako je AzureML Datoví vědci a Přispěvatel, jsou už nakonfigurované pro provádění operací MLflow v pracovním prostoru Azure Machine Learning. 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/*/*
Pokud chcete zjistit, jak udělit přístup k pracovnímu prostoru instančnímu objektu, který vytvoříte nebo ke svému uživatelskému účtu, přečtěte si téma Udělení přístupu.
Řešení potíží s ověřováním
MLflow se pokusí ověřit ve službě Azure Machine Learning při první operaci, která komunikuje se službou, například mlflow.set_experiment()
nebo mlflow.start_run()
. Pokud během procesu dojde k problémům nebo neočekávaným výzev 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. Experiment, který se používá ke sledování, můžete nakonfigurovat.
Tip
Když k odesílání úloh použijete Rozhraní příkazového řádku služby Azure Machine Learning v2, můžete název experimentu nastavit pomocí experiment_name
vlastnosti v definici YAML úlohy. V trénovacím skriptu ho nemusíte konfigurovat. Další informace najdete v YAML : zobrazovaný název, název experimentu, popis a značky.
Ke konfiguraci experimentu použijte příkaz MLflow mlflow.set_experiment()
.
experiment_name = "experiment_with_mlflow"
mlflow.set_experiment(experiment_name)
Konfigurace podpory pro neveřejný cloud Azure
Modul plug-in Azure Machine Learning 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 AZUREML_CURRENT_CLOUD
proměnné 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
.
Související obsah
Teď, když je vaše prostředí připojené k vašemu pracovnímu prostoru ve službě Azure Machine Learning, můžete s ním začít pracovat.