Megosztás a következőn keresztül:


Kísérletek és modellek nyomon követése az MLflow használatával

A nyomon követés a kísérletekre vonatkozó releváns információk mentésének folyamata. Ebből a cikkből megtudhatja, hogyan használhatja az MLflow-t a kísérletek nyomon követéséhez és az Azure Machine Learning-munkaterületeken való futtatáshoz.

Előfordulhat, hogy az MLflow API-ban elérhető egyes metódusok nem érhetők el az Azure Machine Learninghez való csatlakozáskor. A támogatott és nem támogatott műveletekről további információt a futtatások és kísérletek lekérdezésének támogatási mátrixában talál. Az MLflow és az Azure Machine Learning című cikkből megismerheti az Azure Machine Learning támogatott MLflow funkcióit is.

Feljegyzés

Előfeltételek

  • Azure-előfizetéssel rendelkezik az Azure Machine Learning ingyenes vagy fizetős verziójával.

  • Az Azure CLI- és Python-parancsok futtatásához telepítse az Azure CLI v2-t és a Pythonhoz készült Azure Machine Learning SDK v2-t. Az ml Azure CLI bővítménye automatikusan telepíti az Azure Machine Learning CLI-parancs első futtatásakor.

  • Telepítse az MLflow SDK-csomagot mlflow és az MLflow-hoz készült Azure Machine Learning azureml-mlflow beépülő modult az alábbiak szerint:

    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. Ez a csomag 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 funkciók teljes csomagját, beleértve az üzembe helyezéseket is.

  • Azure Machine Learning-munkaterület létrehozása. Munkaterület létrehozásához tekintse meg az első lépésekhez szükséges erőforrások létrehozását ismertető témakört. Tekintse át az MLflow-műveletek munkaterületen való végrehajtásához szükséges hozzáférési engedélyeket .

  • Ha távoli nyomkövetést szeretne végezni, vagy nyomon szeretné követni az Azure Machine Learningen kívül futó kísérleteket, konfigurálja az MLflow-t úgy, hogy az az Azure Machine Learning-munkaterület nyomkövetési URI-jára mutasson. Az MLflow munkaterülethez való csatlakoztatásáról további információt az MLflow konfigurálása az Azure Machine Learninghez című témakörben talál.

A kísérlet konfigurálása

Az MLflow a kísérletekben és a futtatásokban rendszerezi az információkat. A futtatásokat feladatnak nevezzük az Azure Machine Learningben. Alapértelmezés szerint futtatja a naplót egy automatikusan létrehozott, Alapértelmezett nevű kísérletbe, de konfigurálhatja, hogy melyik kísérletet kövesse nyomon.

Interaktív betanításhoz, például Jupyter-jegyzetfüzetekben, használja az MLflow parancsot mlflow.set_experiment(). A következő kódrészlet például konfigurál egy kísérletet:

experiment_name = 'hello-world-example'
mlflow.set_experiment(experiment_name)

A futtatás konfigurálása

Az Azure Machine Learning nyomon követi a betanítási feladatokat, amit az MLflow futásoknak nevez. Futtatásokkal rögzítheti a feladat által végrehajtott összes feldolgozást.

Ha interaktívan dolgozik, az MLflow azonnal nyomon követi képzési rutinját, amint olyan információt naplóz, amely aktív futtatást igényel. Ha például a Mlflow autologging funkciója engedélyezve van, az MLflow nyomon követése akkor indul el, amikor naplóz egy metrikát vagy paramétert, vagy elindít egy betanítási ciklust.

Általában azonban hasznos a futtatás explicit elindítása, különösen akkor, ha a kísérlet teljes idejét szeretné rögzíteni az Időtartam mezőben. A futtatás explicit elindításához használja a következőt mlflow.start_run(): .

Akár manuálisan indítja el a futtatást, akár nem, végül le kell állítania a futtatást, hogy az MLflow tudja, hogy a kísérlet futtatása befejeződött, és befejezettként megjelölheti a futtatás állapotát. A futtatás leállításához használja a következőt mlflow.end_run().

A következő kód manuálisan indítja el a futtatásokat, és a jegyzetfüzet végén végződik:

mlflow.start_run()

# Your code

mlflow.end_run()

A legjobb, ha manuálisan indítja el a futtatásokat, hogy ne felejtse el befejezni őket. Használhatja a környezetkezelőt, hogy segítsen emlékezni a futás befejezésére.

with mlflow.start_run() as run:
    # Your code

Amikor új futtatásba kezd a mlflow.start_run(), hasznos lehet megadni a run_name paramétert, amely később az Azure Machine Learning felhasználói felületén a futtatás nevét fogja jelenteni. Ez a gyakorlat segít a futtatás gyorsabb azonosításában.

with mlflow.start_run(run_name="hello-world-example") as run:
    # Your code

Az MLflow automatikus naplózásának engedélyezése

A metrikákat, paramétereket és fájlokat manuálisan naplózhatja az MLflow használatával, és az MLflow automatikus naplózási funkciójára is támaszkodhat. Az MLflow által támogatott összes gépi tanulási keretrendszer meghatározza, hogy mit kövessen nyomon automatikusan.

Az automatikus naplózás engedélyezéséhez szúrja be a következő kódot a betanítási kód elé:

mlflow.autolog()

Metrikák és összetevők megtekintése a munkaterületen

Az MLflow naplózásából származó metrikákat és összetevőket a rendszer nyomon követi a munkaterületen. Megtekintheti és elérheti őket az Azure Machine Learning Studióban, vagy programozott módon is elérheti őket az MLflow SDK-val.

Metrikák és elemek megtekintése a stúdióban:

  1. A munkaterület Feladatok lapján válassza ki a kísérlet nevét.

  2. A kísérlet részletei lapon válassza a Metrikák lapot.

  3. A jobb oldalon lévő diagramok megjelenítéséhez válassza ki a naplózott metrikákat. A diagramokat simítással, színmódosítással vagy több metrika egyetlen gráfon való ábrázolásával testre szabhatja. Az elrendezés átméretezhető és átrendezhető.

  4. Miután létrehozta a kívánt nézetet, mentse későbbi használatra, és ossza meg a csapattagokkal egy közvetlen hivatkozás használatával.

    Képernyőkép a metrikák nézetről, amely a metrikák listáját és a metrikákból létrehozott diagramokat jeleníti meg.

Ha a metrikákat, paramétereket és összetevőket programozott módon szeretné elérni vagy lekérdezni az MLflow SDK-n keresztül, használja a mlflow.get_run()-t.

import mlflow

run = mlflow.get_run("<RUN_ID>")

metrics = run.data.metrics
params = run.data.params
tags = run.data.tags

print(metrics, params, tags)

Tipp.

Az előző példa csak egy adott metrika utolsó értékét adja vissza. Egy adott metrika összes értékének lekéréséhez használja a metódust mlflow.get_metric_history . A metrikák értékeinek lekéréséről további információt a paramok és metrikák lekérése futtatásból című témakörben talál.

A naplózott összetevők, például fájlok és modellek letöltéséhez használja a mlflow.artifacts.download_artifacts()-t.

mlflow.artifacts.download_artifacts(run_id="<RUN_ID>", artifact_path="helloworld.txt")

Az Azure Machine Learningben az MLflow használatával végzett kísérletek és futtatások adatainak lekéréséről és összehasonlításáról további információt a Query & compare experiments and runs with MLflow (Kísérletek és futtatások összehasonlítása az MLflow-tal) című témakörben talál.