Zdieľať cez


Model strojového učenia v službe Microsoft Fabric

Model strojového učenia je súbor trénovaný na rozpoznávanie určitých typov vzorov. Model trénujete na množine údajov a poskytujete k nemu algoritmus, ktorý používa na dozor a učenie sa z tejto množiny údajov. Po vytrénení modelu ho môžete použiť na odôvodnenie údajov, ktoré nikdy predtým nevidel, a na vytvorenie predpovedí o daných údajoch.

V MLflowmôže model strojového učenia obsahovať viacero verzií modelu. V tomto príklade môže každá verzia predstavovať iteráciu modelu. V tomto článku sa dozviete, ako pracovať s modelmi strojového učenia na sledovanie a porovnanie verzií modelu.

Vytvorenie modelu strojového učenia

V toku strojového učenia modely strojového učenia obsahujú štandardný formát balenia. Tento formát umožňuje používať tieto modely v rôznych následných nástrojoch, vrátane dávkového odvodenia v Apache Spark. Formát definuje konvenciu na uloženie modelu v rôznych "konfiguráciách", ktoré rôzne následné nástroje dokážu pochopiť.

Z používateľského rozhrania služby Fabric môžete priamo vytvoriť model strojového učenia. Rozhranie API MLflow môže tiež priamo vytvoriť model.

Ak chcete vytvoriť model strojového učenia z používateľského rozhrania, môžete:

  1. Vytvorte nový pracovný priestor dátovej vedy alebo vyberte existujúci pracovný priestor dátovej vedy.
  2. Vytvorte nový pracovný priestor alebo vyberte existujúci.
  3. Novú položku môžete vytvoriť prostredníctvom pracovného priestoru alebo pomocou možnosti Vytvoriť.
    1. Pracovný priestor:
      1. Vyberte pracovný priestor.
      2. Vyberte Nová položka .
      3. V časti Analyzovať a trénovaťúdajov vyberte položku Model strojového učenia . Snímka obrazovky zobrazujúca miesto, kde môžete vybrať položku Experimentovať v pracovnom priestore.
    2. Tlačidlo Vytvoriť:
      1. Vyberte Vytvoriť, ktorý nájdete v ... v zvislej ponuke. Snímka obrazovky s tlačidlom vytvoriť.
      2. VData Science vyberte položku Model strojového učenia. Snímka obrazovky zobrazujúca miesto, kde vybrať položku Experimentovať po výbere tlačidla Vytvoriť.
  4. Po vytvorení modelu môžete začať pridávať verzie modelov a sledovať spúšťanie metrík a parametrov. Registrácia alebo uloženie spustení experimentov do existujúceho modelu.

Model strojového učenia môžete vytvoriť aj priamo z vašej tvorby pomocou rozhrania mlflow.register_model() API. Ak registrovaný model strojového učenia s daným názvom neexistuje, rozhranie API ho automaticky vytvorí.

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))

Správa verzií v rámci modelu strojového učenia

Model strojového učenia obsahuje kolekciu verzií modelov na zjednodušené sledovanie a porovnanie. V rámci modelu môže dátový vedec prechádzať rôznymi verziami modelov a skúmať základné parametre a metriky. Dátoví vedci môžu tiež porovnať verzie modelov, aby zistili, či novšie modely môžu alebo nemusia priniesť lepšie výsledky.

Sledovanie modelov strojového učenia

Verzia modelu strojového učenia predstavuje individuálny model, ktorý je zaregistrovaný na sledovanie.

Snímka obrazovky zobrazujúca obrazovku podrobností modelu.

Každá verzia modelu obsahuje nasledujúce informácie:

  • Čas vytvorený: Dátum a čas vytvorenia modelu.
  • Názov spustenia: Identifikátor spustení experimentu, ktorý sa použije na vytvorenie konkrétnej verzie modelu.
  • Hyperparameters: Hyperparametre sa ukladajú ako páry kľúč-hodnota. Kľúče aj hodnoty sú reťazce.
  • Metriky: Spustite metriky uložené ako páry kľúča a hodnoty. Hodnota je numerická.
  • Schéma modelu/Podpis: popis vstupov a výstupov modelu.
  • zaznamenané súbory: Zaznamenané súbory v ľubovoľnom formáte. Môžete napríklad zaznamenávať obrázky, prostredie, modely a údajové súbory.
  • Značky: Páry metaúdajov ako párov kľúč-hodnota pre spustenie.

