Del via


Maskinlæringsmodell i Microsoft Fabric

En maskinlæringsmodell er en fil som er opplært til å gjenkjenne visse typer mønstre. Du lærer opp en modell over et sett med data, og du gir den en algoritme som bruker til å resonnere og lære av det datasettet. Når du har kalibrert modellen, kan du bruke den til å tenke over data som den aldri har sett før, og lage prognoser om disse dataene.

I MLflow-kan en maskinlæringsmodell inneholde flere modellversjoner. Her kan hver versjon representere en modell gjentakelse. I denne artikkelen lærer du hvordan du samhandler med ML-modeller for å spore og sammenligne modellversjoner.

Opprette en maskinlæringsmodell

I MLflow inkluderer maskinlæringsmodeller et standard emballasjeformat. Dette formatet tillater bruk av disse modellene i ulike nedstrømsverktøy, inkludert batch-inferencing på Apache Spark. Formatet definerer en konvensjon for å lagre en modell i forskjellige "smaker" som ulike nedstrømsverktøy kan forstå.

Du kan opprette en maskinlæringsmodell direkte fra stoffgrensesnittet. MLflow-API-en kan også opprette modellen direkte.

Hvis du vil opprette en maskinlæringsmodell fra brukergrensesnittet, kan du:

  1. Opprett et nytt arbeidsområde for datavitenskap, eller velg et eksisterende arbeidsområde for datavitenskap.
  2. Opprett et nytt arbeidsområde, eller velg et eksisterende arbeidsområde.
  3. Du kan opprette et nytt element via arbeidsområdet eller ved hjelp av Opprett.
    1. Arbeidsområde:
      1. Velg arbeidsområdet.
      2. Velg Nytt element.
      3. Velg ML-modell under Analyser og lær opp data. Skjermbilde som viser hvor du velger Eksperimenter i arbeidsområdet.
    2. Opprett-knapp:
      1. Velg Opprett, som du finner i ... fra den loddrette menyen. Skjermbilde av opprett-knappen.
      2. Velg ML-modell under Data Science. Skjermbilde som viser hvor du velger Eksperimenter etter at du har valgt oppretting.
  4. Etter at modellen er opprettet, kan du begynne å legge til modellversjoner for å spore kjøring av måledata og parametere. Registrer eller lagre eksperimentkjøringer i en eksisterende modell.

Du kan også opprette en maskinlæringsmodell direkte fra redigeringsopplevelsen med mlflow.register_model() API-en. Hvis en registrert maskinlæringsmodell med det angitte navnet ikke finnes, oppretter API-en den automatisk.

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

Administrere versjoner i en maskinlæringsmodell

En maskinlæringsmodell inneholder en samling modellversjoner for forenklet sporing og sammenligning. I en modell kan en dataforsker navigere på tvers av ulike modellversjoner for å utforske de underliggende parameterne og måledataene. Dataforskere kan også gjøre sammenligninger på tvers av modellversjoner for å identifisere om nyere modeller kan gi bedre resultater.

Spor maskinlæringsmodeller

En maskinlæringsmodellversjon representerer en individuell modell som er registrert for sporing.

Skjermbilde som viser detaljer-skjermen for en modell.

Hver modellversjon inneholder følgende informasjon:

  • Tid opprettet: Dato og klokkeslett for oppretting av modell.
  • Run Name: Identifikatoren for eksperimentet kjører som brukes til å opprette denne bestemte modellversjonen.
  • Hyperparametere: Hyperparametere lagres som nøkkelverdipar. Både nøkler og verdier er strenger.
  • måledata: Kjør måledata som er lagret som nøkkelverdipar. Verdien er numerisk.
  • Model Schema/Signature: En beskrivelse av modellens inndata og utdata.
  • Loggførte filer: Loggførte filer i alle formater. Du kan for eksempel ta opp bilder, miljø, modeller og datafiler.
  • Merker: Metadata som nøkkelverdipar som skal kjøres.

Bruke merker på maskinlæringsmodeller

MLflow-merking for modellversjoner gjør det mulig for brukere å knytte egendefinerte metadata til bestemte versjoner av en registrert modell i MLflow Model Registry. Disse kodene, som er lagret som nøkkelverdipar, hjelper deg med å organisere, spore og skille mellom modellversjoner, noe som gjør det enklere å administrere modelllivssykluser. Merker kan brukes til å angi modellens formål, distribusjonsmiljø eller annen relevant informasjon, noe som gjør det enklere å administrere og ta beslutninger i team.

Denne koden viser hvordan du lærer opp en RandomForestRegressor-modell ved hjelp av Scikit-learn, logger modellen og parameterne med MLflow, og registrerer deretter modellen i MLflow Model Registry med egendefinerte koder. Disse kodene inneholder nyttige metadata, for eksempel prosjektnavn, avdeling, team og prosjektkvarter, noe som gjør det enklere å administrere og spore modellversjonen.

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

Når du har brukt kodene, kan du vise dem direkte på siden for modellversjonsdetaljer. I tillegg kan merker legges til, oppdateres eller fjernes fra denne siden når som helst.

Skjermbilde som viser koder som brukes på en kjøring på detaljsiden.

Sammenligne og filtrere maskinlæringsmodeller

Hvis du vil sammenligne og evaluere kvaliteten på maskinlæringsmodellversjoner, kan du sammenligne parametere, måledata og metadata mellom valgte versjoner.

Sammenligne maskinlæringsmodeller visuelt

Du kan visuelt sammenligne kjøringer i en eksisterende modell. Visualobjektsammenligning gir enkel navigering mellom, og sorterer på tvers, flere versjoner.

Skjermbilde som viser en liste over kjøringer for sammenligning.

Hvis du vil sammenligne kjøringer, kan du:

  1. Velg en eksisterende maskinlæringsmodell som inneholder flere versjoner.
  2. Velg fanen Vis, og gå deretter til modellliste visning. Du kan også velge alternativet for å Vis modellliste direkte fra detaljvisningen.
  3. Du kan tilpasse kolonnene i tabellen. Utvid Tilpass kolonner-ruten. Derfra kan du velge egenskapene, måledataene, kodene og hyperparameterne du vil se.
  4. Til slutt kan du velge flere versjoner, for å sammenligne resultatene, i måledatasammenligningsruten. Fra denne ruten kan du tilpasse diagrammene med endringer i diagramtittelen, visualiseringstypen, X-aksen, Y-aksen og mer.

Sammenligne maskinlæringsmodeller ved hjelp av API-en for MLflow

Dataforskere kan også bruke MLflow til å søke blant flere modeller som er lagret i arbeidsområdet. Gå til MLflow-dokumentasjonen for å utforske andre MLflow-API-er for modellsamhandling.

from pprint import pprint

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

Bruke maskinlæringsmodeller

Når du har kalibrert en modell på et datasett, kan du bruke denne modellen på data den aldri så for å generere prognoser. Vi kaller denne modellen bruk teknikk scoring eller inferencing. Hvis du vil ha mer informasjon om Microsoft Fabric-modellpoeng, kan du se neste del.