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 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 a címke bal oldalán.
A futtatásból mentett összetevőket is elérheti ezen a képernyőn.
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.
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 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.
Kattintson a futtatási lapra, ha még nincs megnyitva. Megjelenik a címkék táblázata.
Kattintson a Név és érték mezőbe, és írja be a címke kulcsát és értékét.
Kattintson a Hozzáadás gombra.
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.
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:
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 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
MIN(metrics.rmse) <= 1
MAX(metrics.memUsage) > 0.9
LATEST(metrics.memUsage) = 0 AND MIN(metrics.rmse) <= 1
A metrikaértékek alapértelmezés szerint az utolsó naplózott érték alapján lesznek szűrve. A
MIN
minimális vagyMAX
maximális metrikaértékek alapján futtatott futtatások keresését vagy keresését teszi lehetővé. Csak a 2024 augusztusa után naplózott futtatások rendelkeznek minimális és maximális metrikaértékekkel.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.
Letöltési futtatások
Jelöljön ki egy vagy több futtatás közül.
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 Mozaik AI felhasználói felületén a következő lépésekkel törölheti a futtatásokat:
- 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.
- Kattintson a Törlés gombra.
- 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.
- 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
:Szabadon 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 Mozaik AI felhasználói felületén állíthatja vissza.
- 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.
- Jelöljön ki egy vagy több futtatást a futtatástól balra lévő jelölőnégyzetre kattintva.
- Kattintson a Visszaállítás gombra.
- 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
:Szabadon 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:
- Válassza ki a diagram típusát (párhuzamos koordináták ábrázolása, pontdiagram vagy körvonaldiagram).
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.
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 .
Egyetlen kísérletből származó futtatások összehasonlítása
- 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.
- 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
- 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.
- 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ó.
- 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.
- 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.