Používanie značiek na modely strojového učenia

Označovanie toku MLflow pre verzie modelu umožňuje používateľom prikladať vlastné metaúdaje ku konkrétnym verziám registrovaného modelu v databáze Registry modelu MLflow. Tieto značky uložené ako páry kľúča a hodnoty pomáhajú organizovať, sledovať a rozlišovať medzi verziami modelu, čím sa zjednodušuje spravovanie životného cyklu modelu. Značky možno používať na označenie účelu modelu, prostredia nasadenia alebo akýchkoľvek iných relevantných informácií, čím sa uľahčí efektívnejšie spravovanie modelov a rozhodovanie v rámci tímov.

Tento kód ukazuje, ako trénovať model RandomForestRegressor pomocou nástroja Scikit-learn, zapísať model a parametre pomocou MLflow a potom zaregistrovať model v databáze Registry modelu MLflow s vlastnými značkami. Tieto značky poskytujú užitočné metaúdaje, ako je napríklad názov projektu, oddelenie, tím a štvrťrok projektu, čím sa zjednodušuje správa a sledovanie verzie modelu.

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}")

Po použití značiek ich môžete zobraziť priamo na stránke s podrobnosťami o verzii modelu. Okrem toho môžu byť značky kedykoľvek pridané, aktualizované alebo odstránené z tejto stránky.

Snímka obrazovky zobrazujúca značky použité pri spustení na stránke s podrobnosťami.

Porovnanie a filtrovanie modelov strojového učenia

Ak chcete porovnať a vyhodnotiť kvalitu verzií modelu strojového učenia, môžete porovnať parametre, metriky a metaúdaje medzi vybratými verziami.

Vizuálne porovnanie modelov strojového učenia

Môžete vizuálne porovnať spustenia v rámci existujúceho modelu. Porovnávanie vizuálov umožňuje jednoduchú navigáciu medzi viacerými verziami a ich druhmi.

Snímka obrazovky zobrazujúca zoznam spustení na porovnanie.

Ak chcete porovnať spustenia, môžete:

  1. Vyberte existujúci model strojového učenia, ktorý obsahuje viacero verzií.
  2. Vyberte kartu Zobraziť a zobrazenie prejdite do zoznamu Model. Môžete tiež vybrať možnosť Zobraziť model zoznamu priamo zo zobrazenia podrobností.
  3. Môžete prispôsobiť stĺpce v tabuľke. Rozbaľte tablu Prispôsobiť stĺpce. Odtiaľ môžete vybrať vlastnosti, metriky, značky a hyperparametre, ktoré chcete zobraziť.
  4. Nakoniec môžete vybrať viacero verzií na porovnanie ich výsledkov na table porovnávania metrík. Na tejto table môžete prispôsobiť grafy so zmenami v názve grafu, type vizualizácie, osi x, osi y a ďalších.

Porovnanie modelov strojového učenia pomocou rozhrania API toku MLflow

Vedci pracujúci s údajmi môžu na vyhľadávanie medzi viacerými modelmi uloženými v pracovnom priestore použiť aj tok MLflow. Ak chcete zistiť ďalšie rozhrania MLflow API na interakciu modelu, navštívte dokumentáciu k toku MLflow.

from pprint import pprint

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

Používanie modelov strojového učenia

Keď natrénujete model na množine údajov, môžete tento model použiť na údaje, ktoré nikdy nevidel na generovanie predpovedí. Tento model nazývame technika použitia bodovania alebo odvodenie. Ďalšie informácie o bodovaní modelov služby Microsoft Fabric nájdete v ďalšej časti.