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:
- Opprett et nytt arbeidsområde for datavitenskap, eller velg et eksisterende arbeidsområde for datavitenskap.
- Opprett et nytt arbeidsområde, eller velg et eksisterende arbeidsområde.
- Du kan opprette et nytt element via arbeidsområdet eller ved hjelp av Opprett.
- 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.
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.
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.
Hvis du vil sammenligne kjøringer, kan du:
- Velg en eksisterende maskinlæringsmodell som inneholder flere versjoner.
- Velg fanen Vis, og gå deretter til modellliste visning. Du kan også velge alternativet for å Vis modellliste direkte fra detaljvisningen.
- Du kan tilpasse kolonnene i tabellen. Utvid Tilpass kolonner-ruten. Derfra kan du velge egenskapene, måledataene, kodene og hyperparameterne du vil se.
- 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.