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 naučíte, ako:

  • Vytvárajte modely strojového učenia v Microsoft Fabric
  • Spravovať a sledovať verzie modelov
  • Porovnanie výkonu modelu naprieč verziami
  • Použitie modelov na hodnotenie a inferenciu

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.

Na vytvorenie modelu strojového učenia z používateľského rozhrania:

  1. Vyberte existujúci pracovný priestor dátovej vedy alebo vytvorte nový pracovný priestor.
  2. Vytvorte nový predmet cez pracovný priestor alebo pomocou tlačidla 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 menu Nová položka s možnosťou ML Model zvýraznenou v sekcii Analyzovať a trénovať dáta.
    2. Tlačidlo Vytvoriť:
      1. Vyberte Vytvoriť, ktorý nájdete v ... v zvislej ponuke. Snímka obrazovky tlačidla Create umiestneného vo vertikálnom menu.
      2. VData Science vyberte položku Model strojového učenia. Snímka obrazovky menu Create zobrazuje možnosť ML Model v sekcii Data Science.
  3. 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 stránky s podrobnosťami verzie modelu strojového učenia zobrazujúca metriky, parametre a informácie o sledovaní.

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.

Screenshot stránky s detailmi verzie modelu, ktorá zobrazuje vlastné tagy ako názov projektu a informácie o tíme.

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 pohľadu na porovnanie modelov zobrazujúca viacero verzií modelov strojového učenia s metrikami a parametrami.

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
from mlflow import MlflowClient

client = MlflowClient()
for rm in client.search_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 kroky: