Betanítási kód kezelése MLflow-futtatásokkal

Ez a cikk a gépi tanulási betanítás kezeléséhez szükséges MLflow-futtatásokat ismerteti. Útmutatást is tartalmaz a kísérletek közötti futtatások kezeléséhez és összehasonlításához.

Az MLflow-futtatások a modellkód egyetlen végrehajtásának felelnek meg. Minden futtatás a következő adatokat rögzíti:

  • Forrás: A futtatás indítását kezdeményező jegyzetfüzet neve, vagy a futtatás projektneve és belépési pontja.
    • Verzió: A Git véglegesítési kivonata, ha a jegyzetfüzet egy Databricks Git-mappában van tárolva, vagy MLflow-projektből fut. Ellenkező esetben a jegyzetfüzet változatának módosítása.
    • Kezdési és befejezési idő: A futtatás kezdési és befejezési időpontja.
    • Paraméterek: Kulcs-érték párként mentett modellparaméterek. A kulcsok és az értékek egyaránt sztringek.
    • Metrikák: Kulcs-érték párként mentett modellértékelési metrikák. Az érték numerikus. Minden metrika frissíthető a futtatás során (például nyomon követheti, hogy a modell veszteségfüggvénye hogyan konvergál), valamint MLflow rekordokat, és lehetővé teszi a metrikák előzményeinek megjelenítését.
    • Címkék: Kulcs-érték párként mentett metaadatok futtatása. A futtatás alatt és után frissítheti a címkéket. A kulcsok és az értékek egyaránt sztringek.
    • Összetevők: Kimeneti fájlok bármilyen formátumban. Rögzíthet például képeket, modelleket (például egy pickled scikit-learn modellt) és adatfájlokat (például egy Parquet-fájlt) összetevőként.

Az összes MLflow-futtatás naplózva lesz az aktív kísérletben. Ha nem állított be kifejezetten egy kísérletet aktív kísérletként, a rendszer naplózza a futtatásokat a jegyzetfüzet-kísérletbe.

Futtatások megtekintése

A futtatásokat a szülőkísérlet oldaláról vagy közvetlenül a futtatás létrehozó jegyzetfüzetéből érheti el.

A kísérletoldal futtatási táblájában kattintson a futtatás kezdő időpontjára.

A jegyzetfüzetben kattintson Külső hivatkozás a futtatás dátuma és időpontja mellett a Kísérletfuttatások oldalsávon.

A futtatási képernyő megjeleníti a futtatáshoz használt paramétereket, a futtatásból eredő metrikákat, valamint a címkéket és jegyzeteket. Ha a futtatáshoz jegyzeteket, paramétereket, metrikákat vagy címkéket szeretne megjeleníteni, kattintson jobbra mutató nyíl a címke bal oldalán.

A futtatásból mentett összetevőket is elérheti ezen a képernyőn.

Futtatás megtekintése

Kódrészletek előrejelzéshez

Ha futtatásból naplóz egy modellt, a modell a lap Összetevők szakaszában jelenik meg. Ha olyan kódrészleteket szeretne megjeleníteni, amely bemutatja, hogyan töltheti be és használhatja a modellt előrejelzések készítésére a Spark és a pandas DataFrame-eken, kattintson a modell nevére.

kódrészletek előrejelzése

A futtatáshoz használt jegyzetfüzet vagy Git-projekt megtekintése

A futtatásokat létrehozó jegyzetfüzet verziójának megtekintése:

  • A kísérlet oldalán kattintson a Forrás oszlopban lévő hivatkozásra.
  • A futtatási lapon kattintson a Forrás melletti hivatkozásra.
  • A jegyzetfüzet Kísérletfuttatások oldalsávjában kattintson a Jegyzetfüzet ikonra Jegyzetfüzet verzió ikonja a kísérletfuttatás mezőjében.

A futtatáshoz társított jegyzetfüzet verziója megjelenik a főablakban, a futtatás dátumát és időpontját megjelenítő kiemelő sávmal.

Ha a futtatást távolról indították el egy Git-projektből, kattintson a Git Véglegesítés mező hivatkozására a futtatás során használt projekt adott verziójának megnyitásához. A Forrás mezőben lévő hivatkozás megnyitja a futtatás során használt Git-projekt fő ágát.

Címke hozzáadása futtatáshoz

A címkék kulcs-érték párok, amelyeket később létrehozhat és használhat futtatások keresésére.

  1. Kattintson a futtatási lapra, Címke ikon ha még nincs megnyitva. Megjelenik a címkék táblázata.

    címketábla

  2. Kattintson a Név és érték mezőbe, és írja be a címke kulcsát és értékét.

  3. Kattintson a Hozzáadás gombra.

    címke hozzáadása

Futtatás címkéinek szerkesztése vagy törlése

