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


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

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.

A nyomon követés a futtatott kísérletekre vonatkozó információk mentésének folyamata. A mentett információk (metaadatok) a projekttől függően változnak, és a következők lehetnek:

  • Kód
  • Környezet részletei (például operációsrendszer-verzió, Python-csomagok)
  • Bemeneti adatok
  • Paraméterkonfigurációk
  • Modellek
  • Értékelési metrikák
  • Kiértékelési vizualizációk (például keveredési mátrixok, fontossági diagramok)
  • Kiértékelési eredmények (beleértve néhány kiértékelési előrejelzést is)

Amikor feladatokkal dolgozik az Azure Machine Learningben, az Azure Machine Learning automatikusan nyomon követi a kísérletekre vonatkozó információkat, például a kódokat, a környezetet, valamint a bemeneti és kimeneti adatokat. Mások, például modellek, paraméterek és metrikák esetében azonban a modellkészítőnek konfigurálnia kell a nyomon követésüket, mivel azok az adott forgatókönyvre vonatkoznak.

Feljegyzés

Ha nyomon szeretné követni az Azure Databricksen futó kísérleteket, tekintse meg az Azure Databricks ML-kísérletek nyomon követését az MLflow és az Azure Machine Learning használatával. Az Azure Synapse Analyticsben futó kísérletek nyomon követéséről az Azure Synapse Analytics ML-kísérleteinek nyomon követése az MLflow és az Azure Machine Learning segítségével című témakörben olvashat.

A kísérletek nyomon követésének előnyei

Határozottan javasoljuk, hogy a gépi tanulási szakemberek nyomon kövessék a kísérleteket, akár az Azure Machine Learningben végzett feladatokkal, akár a jegyzetfüzetek interaktív betanításával. A kísérletkövetés lehetővé teszi a következőt:

  • Az összes gépi tanulási kísérletet egyetlen helyen rendszerezheti. Ezután kereshet és szűrhet kísérleteket, és lehatolást végezhet a korábban futtatott kísérletek részleteinek megtekintéséhez.
  • Hasonlítsa össze a kísérleteket, elemezze az eredményeket és hibakeresési modell betanítását kevés extra munkával.
  • Kísérletek reprodukálása vagy újrafuttatása az eredmények ellenőrzéséhez.
  • Az együttműködés javítása, mivel láthatja, hogy más csapattársak mit csinálnak, megoszthatják a kísérlet eredményeit, és programozott módon hozzáférhetnek a kísérleti adatokhoz.

Miért érdemes MLflow-t használni a kísérletek nyomon követéséhez?

Az Azure Machine Learning-munkaterületek MLflow-kompatibilisek, ami azt jelenti, hogy az MLflow használatával nyomon követheti a futtatásokat, metrikákat, paramétereket és összetevőket az Azure Machine Learning-munkaterületeken. Az MLflow nyomkövetéshez való használatának egyik fő előnye, hogy nem kell módosítania a betanítási rutinokat az Azure Machine Learning használatához, és nem kell felhőspecifikus szintaxist beszúrnia.

További információ az MLflow és az Azure Machine Learning összes támogatott funkciójáról: MLflow és Azure Machine Learning.

Korlátozások

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.

Előfeltételek

  • Azure-előfizetés. Ha még nincs Azure-előfizetése, kezdés előtt hozzon létre egy ingyenes fiókot. Próbálja ki az Azure Machine Learning ingyenes vagy fizetős verzióját.
  • Telepítse az MLflow SDK-csomagot mlflow és az MLflow-hoz készült Azure Machine Learning azureml-mlflow beépülő modult:

    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 a funkciók teljes csomagjának importálása nélkül, beleértve az üzembe helyezéseket is.

  • Egy Azure Machine Learning-munkaterület. Munkaterület létrehozásához tekintse meg a Gépi tanulási erőforrások létrehozása oktatóanyagot. 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 végez (azaz nyomon követi 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 kísérletekben és futtatásokban rendszerezi az információkat (a futtatásokat feladatnak nevezzük az Azure Machine Learningben). Alapértelmezés szerint a rendszer naplózza a futtatásokat egy Alapértelmezett nevű kísérletbe, amely automatikusan létrejön Önnek. Konfigurálhatja azt a kísérletet, amelyben a nyomon követés történik.

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 az MLflow által futtatásnak hívott betanítási feladatokat. Futtatásokkal rögzítheti a feladat által végrehajtott összes feldolgozást.

Amikor interaktívan dolgozik, az MLflow azonnal elkezdi nyomon követni a betanítási rutint, amint megpróbál naplózni az aktív futtatást igénylő információkat. Az MLflow-követés például akkor indul el, amikor naplóz egy metrikát, egy paramétert vagy elindít egy betanítási ciklust, és az Mlflow automatikusan elérhető funkciói engedélyezve lesznek. Azonban általában 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(): .

Javasoljuk, hogy manuálisan indítsa el a futtatásokat, hogy ne felejtse el befejezni őket, amikor jegyzetfüzetekben dolgozik.

  • A futtatás manuális indítása és befejezése, ha végzett a jegyzetfüzetben végzett munkával:

    mlflow.start_run()
    
    # Your code
    
    mlflow.end_run()
    
  • Általában hasznos, ha a környezetkezelői paradigmát használja a futtatás befejezéséhez:

    with mlflow.start_run() as run:
        # Your code
    
  • Amikor új futtatásba mlflow.start_run()kezd, hasznos lehet megadni a run_name paramétert, amely később az Azure Machine Learning felhasználói felületén lefordítja a futtatás nevét, és 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 kitöltésének engedélyezése

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

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. Bármikor megtekintheti és elérheti őket a stúdióban, vagy programozott módon is elérheti őket az MLflow SDK-val.

Metrikák és összetevők megtekintése a stúdióban:

  1. Nyissa meg az Azure Machine Learning Studiót.

  2. Lépjen a munkaterületre.

  3. Keresse meg a kísérletet név szerint a munkaterületen.

  4. Válassza ki a naplózott metrikákat a diagramok jobb oldalon való megjelenítéséhez. A diagramokat simítással, színmódosítással vagy több metrika egyetlen gráfon való ábrázolásával testre szabhatja. Igény szerint átméretezheti és átrendezheti az elrendezést.

  5. 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.

A metrikák, paraméterek és összetevők az MLflow SDK-n keresztül programozott módon való eléréséhez vagy lekérdezéséhez 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.

Metrikák esetén az előző példakód csak egy adott metrika utolsó értékét adja vissza. Ha egy adott metrika összes értékét le szeretné kérni, 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érletekből és futtatásokból származó információk 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.