Az MLflow konfigurálása az Azure Machine Learninghez
Ez a cikk bemutatja, hogyan konfigurálhatja az MLflow-t egy Azure Machine Tanulás-munkaterülethez való csatlakozásra nyomon követés, nyilvántartások és üzembe helyezés céljából.
Az Azure Machine Tanulás munkaterületek MLflow-kompatibilisek, ami azt jelenti, hogy további konfiguráció nélkül MLflow-kiszolgálóként is működhetnek. Minden munkaterület rendelkezik egy MLflow-követési URI-val, amellyel az MLflow csatlakozhat a munkaterülethez. Az Azure Machine Tanulás-munkaterületek már konfigurálva vannak az MLflow használatához, így nincs szükség további konfigurációra.
Ha azonban az Azure Machine Tanulás (például a helyi gép, az Azure Synapse Analytics vagy az Azure Databricks) kívül dolgozik, az MLflow-t úgy kell konfigurálnia, hogy a munkaterületre mutasson.
Fontos
Az Azure Compute (Azure Machine Tanulás Notebooks, Az Azure Machine Tanulás számítási példányokon vagy az Azure Machine Tanulás számítási fürtökön futó feladatok) futtatásakor nem kell konfigurálnia a nyomkövetési URI-t. Automatikusan konfigurálva van az Ön számára.
Előfeltételek
Az oktatóanyag követéséhez a következő előfeltételekre van szüksége:
Telepítse az MLflow SDK-csomagot
mlflow
és az Azure Machine Tanulás beépülő modult az MLflow-hozazureml-mlflow
.pip install mlflow azureml-mlflow
Tipp.
Használhatja a
mlflow-skinny
csomagot, amely egy egyszerű MLflow-csomag SQL Storage, kiszolgáló, felhasználói felület vagy adatelemzési függőségek nélkül.mlflow-skinny
Azoknak a felhasználóknak ajánlott, akiknek elsősorban az MLflow nyomkövetési és naplózási képességeire van szükségük anélkül, hogy importálni kellene a teljes szolgáltatáscsomagot, beleértve az üzembe helyezéseket is.Egy Azure Machine Learning-munkaterület. Létrehozhat egyet a Gépi tanulási erőforrások létrehozása oktatóanyagot követve.
- Megtekintheti, hogy milyen hozzáférési engedélyekre van szüksége az MLflow-műveletek munkaterületen való végrehajtásához.
Ha távoli nyomkövetést végez (vagyis az Azure Machine Tanulás kívül futó nyomkövetési kísérleteket), az MLflow konfigurálása az Azure Machine Tanulás-munkaterület nyomon követésére mutató URI-jára mutat. További információ az MLflow munkaterülethez való csatlakoztatásáról: MLflow konfigurálása az Azure Machine Tanulás.
MLflow tracking URI konfigurálása
Az MLflow Azure Machine Tanulás-munkaterülethez való csatlakoztatásához szüksége van a munkaterület nyomkövetési URI-ra. Minden munkaterület saját nyomkövetési URI-val rendelkezik, és rendelkezik a protokollval azureml://
.
Kérje le a munkaterület nyomkövetési URI-ját:
ÉRVÉNYES:Azure CLI ml-bővítmény 2-es verzió (aktuális)
Jelentkezzen be és konfigurálja a munkaterületet:
az account set --subscription <subscription> az configure --defaults workspace=<workspace> group=<resource-group> location=<location>
A nyomkövetési URI-t a következő paranccsal szerezheti
az ml workspace
be:az ml workspace show --query mlflow_tracking_uri
A nyomkövetési URI konfigurálása:
Ezután a metódus
set_tracking_uri()
az MLflow-követési URI-t az adott URI-ra pontokat jelölő URI-ra mutatja.import mlflow mlflow.set_tracking_uri(mlflow_tracking_uri)
Tipp.
Megosztott környezeteken, például Azure Databricks-fürtön, Azure Synapse Analytics-fürtön vagy hasonlókon végzett munka során hasznos, ha a környezeti változót
MLFLOW_TRACKING_URI
a fürt szintjén úgy állítja be, hogy automatikusan konfigurálja az MLflow-követési URI-t úgy, hogy a fürtben futó összes munkamenethez az Azure Machine Tanulás mutasson, és ne munkamenetenkénti alapon végezze el.
Hitelesítés konfigurálása
A nyomkövetés beállítása után konfigurálnia kell a társított munkaterület hitelesítési módszerét is. Alapértelmezés szerint az MLflow Azure Machine Tanulás beépülő modulja interaktív hitelesítést hajt végre az alapértelmezett böngésző megnyitásával, hogy hitelesítő adatokat kérjen.
Az MLflow Azure Machine Tanulás beépülő modulja számos hitelesítési mechanizmust támogat a csomagon azure-identity
keresztül, amely a beépülő modul azureml-mlflow
függőségeként van telepítve. A következő hitelesítési módszereket egyenként próbálja ki a rendszer, amíg az egyik sikeres nem lesz:
- Környezet: Beolvassa a környezeti változókon keresztül megadott fiókadatokat, és hitelesítésre használja.
- Felügyelt identitás: Ha az alkalmazás olyan Azure-gazdagépen van üzembe helyezve, amelyen engedélyezve van a felügyelt identitás, azzal hitelesíti magát.
- Azure CLI: Ha egy felhasználó az Azure CLI-paranccsal
az login
jelentkezik be, a felhasználóként hitelesíti magát. - Azure PowerShell: Ha egy felhasználó az Azure PowerShell parancsán
Connect-AzAccount
keresztül jelentkezik be, a felhasználóként hitelesíti magát. - Interaktív böngésző: Interaktívan hitelesíti a felhasználót az alapértelmezett böngészőn keresztül.
Az olyan interaktív feladatok esetében, ahol egy felhasználó csatlakozik a munkamenethez, interaktív hitelesítésre támaszkodhat, ezért nincs szükség további műveletekre.
Figyelmeztetés
Az interaktív böngészőhitelesítés letiltja a kódvégrehajtást, amikor hitelesítő adatokat kér. Ez nem alkalmas hitelesítésre felügyelet nélküli környezetekben, például betanítási feladatokban. Javasoljuk, hogy más hitelesítési módot is konfiguráljon.
Azokban az esetekben, amikor felügyelet nélküli végrehajtásra van szükség, konfigurálnia kell egy szolgáltatásnevet az Azure Machine Tanulás való kommunikációhoz.
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>"
Tipp.
A megosztott környezeteken való munka során célszerű ezeket a környezeti változókat a számításnál konfigurálni. Ajánlott eljárásként titkos kulcsként kezelni őket az Azure Key Vault egy példányában, amikor csak lehetséges. Az Azure Databricksben például a fürtkonfigurációban az alábbiak szerint használhat titkos kulcsokat a környezeti változókban: AZURE_CLIENT_SECRET={{secrets/<scope-name>/<secret-name>}}
. Az Azure Databricksben való műveletet egy környezeti változóban található titkos kódra hivatkozva, vagy a platform hasonló dokumentációjában találja.
Ha inkább titkos kulcs helyett tanúsítványt szeretne használni, konfigurálhatja a környezeti változókat AZURE_CLIENT_CERTIFICATE_PATH
egy vagy PKCS12
egy PEM
tanúsítványfájl elérési útjára (beleértve a titkos kulcsot is), és AZURE_CLIENT_CERTIFICATE_PASSWORD
ha van ilyen, a tanúsítványfájl jelszavával.
Engedélyezési és engedélyszintek konfigurálása
Egyes alapértelmezett szerepkörök, például az AzureML adattudós vagy a Közreműködő már konfigurálva vannak MLflow-műveletek végrehajtására egy Azure Machine Tanulás-munkaterületen. Egyéni szerepkör használata esetén a következő engedélyekre van szüksége:
MLflow-nyomkövetés használata:
Microsoft.MachineLearningServices/workspaces/experiments/*
Microsoft.MachineLearningServices/workspaces/jobs/*
Az MLflow-modell beállításjegyzékének használata:
Microsoft.MachineLearningServices/workspaces/models/*/*
Ha tudni szeretné, hogyan adhat hozzáférést a létrehozott szolgáltatásnévhez vagy felhasználói fiókhoz a munkaterülethez, olvassa el a Hozzáférés engedélyezése című témakört.
Hitelesítés hibaelhárítása
Az MLflow megpróbál hitelesítést végezni az Azure Machine Tanulás a szolgáltatással interakcióba lépő első műveleten, például mlflow.set_experiment()
vagy mlflow.start_run()
. Ha problémákat vagy váratlan hitelesítési kéréseket talál a folyamat során, növelheti a naplózási szintet, hogy további részleteket kapjon a hibáról:
import logging
logging.getLogger("azure").setLevel(logging.DEBUG)
Kísérlet nevének beállítása (nem kötelező)
Az összes MLflow-futtatás naplózva lesz az aktív kísérletben. Alapértelmezés szerint a rendszer naplózza a futtatásokat egy, az Ön számára automatikusan létrehozott kísérletbe Default
. Konfigurálhatja azt a kísérletet, amelyben a nyomon követés történik.
Tipp.
Amikor feladatokat küld az Azure Machine Tanulás CLI 2-es verziójával, a feladat YAML-definíciójának tulajdonságával experiment_name
állíthatja be a kísérlet nevét. Nem kell konfigurálnia a betanítási szkripten. A részletekért tekintse meg a YAML-t: megjelenítendő név, kísérlet neve, leírása és címkéi .
Konfigurálja a kísérletet az MLflow paranccsal mlflow.set_experiment()
.
experiment_name = 'experiment_with_mlflow'
mlflow.set_experiment(experiment_name)
Nem nyilvános Azure Clouds-támogatás
Az MLflow Azure Machine Tanulás beépülő modulja alapértelmezés szerint úgy van konfigurálva, hogy a globális Azure-felhővel működjön. A környezeti változó AZUREML_CURRENT_CLOUD
beállításával azonban konfigurálhatja a használt Azure-felhőt.
import os
os.environ["AZUREML_CURRENT_CLOUD"] = "AzureChinaCloud"
A használt felhőt a következő Azure CLI-paranccsal azonosíthatja:
az cloud list
Az aktuális felhőben az érték IsActive
a következőre True
van állítva: .
Következő lépések
Most, hogy a környezete csatlakozik a munkaterülethez az Azure Machine Tanulás, megkezdheti a munkát.