Meglévő címke szerkesztéséhez vagy törléséhez használja a Műveletek oszlop ikonjait.

címkeműveletek

Futtatás szoftverkörnyezetének reprodukálása

A futtatás pontos szoftverkörnyezetét a Futtatás reprodukálása gombra kattintva reprodukálhatja. Megjelenik a következő párbeszédpanel:

Futtatás reprodukálása párbeszédpanel

Az alapértelmezett beállításokkal, amikor a Megerősítés gombra kattint:

  • A jegyzetfüzet a párbeszédpanelen látható helyre van klónozva.
  • Ha az eredeti fürt továbbra is létezik, a klónozott jegyzetfüzet az eredeti fürthöz van csatolva, és a fürt elindul.
  • Ha az eredeti fürt már nem létezik, a rendszer létrehoz és elindít egy azonos konfigurációjú új fürtöt, beleértve a telepített kódtárakat is. A jegyzetfüzet az új fürthöz van csatolva.

Választhat egy másik helyet a klónozott jegyzetfüzethez, és megvizsgálhatja a fürtkonfigurációt és a telepített kódtárakat:

  • Ha másik mappát szeretne kijelölni a klónozott jegyzetfüzet mentéséhez, kattintson a Mappa szerkesztése gombra.
  • A fürt specifikációjának megtekintéséhez kattintson a Specifikáció megtekintése gombra. Ha csak a jegyzetfüzetet szeretné klónozni, és nem a fürtöt, törölje a jelölését.
  • Az eredeti fürtre telepített kódtárak megtekintéséhez kattintson a Tárak megtekintése elemre. Ha nem szeretné ugyanazokat a kódtárakat telepíteni, mint az eredeti fürtön, törölje a jelölését.

Futtatások kezelése

Futtatás átnevezése

Futtatás átnevezéséhez kattintson három gomb ikon a futtatási lap jobb felső sarkára, és válassza az Átnevezés lehetőséget.

Szűrőfuttatások

Paraméterek vagy metrikaértékek alapján kereshet futtatásokat. A futtatásokat címke alapján is megkeresheti.

  • Ha paraméter- és metrikaértékeket tartalmazó kifejezésnek megfelelő futtatásokat szeretne keresni, írjon be egy lekérdezést a keresőmezőbe, és kattintson a Keresés gombra. Néhány lekérdezésszintaxis-példa:

    metrics.r2 > 0.3

    params.elasticNetParam = 0.5

    params.elasticNetParam = 0.5 AND metrics.avg_areaUnderROC > 0.3

  • Ha címkék alapján szeretne futtatásokat keresni, adja meg a következő formátumban a címkéket: tags.<key>="<value>". A sztringértékeket idézőjelek közé kell tenni az ábrán látható módon.

    tags.estimator_name="RandomForestRegressor"

    tags.color="blue" AND tags.size=5

    A kulcsok és az értékek egyaránt tartalmazhatnak szóközöket. Ha a kulcs szóközöket tartalmaz, az ábrán látható módon mellékelje a háttérrendszerbe.

    tags.`my custom tag` = "my value"
    

Szűrheti a futtatásokat az állapotuk (Aktív vagy Törölt) alapján is, és attól függően, hogy a modellverzió társítva van-e a futtatáshoz. Ehhez az Állapot és az Idő létrehozva legördülő menüből válassza ki a kívánt beállításokat.

Szűrőfuttatások

Letöltési futtatások

  1. Jelöljön ki egy vagy több futtatás közül.

  2. Kattintson a CSV letöltése gombra. A következő mezők letöltését tartalmazó CSV-fájl:

    Run ID,Name,Source Type,Source Name,User,Status,<parameter1>,<parameter2>,...,<metric1>,<metric2>,...
    

Futtatások törlése

A Databricks Machine Tanulás felhasználói felületén a következő lépésekkel törölheti a futtatásokat:

  1. A kísérletben jelöljön ki egy vagy több futtatást a futtatástól balra lévő jelölőnégyzetre kattintva.
  2. Kattintson a Törlés gombra.
  3. Ha a futtatás szülőfuttatás, döntse el, hogy a leszármazottfuttatásokat is törölni szeretné-e. A beállítás alapértelmezés szerint engedélyezett.
  4. A megerősítéshez kattintson a Törlés gombra. A törölt futtatások 30 napig lesznek mentve. A törölt futtatások megjelenítéséhez válassza az Állapot mezőben a Törölt elemet.

A tömeges törlés a létrehozási idő alapján fut

A Python használatával tömegesen törölheti egy UNIX-időbélyeg előtt vagy időpontban létrehozott kísérlet futásait. A Databricks Runtime 14.1-es vagy újabb verziójával meghívhatja az API-t a mlflow.delete_runs futtatások törléséhez, és visszaadhatja a törölt futtatások számát.

