Gépi tanulási modell a Microsoft Fabric

A gépi tanulási modell egy bizonyos típusú minták felismerésére betanított fájl. Betaníthat egy modellt egy adatkészleten, és egy olyan algoritmust biztosít neki, amely az adott adatkészletből való érvelésre és tanulásra használja. A modell betanítása után felhasználhatja azokat az adatokat, amelyeket korábban még nem látott, és előrejelzéseket készíthet az adatokról.

Az MLflow-ban a gépi tanulási modellek több modellverziót is tartalmazhatnak. Itt minden verzió modell iterációt jelölhet. Ebből a cikkből megtudhatja, hogyan használhatja az ML-modelleket a modell iterációinak nyomon követéséhez és összehasonlításához.

Ebből a cikkből megtudhatja, hogyan:

  • Gépi tanulási modellek létrehozása a Microsoft Fabric
  • Modellverziók kezelése és nyomon követése
  • Modell teljesítményének összehasonlítása verziók között
  • Modellek alkalmazása pontozáshoz és következtetéshez

Gépi tanulási modell létrehozása

Létrehozhat egy gépi tanulási modellt a Fabric felhasználói felületéről, vagy programozott módon az MLflow API-val. Az MLflow-ban a modellek szabványos csomagolási formátumot használnak, amely különböző alárendelt eszközökkel működik, beleértve a kötegelt következtetést az Apache Sparkon. A formátum különböző "ízekbe" menti a modellt, amelyeket a különböző alsóbb rétegbeli eszközök képesek megérteni.

Gépi tanulási modell létrehozása a felhasználói felületről:

  1. Válasszon ki egy meglévő adatelemzési munkaterületet, vagy hozzon létre egy új munkaterületet.
  2. Hozzon létre egy új elemet a munkaterületen vagy a Létrehozás gomb megnyomásával.
    1. Munkaterület:
      1. Válassza ki a munkaterületet.
      2. Válassza Új elem.
      3. Válassza az ML-modell lehetőséget az Adatok elemzése és betanítása területen. Képernyőkép az Új elem menüről, amelyen az ML-modell lehetőség ki van emelve az Adatok elemzése és betanítása szakaszban.
    2. Létrehozás gomb:
      1. Válassza a Létrehozás lehetőséget, amely a függőleges menü ... elemében található. Képernyőkép a Létrehozás gombról a függőleges menü navigációs sávjában.
      2. Válassza az ML-modell lehetőséget az Adatelemzés területen. Képernyőkép a Létrehozás menüről, amely az ML-modell lehetőséget jeleníti meg a Data Science (Adatelemzés) szakaszban.
  3. A modell létrehozása után megkezdheti a modellverziók hozzáadását a futtatási metrikák és paraméterek nyomon követéséhez. A kísérlet egy meglévő modellbe való regisztrálása vagy mentése.

Gépi tanulási modellt is létrehozhat közvetlenül az API szerzői felületéről mlflow.register_model() . Ha a megadott névvel rendelkező regisztrált gépi tanulási modell nem létezik, az API automatikusan létrehozza azt.

import mlflow

model_uri = "runs:/{}/model-uri-name".format(run.info.run_id)
mv = mlflow.register_model(model_uri, "model-name")

print("Name: {}".format(mv.name))
print("Version: {}".format(mv.version))

Gépi tanulási modell verzióinak kezelése

A gépi tanulási modellek modellverziók gyűjteményét tartalmazzák az egyszerűsített nyomon követés és összehasonlítás érdekében. A modellen belül az adatelemzők különböző modellverziókban navigálhatnak a mögöttes paraméterek és metrikák megismeréséhez. Az adattudósok összehasonlítást is végezhetnek a modellverziók között annak megállapításához, hogy az újabb modellek jobb eredményeket hozhatnak-e.

Note

A Fabric MLflow 3 támogatásával a mlflow.<flavor>.log_model(model, name="...") naplózott összes modell létrehoz egy LoggedModel entitást, amely a forrásfuttatáshoz, paraméterekhez, metrikákhoz, adatkészletekhez és környezethez kapcsolódik. Megnyithat egy LoggedModel-et a kísérletoldalon, és regisztrálhatja azt új ML-modellként vagy egy meglévő modell új verziójáként. További információ: MLflow 3 a Fabric Data Science.

Gépi tanulási modellek nyomon követése

A gépi tanulási modell verziója egy nyomon követésre regisztrált egyedi modellt jelöl.

Képernyőkép a gépi tanulási modell verzióinformációs oldaláról, amelyen a metrikák, paraméterek és nyomkövetési információk láthatók.

Minden modellverzió a következő információkat tartalmazza:

Ingatlan Description
Létrehozás időpontja A modell létrehozásának dátuma és időpontja.
Futtatás neve Az adott modellverzió létrehozásához használt kísérletfuttatás azonosítója.
Hiperparaméterek Kulcs-érték párként mentve. A kulcsok és az értékek egyaránt sztringek.
Metrics Kulcs-érték párként mentett metrikák futtatása. Az érték numerikus.
Modellséma/aláírás A modell bemeneteinek és kimeneteinek leírása.
Naplózott fájlok Naplózott fájlok bármilyen formátumban. Rögzíthet például képeket, környezetet, modelleket és adatfájlokat.
Címkék Az egyéni metaadatok kulcs-érték párként vannak csatolva a futtatásokhoz. Ismerje meg, hogyan alkalmazhat címkéket.

