Del via


Maskinlæringseksperimenter i Microsoft Fabric

En maskinlæring eksperimentere er den primære enheten i organisasjonen og kontroll for alle relaterte maskinlæringskjøringer. En kjøre tilsvarer en enkelt kjøring av modellkode. I MLflow-er sporing basert på eksperimenter og kjøringer.

Maskinlæringseksperimenter gjør det mulig for dataforskere å logge parametere, kodeversjoner, måledata og utdatafiler når de kjører maskinlæringskoden. Eksperimenter lar deg også visualisere, søke etter og sammenligne kjøringer, samt laste ned kjøre filer og metadata for analyse i andre verktøy.

I denne artikkelen lærer du mer om hvordan dataforskere kan samhandle med og bruke maskinlæringseksperimenter til å organisere utviklingsprosessen og spore flere kjøringer.

Forutsetninger

Opprette et eksperiment

Du kan opprette et maskinlæringseksperiment direkte fra stoffbrukergrensesnittet eller ved å skrive kode som bruker MLflow-API-en.

Opprette et eksperiment ved hjelp av brukergrensesnittet

Slik oppretter du et maskinlæringseksperiment fra brukergrensesnittet:

  1. Opprett et nytt arbeidsområde, eller velg et eksisterende arbeidsområde.
  2. 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 Eksperimenter 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 Eksperimenter under Data Science. Skjermbilde som viser hvor du velger Eksperimenter etter at du har valgt oppretting.
  3. Angi et eksperimentnavn, og velg Opprett. Denne handlingen oppretter et tomt eksperiment i arbeidsområdet.

Når du har opprettet eksperimentet, kan du begynne å legge til kjøringer for å spore kjøremetrikk og parametere.

Opprette et eksperiment ved hjelp av API-en for MLflow

Du kan også opprette et maskinlæringseksperiment direkte fra redigeringsopplevelsen ved hjelp av mlflow.create_experiment() eller mlflow.set_experiment() API-er. I følgende kode erstatter du <EXPERIMENT_NAME> med eksperimentets navn.

import mlflow
 
# This will create a new experiment with the provided name.
mlflow.create_experiment("<EXPERIMENT_NAME>")

# This will set the given experiment as the active experiment. 
# If an experiment with this name does not exist, a new experiment with this name is created.
mlflow.set_experiment("<EXPERIMENT_NAME>")

Administrere kjøringer i et eksperiment

Et maskinlæringseksperiment inneholder en samling kjøringer for forenklet sporing og sammenligning. I et eksperiment kan en dataforsker navigere på tvers av ulike kjøringer og utforske de underliggende parameterne og måledataene. Dataforskere kan også sammenligne kjøringer i et maskinlæringseksperiment for å identifisere hvilket delsett av parametere som gir en ønsket modellytelse.

Spor kjøringer

En maskinlæringskjøring tilsvarer én kjøring av modellkode.

Skjermbilde av detaljsiden for kjøring av maskinlæring.

Hver kjøring inneholder følgende informasjon:

  • Kilde: Navnet på notatblokken som opprettet kjøringen.
  • registrert versjon: Angir om kjøringen ble lagret som en maskinlæringsmodell.
  • Startdato: Starttidspunkt for kjøringen.
  • Status: Fremdrift for kjøringen.
  • Hyperparametere: Hyperparametere lagret 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.
  • Utdatafiler: Utdatafiler i alle formater. Du kan for eksempel ta opp bilder, miljø, modeller og datafiler.
  • Merker: Metadata som nøkkelverdipar som skal kjøres.

Vis nylige kjøringer

Du kan også vise nylige kjøringer for et eksperiment ved å velge Kjør liste. Med denne visningen kan du holde oversikt over nylig aktivitet, raskt hoppe til det relaterte Spark-programmet og bruke filtre basert på kjørestatusen.

Skjermbilde av nylige kjøringer av maskinlæring.

Sammenligne og filtrere kjøringer

Hvis du vil sammenligne og evaluere kvaliteten på maskinlæringskjøringene, kan du sammenligne parametere, måledata og metadata mellom valgte kjøringer i et eksperiment.

Bruke merker på kjøringer

MLflow-merking for eksperimentkjøringer gjør det mulig for brukere å legge til egendefinerte metadata i form av nøkkelverdipar i kjøringene. Disse kodene bidrar til å kategorisere, filtrere og søke etter kjøringer basert på bestemte attributter, noe som gjør det enklere å administrere og analysere eksperimenter i MLflow-plattformen. Brukere kan bruke koder til å merke kjøringer med informasjon som modelltyper, parametere eller relevante identifikatorer, noe som forbedrer den generelle organisasjonen og sporbarheten til eksperimenter.

Denne kodesnutten starter en MLflow-kjøring, logger noen parametere og måledata, og legger til koder for å kategorisere og gi ekstra kontekst for kjøringen.

import mlflow
import mlflow.sklearn
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
from sklearn.datasets import fetch_california_housing

# Autologging
mlflow.autolog()

# Load the California housing dataset
data = fetch_california_housing(as_frame=True)
X = data.data
y = data.target

# Split the data
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# Start an MLflow run
with mlflow.start_run() as run:

    # Train the model
    model = LinearRegression()
    model.fit(X_train, y_train)

    # Predict and evaluate
    y_pred = model.predict(X_test)
    
    # Add tags
    mlflow.set_tag("model_type", "Linear Regression")
    mlflow.set_tag("dataset", "California Housing")
    mlflow.set_tag("developer", "Bob")

Når kodene er brukt, kan du deretter vise resultatene direkte fra det innebygde MLflow-kontrollprogrammet eller fra siden for kjøredetaljer.

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