A paraméterek a mlflow.delete_runs következők:

  • experiment_id: A törölni kívánt futtatásokat tartalmazó kísérlet azonosítója.
  • max_timestamp_millis: A létrehozási időbélyeg maximális száma ezredmásodpercben a UNIX-korszak óta a futtatások törléséhez. Csak az időbélyeg előtt vagy ezen az időpontban létrehozott futtatások törlődnek.
  • max_runs:Választható. Pozitív egész szám, amely a törölni kívánt futtatások maximális számát jelzi. Az max_runs megengedett maximális értéke 10000. Ha nincs megadva, max_runs az alapértelmezett érték 10000.
import mlflow

# Replace <experiment_id>, <max_timestamp_ms>, and <max_runs> with your values.
runs_deleted = mlflow.delete_runs(
  experiment_id=<experiment_id>,
  max_timestamp_millis=<max_timestamp_ms>,
  max_runs=<max_runs>
)
# Example:
runs_deleted = mlflow.delete_runs(
  experiment_id="4183847697906956",
  max_timestamp_millis=1711990504000,
  max_runs=10
)

A Databricks Runtime 13.3 LTS vagy korábbi verziójával az alábbi ügyfélkódot futtathatja egy Azure Databricks-jegyzetfüzetben.

from typing import Optional

def delete_runs(experiment_id: str,
                max_timestamp_millis: int,
                max_runs: Optional[int] = None) -> int:
    """
    Bulk delete runs in an experiment that were created prior to or at the specified timestamp.
    Deletes at most max_runs per request.

    :param experiment_id: The ID of the experiment containing the runs to delete.
    :param max_timestamp_millis: The maximum creation timestamp in milliseconds
                                 since the UNIX epoch for deleting runs. Only runs
                                 created prior to or at this timestamp are deleted.
    :param max_runs: Optional. A positive integer indicating the maximum number
                     of runs to delete. The maximum allowed value for max_runs
                     is 10000. If not specified, max_runs defaults to 10000.
    :return: The number of runs deleted.
    """
    from mlflow.utils.databricks_utils import get_databricks_host_creds
    from mlflow.utils.request_utils import augmented_raise_for_status
    from mlflow.utils.rest_utils import http_request

    json_body = {"experiment_id": experiment_id, "max_timestamp_millis": max_timestamp_millis}
    if max_runs is not None:
        json_body["max_runs"] = max_runs
    response = http_request(
        host_creds=get_databricks_host_creds(),
        endpoint="/api/2.0/mlflow/databricks/runs/delete-runs",
        method="POST",
        json=json_body,
    )
    augmented_raise_for_status(response)
    return response.json()["runs_deleted"]

Tekintse meg az Azure Databricks Experiments API dokumentációját a paraméterekről és a futtatások létrehozási idő alapján történő törlésére vonatkozó visszatérési érték specifikációiról.

Visszaállítási futtatások

A korábban törölt futtatásokat a Databricks Machine Tanulás felhasználói felületén állíthatja vissza.

  1. A Kísérlet lapon válassza az Állapot mezőben a Törölt elemet a törölt futtatások megjelenítéséhez.
  2. Jelöljön ki egy vagy több futtatást a futtatástól balra lévő jelölőnégyzetre kattintva.
  3. Kattintson a Visszaállítás gombra.
  4. A megerősítéshez kattintson a Visszaállítás gombra. A visszaállított futtatások megjelenítéséhez válassza az Aktív lehetőséget az Állapot mezőben.

A tömeges visszaállítás a törlési idő alapján fut

A Python használatával tömegesen visszaállíthatja egy UNIX-időbélyegen vagy után törölt kísérlet futtatásait. A Databricks Runtime 14.1-es vagy újabb verziójával meghívhatja az API-t a mlflow.restore_runs futtatások visszaállításához, és visszaadhatja a visszaállított futtatások számát.

A paraméterek a mlflow.restore_runs következők:

  • experiment_id: A visszaállítandó futtatásokat tartalmazó kísérlet azonosítója.
  • min_timestamp_millis: A törlés minimális időbélyege ezredmásodpercben, a UNIX-korszak óta a futtatások visszaállításához. Csak az időbélyeg visszaállításakor vagy után törölt futtatások.
  • max_runs:Választható. Pozitív egész szám, amely a visszaállítandó futtatások maximális számát jelzi. Az max_runs megengedett maximális értéke 10000. Ha nincs megadva, max_runs alapértelmezés szerint 10000.
import mlflow

# Replace <experiment_id>, <min_timestamp_ms>, and <max_runs> with your values.
runs_restored = mlflow.restore_runs(
  experiment_id=<experiment_id>,
  min_timestamp_millis=<min_timestamp_ms>,
  max_runs=<max_runs>
)
# Example:
runs_restored = mlflow.restore_runs(
  experiment_id="4183847697906956",
  min_timestamp_millis=1711990504000,
  max_runs=10
)