Címkék alkalmazása gépi tanulási modellekre

A modellverziók MLflow-címkézése lehetővé teszi, hogy a felhasználók egyéni metaadatokat csatoljanak egy regisztrált modell adott verzióihoz az MLflow modellregisztrációs adatbázisában. Ezek a kulcs-érték párokként tárolt címkék segítenek a modellverziók rendszerezésében, nyomon követésében és megkülönböztetésében, így könnyebben kezelhetők a modell életciklusai. A címkék a modell céljának, üzembehelyezési környezetének vagy bármely más releváns információnak a megjelölésére használhatók, így hatékonyabb modellkezelést és döntéshozatalt tesz lehetővé a csapatokon belül.

Ez a kód bemutatja, hogyan taníthat be Egy RandomForestRegressor-modellt a Scikit-learn használatával, hogyan naplózza a modellt és a paramétereket az MLflow használatával, majd hogyan regisztrálhatja a modellt az MLflow modellregisztrációs adatbázisában egyéni címkékkel. Ezek a címkék hasznos metaadatokat tartalmaznak, például a projekt nevét, részlegét, csapatát és projekt negyedévét, így könnyebben kezelhetők és nyomon követhetők a modellverziók.

import mlflow.sklearn
from mlflow.models import infer_signature
from sklearn.datasets import make_regression
from sklearn.ensemble import RandomForestRegressor

# Generate synthetic regression data
X, y = make_regression(n_features=4, n_informative=2, random_state=0, shuffle=False)

# Model parameters
params = {"n_estimators": 3, "random_state": 42}

# Model tags for MLflow
model_tags = {
    "project_name": "grocery-forecasting",
    "store_dept": "produce",
    "team": "stores-ml",
    "project_quarter": "Q3-2023"
}

# Log MLflow entities
with mlflow.start_run() as run:
    # Train the model
    model = RandomForestRegressor(**params).fit(X, y)
    
    # Infer the model signature
    signature = infer_signature(X, model.predict(X))
    
    # Log parameters and the model
    mlflow.log_params(params)
    mlflow.sklearn.log_model(model, artifact_path="sklearn-model", signature=signature)

# Register the model with tags
model_uri = f"runs:/{run.info.run_id}/sklearn-model"
model_version = mlflow.register_model(model_uri, "RandomForestRegressionModel", tags=model_tags)

# Output model registration details
print(f"Model Name: {model_version.name}")
print(f"Model Version: {model_version.version}")

A címkék alkalmazása után közvetlenül a modellverzió részletei lapon tekintheti meg őket. Emellett a címkék bármikor hozzáadhatók, frissíthetők vagy eltávolíthatók erről a lapról.

Képernyőkép a modellverzió részleteinek oldaláról, amely egyéni címkéket jelenít meg, például a projekt nevét és a csapat adatait.

Gépi tanulási modellek összehasonlítása és szűrése

A gépi tanulási modellverziók minőségének összehasonlításához és kiértékeléséhez összehasonlíthatja a paramétereket, a metrikákat és a metaadatokat a kiválasztott verziók között.

Gépi tanulási modellek vizuális összehasonlítása

A futtatások vizuálisan összehasonlíthatók egy meglévő modellben. A vizuális összehasonlítás lehetővé teszi a több verzió közötti egyszerű navigálást és rendezést.

Képernyőkép a modell-összehasonlító nézetről, amelyen több gépi tanulási modellverzió látható metrikákkal és paraméterekkel.

A futtatások összehasonlításához például a következőt teheti:

  1. Válasszon ki egy meglévő, több verziót tartalmazó gépi tanulási modellt.
  2. Válassza a Nézet lapot, majd lépjen a Modell lista nézetre. A modelllista megtekintésének lehetőségét közvetlenül a részletek nézetből is kiválaszthatja.
  3. Testre szabhatja a táblázat oszlopait. Bontsa ki az Oszlopok testreszabása panelt. Itt kiválaszthatja a megtekinteni kívánt tulajdonságokat, metrikákat, címkéket és hiperparamétereket.
  4. Végül több verziót is kiválaszthat az eredmények összehasonlításához 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.

Gépi tanulási modellek összehasonlítása az MLflow API használatával

Az adattudósok az MLflow használatával is kereshetnek a munkaterületen mentett modellek között. Az MLflow dokumentációjában további MLflow API-kat is megismerhet a modell interakciójához.

from pprint import pprint
from mlflow import MlflowClient

client = MlflowClient()
for rm in client.search_registered_models():
    pprint(dict(rm), indent=4)

Gépi tanulási modellek alkalmazása

Miután betanított egy modellt egy adatkészleten, alkalmazhatja ezt a modellt azokra az adatokra, amelyeket soha nem látott előrejelzések létrehozásához. Ezt a modellt pontozási vagy következtetési technikának hívjuk.

Fabric több módszert is támogat a betanított modellek alkalmazásához:

  • Kötegelt értékelés – A modell alkalmazása nagy méretű adathalmazokra az Apache Spark használatával. Ez ideális az előzményadatokra vagy ütemezett adatokra vonatkozó előrejelzések létrehozásához.
  • Valós idejű pontozás : A modell üzembe helyezése egy végponton igény szerinti előrejelzésekhez, amelyek azonnali eredményeket igénylő alkalmazások esetén hasznosak.

A modellek alkalmazásának megkezdéséhez válassza ki a forgatókönyvnek megfelelő megközelítést: