Gépi tanulási kísérletek a Microsoft Fabricben
A gépi tanulási kísérlet az összes kapcsolódó gépi tanulási futtatás szervezésének és vezérlésének elsődleges egysége. A futtatás a modellkód egyetlen végrehajtásának felel meg. Az MLflow
A gépi tanulási kísérletek lehetővé teszik az adattudósoknak, hogy a gépi tanulási kód futtatásakor naplózzanak paramétereket, kódverziókat, metrikákat és kimeneti fájlokat. A kísérletek lehetővé teszik a futtatások vizualizációjának, keresésének és összehasonlításának, valamint a futtatási fájlok és metaadatok letöltését más eszközök elemzéséhez.
Ebben a cikkben többet tudhat meg arról, hogyan használhatják az adattudósok a gépi tanulási kísérleteket a fejlesztési folyamatuk rendszerezésére és több futtatás nyomon követésére.
Előfeltételek
- Power BI Premium-előfizetés. Ha nincs ilyenje, tekintse meg A Power BI Premiummegvásárlása című témakört.
- Power BI-munkaterület hozzárendelt prémium szintű kapacitással.
Kísérlet létrehozása
Gépi tanulási kísérletet közvetlenül a háló felhasználói felületéről (UI) vagy az MLflow API-t használó kód megírásával hozhat létre.
Kísérlet létrehozása a felhasználói felületen
Gépi tanulási kísérlet létrehozása a felhasználói felületről:
- Hozzon létre egy új munkaterületet, vagy válasszon ki egy meglévőt.
- Az új elemet létrehozhatja a munkaterületen vagy a Létrehozás gomb használatával.
- Adja meg a kísérlet nevét, és válassza a Createlehetőséget. Ez a művelet létrehoz egy üres kísérletet a munkaterületen belül.
A kísérlet létrehozása után elkezdhet futtatásokat hozzáadni a futtatási metrikák és paraméterek nyomon követéséhez.
Kísérlet létrehozása az MLflow API használatával
Gépi tanulási kísérletet közvetlenül a szerzői élményből is létrehozhat a mlflow.create_experiment()
vagy mlflow.set_experiment()
API-k használatával. Az alábbi kódban cserélje le <EXPERIMENT_NAME>
a kísérlet nevére.
import mlflow
# This will create a new experiment with the provided name.
mlflow.create_experiment("<EXPERIMENT_NAME>")
# This will set the given experiment as the active experiment.
# If an experiment with this name does not exist, a new experiment with this name is created.
mlflow.set_experiment("<EXPERIMENT_NAME>")
A kísérleten belüli feladatok kezelése
A gépi tanulási kísérlet futtatások gyűjteményét tartalmazza az egyszerűbb nyomon követés és összehasonlítás érdekében. Egy kísérleten belül az adatelemzők különböző futtatások között navigálhatnak, és megismerhetik a mögöttes paramétereket és metrikákat. Az adattudósok a gépi tanulási kísérletben futtatott futtatásokat is összehasonlíthatják annak megállapításához, hogy a paraméterek mely részhalmaza eredményez kívánt modellteljesítményt.
Futtatások nyomon követése
A gépi tanulási futtatások a modellkód egyetlen végrehajtásának felelnek meg.
Minden futtatás a következő információkat tartalmazza:
- Forrás: A futtatást létrehozó jegyzetfüzet neve.
- Regisztrált verzió: Ez jelzi, hogy a futtatás gépi tanulási modellként volt-e mentve.
- kezdési dátum: A futtatás kezdési időpontja.
- Állapot: A futtatás előrehaladása.
- hiperparaméterek: Kulcs-érték párként mentett hiperparaméterek. A kulcsok és az értékek egyaránt sztringek.
- Metrikák: Kulcs-érték párként mentett metrikák futtatása. Az érték numerikus.
- Kimeneti fájlok: Kimeneti fájlok bármilyen formátumban. Rögzíthet például képeket, környezetet, modelleket és adatfájlokat.
- címkék: A metaadatok kulcs-érték párként futtatandók.
Legutóbbi futtatások megtekintése
A kísérlet legutóbbi futtatásai is megtekinthetők futtatási listakiválasztásával. Ezzel a nézettel nyomon követheti a legutóbbi tevékenységeket, gyorsan ugorhat a kapcsolódó Spark-alkalmazásra, és szűrőket alkalmazhat a futtatási állapot alapján.
Futtatások összehasonlítása és szűrése
A gépi tanulási futtatások minőségének összehasonlításához és kiértékeléséhez összehasonlíthatja a paramétereket, metrikákat és metaadatokat a kísérletben kiválasztott futtatások között.
Címkék alkalmazása futtatásokra
A kísérletfuttatások MLflow-címkézésével a felhasználók kulcs-érték párok formájában adhatnak hozzá egyéni metaadatokat a futtatásukhoz. Ezek a címkék segítenek adott attribútumok alapján kategorizálni, szűrni és keresni a futtatásokat, így egyszerűbbé válik a kísérletek kezelése és elemzése az MLflow platformon belül. A felhasználók címkék használatával címkézhetik a futtatásokat olyan információkkal, mint a modelltípusok, paraméterek vagy bármely releváns azonosító, így javítva a kísérletek teljes szervezetét és nyomon követhetőségét.
Ez a kódrészlet elindít egy MLflow-futtatásokat, naplóz néhány paramétert és metrikát, és címkéket ad hozzá a kategorizáláshoz, és további környezetet biztosít a futtatáshoz.
import mlflow
import mlflow.sklearn
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
from sklearn.datasets import fetch_california_housing
# Autologging
mlflow.autolog()
# Load the California housing dataset
data = fetch_california_housing(as_frame=True)
X = data.data
y = data.target
# Split the data
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Start an MLflow run
with mlflow.start_run() as run:
# Train the model
model = LinearRegression()
model.fit(X_train, y_train)
# Predict and evaluate
y_pred = model.predict(X_test)
# Add tags
mlflow.set_tag("model_type", "Linear Regression")
mlflow.set_tag("dataset", "California Housing")
mlflow.set_tag("developer", "Bob")
A címkék alkalmazása után az eredményeket közvetlenül a beágyazott MLflow widgetből vagy a futtatás részletei oldalról tekintheti meg.
Figyelmeztetés
figyelmeztetés: Címkék alkalmazásának korlátozásai az MLflow-kísérletfuttatásokra a Fabric
- Nem üres címkék: A címkenevek és -értékek nem lehetnek üresek. Ha üres névvel vagy értékkel rendelkező címkét próbál alkalmazni, a művelet sikertelen lesz.
- címkenevek: A címkenevek legfeljebb 250 karakter hosszúságúak lehetnek.
- Címkeértékek: A címkeértékek legfeljebb 5000 karakter hosszúságúak lehetnek.
-
korlátozott címkenevek: Bizonyos előtagokkal kezdődő címkenevek nem támogatottak. A
synapseml
,mlflow
vagytrident
kezdődő címkék nevei korlátozottak, és nem lesznek elfogadva.
Futtatások vizuális összehasonlítása
Egy meglévő kísérleten belül vizuálisan összehasonlíthatja és szűrheti a futtatásokat. A vizuális összehasonlítással egyszerűen navigálhat több futtatás között, és rendezheti őket.
Futtatások összehasonlítása:
- Válasszon ki egy meglévő, több futtatásból álló gépi tanulási kísérletet.
- Válassza a Nézet lapot, majd lépjen a Futtatási lista nézetéhez. Alternatív megoldásként választhatja a Futtatási lista megtekintése lehetőséget közvetlenül a Futtatás részletei nézetből.
- A táblázat oszlopainak testreszabásához bontsa ki a Az oszlopok testreszabása panelt. Itt kiválaszthatja a megtekinteni kívánt tulajdonságokat, metrikákat, címkéket és hiperparamétereket.
- Bontsa ki a Szűrő panelt, hogy bizonyos kiválasztott feltételek alapján szűkítse az eredményeket.
- Több futtatás kiválasztásával összehasonlíthatja az eredményeket a metrikák összehasonlító paneljén. Ezen az ablaktáblán testre szabhatja a diagramokat a diagram címének, a vizualizáció típusának, az X tengelynek, az Y tengelynek és egyebeknek a módosításával.
Futtatások összehasonlítása az MLflow API használatával
Az adattudósok az MLflow használatával is lekérdezhetik és kereshetnek a kísérleten belüli futtatások között. A MLflow dokumentációjábantovábbi MLflow API-kat is megismerhet a futtatások kereséséhez, szűréséhez és összehasonlításához.
Az összes futtatás lekérése
Az MLflow search API mlflow.search_runs()
használatával egy kísérlet összes futtatását lekérheti, ha lecseréli <EXPERIMENT_NAME>
a kísérlet nevére, vagy <EXPERIMENT_ID>
a kísérletazonosítóra a következő kódban:
import mlflow
# Get runs by experiment name:
mlflow.search_runs(experiment_names=["<EXPERIMENT_NAME>"])
# Get runs by experiment ID:
mlflow.search_runs(experiment_ids=["<EXPERIMENT_ID>"])
Borravaló
Több kísérletben is kereshet, ha megadja a kísérletazonosítók listáját a experiment_ids
paraméternek. Hasonlóképpen, ha a kísérletnevek listáját a experiment_names
paraméternek adja meg, az MLflow több kísérletben is kereshet. Ez akkor lehet hasznos, ha különböző kísérleteken belül szeretné összehasonlítani a futtatásokat.
Megrendelések és futási korlátok
A visszaadott futtatások számának korlátozásához használja a search_runs
max_results
paraméterét. A order_by
paraméterrel listázhatja a sorrendbe rendezendő oszlopokat, és opcionális DESC
vagy ASC
értéket tartalmazhat. Az alábbi példa például egy kísérlet utolsó futtatását adja vissza.
mlflow.search_runs(experiment_ids=[ "1234-5678-90AB-CDEFG" ], max_results=1, order_by=["start_time DESC"])
A Fabric jegyzetfüzeten belüli futtatások összehasonlítása
A Fabric-jegyzetfüzetekben található MLFlow-szerkesztő widgettel nyomon követheti az egyes jegyzetfüzetcellákban létrehozott MLflow-futtatásokat. A widget lehetővé teszi a futtatások, a kapcsolódó metrikák, paraméterek és tulajdonságok nyomon követését közvetlenül az egyes cellaszintig.
A vizuális összehasonlításhoz átválthat a Összehasonlító futtatása nézetre is. Ez a nézet grafikusan jeleníti meg az adatokat, segítve a minták vagy eltérések gyors azonosítását a különböző futtatások között.
Futtatás mentése mint gépi tanulási modell
Ha egy futtatás a kívánt eredményt adja, a futtatást modellként mentheti a továbbfejlesztett modellkövetéshez és a modell üzembe helyezéséhez a Mentés ml-modellkéntlehetőséget választva.
Gépi tanulási kísérletek figyelemmel kísérése (előzetes)
Az ML-kísérletek közvetlenül a Monitorba vannak integrálva. Ez a funkció úgy lett kialakítva, hogy több betekintést nyújtson a Spark-alkalmazásokba és az általuk létrehozott ML-kísérletekbe, így könnyebben kezelheti és hibakeresést végezhet ezen folyamatokban.
A futások nyomon követése a monitor segítségével
A felhasználók közvetlenül a monitorról követhetik nyomon a kísérletfuttatásokat, így egységes képet kaphatnak az összes tevékenységükről. Ez az integráció szűrési lehetőségeket is tartalmaz, amelyek lehetővé teszik a felhasználók számára, hogy az elmúlt 30 napban vagy más meghatározott időszakban létrehozott kísérletekre vagy futtatásokra összpontosítsanak.
Kapcsolódó ml-kísérlet nyomon követése a Spark-alkalmazásból
Az ML-kísérlet közvetlenül a Monitorba van integrálva, ahol kiválaszthat egy adott Spark-alkalmazást, és hozzáférhet az elem pillanatképeihez. Itt megtalálja az alkalmazás által létrehozott összes kísérlet és futtatás listáját.