A Databricks Runtime 13.3 LTS vagy korábbi verziójával az alábbi ügyfélkódot futtathatja egy Azure Databricks-jegyzetfüzetben.

from typing import Optional

def restore_runs(experiment_id: str,
                 min_timestamp_millis: int,
                 max_runs: Optional[int] = None) -> int:
    """
    Bulk restore runs in an experiment that were deleted at or after the specified timestamp.
    Restores at most max_runs per request.

    :param experiment_id: The ID of the experiment containing the runs to restore.
    :param min_timestamp_millis: The minimum deletion timestamp in milliseconds
                                 since the UNIX epoch for restoring runs. Only runs
                                 deleted at or after this timestamp are restored.
    :param max_runs: Optional. A positive integer indicating the maximum number
                     of runs to restore. The maximum allowed value for max_runs
                     is 10000. If not specified, max_runs defaults to 10000.
    :return: The number of runs restored.
    """
    from mlflow.utils.databricks_utils import get_databricks_host_creds
    from mlflow.utils.request_utils import augmented_raise_for_status
    from mlflow.utils.rest_utils import http_request
    json_body = {"experiment_id": experiment_id, "min_timestamp_millis": min_timestamp_millis}
    if max_runs is not None:
        json_body["max_runs"] = max_runs
    response = http_request(
        host_creds=get_databricks_host_creds(),
        endpoint="/api/2.0/mlflow/databricks/runs/restore-runs",
        method="POST",
        json=json_body,
    )
    augmented_raise_for_status(response)
    return response.json()["runs_restored"]

Tekintse meg az Azure Databricks Experiments API dokumentációját a paraméterek és a visszatérési érték specifikációihoz a futtatások törlési idő alapján történő visszaállításához.

Futtatások összehasonlítása

Összehasonlíthatja az egyetlen kísérletből vagy több kísérletből származó futtatásokat. A Futtatások összehasonlítása lap grafikus és táblázatos formátumban jeleníti meg a kijelölt futtatások adatait. Vizualizációkat is létrehozhat a futtatási eredményekről és a futtatási információk tábláiról, a futtatási paraméterekről és a metrikákról.

Vizualizáció létrehozása:

  1. Válassza ki a diagram típusát (párhuzamos koordináták ábrázolása, pontdiagram vagy körvonaldiagram).
    1. Párhuzamos koordináták ábrázolásához válassza ki a ábrázolni kívánt paramétereket és metrikákat. Innen azonosíthatja a kiválasztott paraméterek és metrikák közötti kapcsolatokat, ami segít jobban meghatározni a modellek hiperparaméter-finomhangolási területét.

      futtatási lapvizualizáció összehasonlítása

    2. Pontdiagram vagy körvonaldiagram esetén válassza ki az egyes tengelyeken megjelenítendő paramétert vagy metrikát.

A Paraméterek és metrikák táblák az összes kiválasztott futtatás futtatási paramétereit és metrikáit jelenítik meg. Az ezekben a táblákban lévő oszlopokat közvetlenül a fenti Részletek futtatása tábla azonosítja. Az egyszerűség kedvéért elrejtheti az összes kiválasztott futtatásban azonos paramétereket és metrikákat az összesítéssel Csak a diff gomb megjelenítése.

futtatáslaptáblák összehasonlítása

Egyetlen kísérletből származó futtatások összehasonlítása

  1. A kísérletoldalon jelöljön ki két vagy több futtatást a futtatástól balra lévő jelölőnégyzetre kattintva, vagy jelölje be az összes futtatást az oszlop tetején található jelölőnégyzet bejelölésével.
  2. Kattintson az Összehasonlítás gombra. Megjelenik a Futtatások összehasonlítása <N> képernyő.

Több kísérletből származó futtatások összehasonlítása

  1. A kísérletek lapon válassza ki az összehasonlítandó kísérleteket a kísérlet neve bal oldalán található mezőbe kattintva.
  2. Kattintson az Összehasonlítás (n) gombra (n a kiválasztott kísérletek száma). Megjelenik egy képernyő, amelyen a kiválasztott kísérletekből származó összes futtatás látható.
  3. Jelöljön ki két vagy több futtatást a futtatástól balra lévő jelölőnégyzetre kattintva, vagy jelölje be az összes futtatást az oszlop tetején található jelölőnégyzet bejelölésével.
  4. Kattintson az Összehasonlítás gombra. Megjelenik a Futtatások összehasonlítása <N> képernyő.

Másolási futtatások a munkaterületek között

Az MLflow databricks-munkaterületre vagy onnan való importálásához vagy exportálásához használhatja a közösség által vezérelt nyílt forráskód projekt MLflow Export-Import projektét.