Konfigurera MLflow för Azure Machine Learning
Den här artikeln beskriver hur du kan konfigurera MLflow för att ansluta till en Azure Mašinsko učenje-arbetsyta för spårning, register och distribution.
Azure Mašinsko učenje arbetsytor är MLflow-kompatibla, vilket innebär att de kan fungera som en MLflow-server utan någon extra konfiguration. Varje arbetsyta har en MLflow-spårnings-URI som MLflow kan använda för att ansluta till arbetsytan. Azure Mašinsko učenje arbetsytor har redan konfigurerats för att fungera med MLflow, så ingen extra konfiguration krävs.
Men om du arbetar utanför Azure Mašinsko učenje (till exempel din lokala dator, Azure Synapse Analytics eller Azure Databricks) måste du konfigurera MLflow så att det pekar på arbetsytan.
Viktigt!
När du kör på Azure Compute (Azure Mašinsko učenje Notebooks, Jupyter Notebooks som finns på Azure Mašinsko učenje beräkningsinstanser eller jobb som körs i Azure Mašinsko učenje beräkningskluster) behöver du inte konfigurera spårnings-URI:n. Den konfigureras automatiskt åt dig.
Förutsättningar
Du behöver följande förutsättningar för att följa den här självstudien:
Installera MLflow SDK-paketet
mlflow
och Azure Mašinsko učenje-plugin-programmet för MLflowazureml-mlflow
.pip install mlflow azureml-mlflow
Dricks
Du kan använda
mlflow-skinny
paketet, som är ett enkelt MLflow-paket utan SQL-lagring, server, användargränssnitt eller datavetenskapsberoenden.mlflow-skinny
rekommenderas för användare som främst behöver MLflows spårnings- och loggningsfunktioner utan att importera hela sviten med funktioner, inklusive distributioner.En Azure Machine Learning-arbetsyta. Du kan skapa en genom att följa självstudien Skapa maskininlärningsresurser.
Om du utför fjärrspårning (d.v.s. spårningsexperiment som körs utanför Azure Mašinsko učenje) konfigurerar du MLflow så att det pekar på spårnings-URI:n för din Azure Mašinsko učenje-arbetsyta. Mer information om hur du ansluter MLflow till din arbetsyta finns i Konfigurera MLflow för Azure Mašinsko učenje.
Konfigurera URI för MLflow-spårning
Om du vill ansluta MLflow till en Azure Mašinsko učenje-arbetsyta behöver du spårnings-URI:n för arbetsytan. Varje arbetsyta har en egen spårnings-URI och har protokollet azureml://
.
Hämta spårnings-URI:n för din arbetsyta:
GÄLLER FÖR:
Azure CLI ml-tillägget v2 (aktuellt)
Logga in och konfigurera din arbetsyta:
az account set --subscription <subscription> az configure --defaults workspace=<workspace> group=<resource-group> location=<location>
Du kan hämta spårnings-URI:n med kommandot
az ml workspace
:az ml workspace show --query mlflow_tracking_uri
Konfigurera spårnings-URI:n:
Sedan pekar metoden
set_tracking_uri()
MLflow-spårnings-URI:n till den URI:n.import mlflow mlflow.set_tracking_uri(mlflow_tracking_uri)
Dricks
När du arbetar med delade miljöer, till exempel ett Azure Databricks-kluster, Azure Synapse Analytics-kluster eller liknande, är det användbart att ange miljövariabeln
MLFLOW_TRACKING_URI
på klusternivå för att automatiskt konfigurera MLflow-spårnings-URI:n så att den pekar på Azure Mašinsko učenje för alla sessioner som körs i klustret i stället för att göra det per session.
Konfigurera autentisering
När spårningen har angetts måste du också konfigurera autentiseringsmetoden för den associerade arbetsytan. Som standard utför Azure Mašinsko učenje-plugin-programmet för MLflow interaktiv autentisering genom att öppna standardwebbläsaren för att fråga efter autentiseringsuppgifter.
Azure Mašinsko učenje-plugin-programmet för MLflow stöder flera autentiseringsmekanismer via paketet azure-identity
, som installeras som ett beroende för plugin-programmet azureml-mlflow
. Följande autentiseringsmetoder provas en efter en tills en av dem lyckas:
- Miljö: Läser kontoinformation som anges via miljövariabler och använder den för att autentisera.
- Hanterad identitet: Om programmet distribueras till en Azure-värd med hanterad identitet aktiverat autentiseras det med det.
- Azure CLI: Om en användare loggar in via Azure CLI-kommandot
az login
autentiseras den som den användaren. - Azure PowerShell: Om en användare loggar in via Azure PowerShells kommando autentiseras
Connect-AzAccount
den som den användaren. - Interaktiv webbläsare: Autentiserar en användare interaktivt via standardwebbläsaren.
För interaktiva jobb där en användare är ansluten till sessionen kan du förlita dig på interaktiv autentisering och därför krävs ingen ytterligare åtgärd.
Varning
Interaktiv webbläsarautentisering blockerar kodkörning när du frågar efter autentiseringsuppgifter. Det är inte ett lämpligt alternativ för autentisering i obevakade miljöer som träningsjobb. Vi rekommenderar att du konfigurerar annat autentiseringsläge.
För de scenarier där obevakad körning krävs måste du konfigurera ett huvudnamn för tjänsten för att kommunicera med Azure Mašinsko učenje.
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>"
Dricks
När du arbetar med delade miljöer rekommenderar vi att du konfigurerar dessa miljövariabler vid beräkningen. Vi rekommenderar att du hanterar dem som hemligheter i en instans av Azure Key Vault när det är möjligt. I Azure Databricks kan du till exempel använda hemligheter i miljövariabler enligt följande i klusterkonfigurationen: AZURE_CLIENT_SECRET={{secrets/<scope-name>/<secret-name>}}
. Se Referens till en hemlighet i en miljövariabel för hur du gör det i Azure Databricks eller se liknande dokumentation på din plattform.
Om du hellre vill använda ett certifikat i stället för en hemlighet kan du konfigurera miljövariablerna AZURE_CLIENT_CERTIFICATE_PATH
till sökvägen till en PEM
eller PKCS12
certifikatfilen (inklusive privat nyckel) och AZURE_CLIENT_CERTIFICATE_PASSWORD
med lösenordet för certifikatfilen, om det finns några.
Konfigurera auktoriserings- och behörighetsnivåer
Vissa standardroller som AzureML Data Scientist eller Deltagare är redan konfigurerade för att utföra MLflow-åtgärder på en Azure Mašinsko učenje-arbetsyta. Om du använder en anpassad roll behöver du följande behörigheter:
Så här använder du MLflow-spårning:
Microsoft.MachineLearningServices/workspaces/experiments/*
Microsoft.MachineLearningServices/workspaces/jobs/*
Så här använder du MLflow-modellregistret:
Microsoft.MachineLearningServices/workspaces/models/*/*
Information om hur du beviljar åtkomst för tjänstens huvudnamn som du skapade eller användarkontot till din arbetsyta finns i Bevilja åtkomst.
Felsöka autentisering
MLflow försöker autentisera till Azure Mašinsko učenje vid den första åtgärden som interagerar med tjänsten, till exempel mlflow.set_experiment()
eller mlflow.start_run()
. Om du hittar problem eller oväntade autentiseringsprompter under processen kan du öka loggningsnivån för att få mer information om felet:
import logging
logging.getLogger("azure").setLevel(logging.DEBUG)
Ange experimentnamn (valfritt)
Alla MLflow-körningar loggas till det aktiva experimentet. Som standard loggas körningar till ett experiment med namnet Default
som skapas automatiskt åt dig. Du kan konfigurera experimentet där spårning sker.
Dricks
När du skickar jobb med Azure Mašinsko učenje CLI v2 kan du ange experimentnamnet med hjälp av egenskapen experiment_name
i YAML-definitionen för jobbet. Du behöver inte konfigurera det i träningsskriptet. Mer information finns i YAML: visningsnamn, experimentnamn, beskrivning och taggar .
Konfigurera experimentet med hjälp av MLflow-kommandot mlflow.set_experiment()
.
experiment_name = 'experiment_with_mlflow'
mlflow.set_experiment(experiment_name)
Stöd för icke-offentliga Azure-moln
Azure Mašinsko učenje-plugin-programmet för MLflow konfigureras som standard för att fungera med det globala Azure-molnet. Du kan dock konfigurera det Azure-moln som du använder genom att ange miljövariabeln AZUREML_CURRENT_CLOUD
.
import os
os.environ["AZUREML_CURRENT_CLOUD"] = "AzureChinaCloud"
Du kan identifiera molnet du använder med följande Azure CLI-kommando:
az cloud list
Det aktuella molnet har värdet IsActive
inställt på True
.
Nästa steg
Nu när din miljö är ansluten till din arbetsyta i Azure Mašinsko učenje kan du börja arbeta med den.
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för