Advarsel

Advarsel: Begrensninger for bruk av merker på MLflow Experiment Runs i Fabric

  • koder som ikke er tomme: Kodenavn eller verdier kan ikke være tomme. Hvis du prøver å bruke en kode med et tomt navn eller en tom verdi, vil operasjonen mislykkes.
  • Merkenavn: Kodenavn kan inneholde opptil 250 tegn.
  • kodeverdier: Kodeverdier kan inneholde opptil 5000 tegn.
  • Begrensede kodenavn: Kodenavn som begynner med visse prefikser, støttes ikke. Kodenavn som begynner med synapseml, mlfloweller trident, er begrenset og godtas ikke.

Sammenligne kjøringer visuelt

Du kan visuelt sammenligne og filtrere kjøringer i et eksisterende eksperiment. Med visualobjektsammenligning kan du enkelt navigere mellom flere kjøringer og sortere på tvers av dem.

Skjermbilde som viser en liste over kjøringer og diagramvisningen.

Slik sammenligner du kjøringer:

  1. Velg et eksisterende maskinlæringseksperiment som inneholder flere kjøringer.
  2. Velg Vis-fanen, og gå deretter til Kjør-listen visning. Alternativt kan du velge alternativet for å Vis kjøreliste direkte fra Kjør detaljer visning.
  3. Tilpass kolonnene i tabellen ved å utvide Tilpass kolonner-ruten. Her kan du velge egenskaper, måledata, koder og hyperparametere som du vil se.
  4. Utvid Filtrer-ruten for å begrense resultatene basert på bestemte valgte vilkår.
  5. Velg flere kjøringer for å sammenligne resultatene i sammenligningsruten for måledata. Fra denne ruten kan du tilpasse diagrammene ved å endre diagramtittelen, visualiseringstypen, X-aksen, Y-aksen med mer.

Sammenligne kjøringer ved hjelp av API-en for MLflow

Dataforskere kan også bruke MLflow til å spørre og søke blant kjøringer i et eksperiment. Du kan utforske flere MLflow-API-er for søk, filtrering og sammenligning av kjøringer ved å gå til MLflow-dokumentasjon.

Få alle kjøringer

Du kan bruke MLflow-søke-API-en mlflow.search_runs() for å få alle kjøringer i et eksperiment ved å erstatte <EXPERIMENT_NAME> med eksperimentnavnet eller <EXPERIMENT_ID> med eksperiment-ID-en i følgende kode:

import mlflow

# Get runs by experiment name: 
mlflow.search_runs(experiment_names=["<EXPERIMENT_NAME>"])

# Get runs by experiment ID:
mlflow.search_runs(experiment_ids=["<EXPERIMENT_ID>"])

Tips

Du kan søke på tvers av flere eksperimenter ved å gi en liste over eksperiment-ID-er til experiment_ids-parameteren. På samme måte vil det å gi en liste over eksperimentnavn til experiment_names-parameteren tillate MLflow å søke på tvers av flere eksperimenter. Dette kan være nyttig hvis du vil sammenligne på tvers av kjøringer i ulike eksperimenter.

Bestillings- og grensekjøringer

Bruk max_results-parameteren fra search_runs til å begrense antall returnerte kjøringer. Med order_by-parameteren kan du liste opp kolonnene du vil ordne etter, og kan inneholde en valgfri DESC- eller ASC-verdi. Eksemplet nedenfor returnerer for eksempel den siste kjøringen av et eksperiment.

mlflow.search_runs(experiment_ids=[ "1234-5678-90AB-CDEFG" ], max_results=1, order_by=["start_time DESC"])

Sammenligne kjøringer i en Fabric-notatblokk

Du kan bruke kontrollprogrammet for MLFlow-redigering i Fabric-notatblokker til å spore MLflow-kjøringer som genereres i hver notatblokkcelle. Kontrollprogrammet lar deg spore kjøringer, tilknyttede måledata, parametere og egenskaper helt ned til det individuelle cellenivået.

Hvis du vil ha en visuell sammenligning, kan du også bytte til Kjør sammenligning visning. Denne visningen presenterer dataene grafisk, noe som bidrar til rask identifisering av mønstre eller avvik på tvers av ulike kjøringer.

Skjermbilde som viser hvordan du bruker kontrollprogrammet for MLFlow-redigering.

Lagre kjøring som maskinlæringsmodell

Når en kjøring gir ønsket resultat, kan du lagre kjøringen som en modell for forbedret modellsporing og for modelldistribusjon ved å velge Lagre som en ML-modell.

Skjermbilde som viser hvor du velger Opprett en ny modell.

Overvåk ML-eksperimenter (forhåndsversjon)

ML-eksperimenter integreres direkte i Monitor. Denne funksjonaliteten er utformet for å gi mer innsikt i Spark-programmene og ML-eksperimentene de genererer, noe som gjør det enklere å administrere og feilsøke disse prosessene.

Spor kjøringer fra skjermen

Brukere kan spore eksperimentkjøringer direkte fra skjermen, noe som gir en enhetlig visning av alle aktivitetene deres. Denne integreringen omfatter filtreringsalternativer, slik at brukere kan fokusere på eksperimenter eller kjøringer som er opprettet i løpet av de siste 30 dagene eller andre angitte perioder.

Skjermbilde som viser hvor visningen kjøres i skjermfanen.

ML Experiment integreres direkte i Monitor, der du kan velge et bestemt Spark-program og få tilgang til øyeblikksbilder av elementer. Her finner du en liste over alle eksperimentene og kjøringene som genereres av programmet.