Zdieľať cez


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

Strojové učenie experiment je primárnou jednotkou organizácie a kontroly pre všetky súvisiace spustenia strojového učenia. Spustenie zodpovedá jedinému vykonaniu kódu modelu. V MLflowje sledovanie založené na experimentoch a spusteniach.

Experimenty strojového učenia umožňujú dátovým vedcom zaznamenávať parametre, verzie kódu, metriky a výstupné súbory pri spúšťaní kódu strojového učenia. Experimenty tiež umožňujú vizualizovať, vyhľadávať a porovnávať spustenia, ako aj sťahovať spúšťané súbory a metaúdaje na analýzu v iných nástrojoch.

V tomto článku sa dozviete viac o tom, ako môžu dátoví vedci pracovať a používať experimenty strojového učenia na organizovanie procesu vývoja a sledovanie viacerých spustení.

Predpoklady

Vytvorenie experimentu

Experiment strojového učenia môžete vytvoriť priamo z používateľského rozhrania (UI) štruktúry alebo napísaním kódu, ktorý používa rozhranie API toku MLflow.

Vytvorenie experimentu pomocou používateľského rozhrania

Vytvorenie experimentu strojového učenia z používateľského rozhrania:

  1. Vytvorte nový pracovný priestor alebo vyberte existujúci.
  2. 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 Experimentovať. 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 Experimentovať. Snímka obrazovky zobrazujúca miesto, kde vybrať položku Experimentovať po výbere tlačidla Vytvoriť.
  3. Zadajte názov experimentu a vyberte Vytvoriť. Táto akcia vytvorí prázdny experiment v rámci vášho pracovného priestoru.

Po vytvorení experimentu môžete začať pridávať spustenia na sledovanie metrík spustenia a parametrov.

Vytvorenie experimentu pomocou rozhrania API toku MLflow

Môžete tiež vytvoriť experiment strojového učenia priamo z vašej tvorby pomocou rozhrania mlflow.create_experiment() alebo mlflow.set_experiment() API. V nasledujúcom kóde nahraďte <EXPERIMENT_NAME> názvom experimentu.

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

Správa spustení v rámci experimentu

Experiment strojového učenia obsahuje kolekciu spustení na zjednodušené sledovanie a porovnanie. V rámci experimentu môže dátový vedec prechádzať rôznymi spusteniami a skúmať základné parametre a metriky. Dátoví vedci tiež môžu porovnať spustenia v rámci experimentu strojového učenia, aby zistili, ktorá podmnožina parametrov prinesie požadovaný výkon modelu.

Spustenia na sledovanie

Spustenie strojového učenia zodpovedá jednému vykonaniu kódu modelu.

Snímka obrazovky so stránkou podrobností spustenia strojového učenia.

Každé spustenie obsahuje nasledujúce informácie:

  • Source: Názov poznámkového bloku, ktorý vytvoril spustenie.
  • Registrovaná verzia: označuje, či bol spustenie uložené ako model strojového učenia.
  • Počiatočný dátum: Čas spustenia.
  • Stav: priebeh spustenia.
  • Hyperparameters: Hyperparametre uložené ako páry kľúča a hodnoty. Kľúče aj hodnoty sú reťazce.
  • Metriky: Spustite metriky uložené ako páry kľúča a hodnoty. Hodnota je numerická.
  • výstupné súbory: výstupné 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.

Zobrazenie posledných spustení

Môžete tiež zobraziť nedávne spustenia experimentovania výberom položky zoznamu Spustiť. Toto zobrazenie vám umožňuje mať prehľad o nedávnej aktivite, rýchlo prejsť na súvisiacu aplikáciu Spark a použiť filtre na základe stavu spustenia.

Snímka obrazovky zobrazujúca nedávne spustenia strojového učenia.

Porovnanie a spustenia filtra

Ak chcete porovnať a vyhodnotiť kvalitu spustení strojového učenia, môžete porovnať parametre, metriky a metaúdaje medzi vybratými spusteniami v rámci experimentu.

Použitie značiek na spustenia

Označovanie toku MLflow pre spustenia experimentov umožňuje používateľom pridávať vlastné metaúdaje vo forme párov kľúč-hodnota do svojich spustení. Tieto značky pomáhajú kategorizovať, filtrovať a vyhľadávať spustenia na základe konkrétnych atribútov, čím sa zjednodušuje správa a analýza experimentov v rámci platformy toku MLflow. Používatelia môžu využívať značky na označovanie spustení s informáciami, ako sú napríklad typy modelov, parametre alebo akékoľvek relevantné identifikátory, čím sa zlepší celková organizácia a vysledovateľnosť experimentov.

Tento zlomok kódu spustí spustenie toku MLflow, zapíše do denníkov niektoré parametre a metriky a pridá značky do kategorizácie a poskytne ďalší kontext na spustenie.

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

Po použití značiek môžete výsledky zobraziť priamo z vnorenej miniaplikácie toku MLflow alebo zo stránky s podrobnosťami spustenia.

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

Varovanie

Upozornenie: Obmedzenia pri použití značiek na spustenia experimentov s MLflow v službe Fabric

  • neprázdnych značiek: Názvy alebo hodnoty značiek nemôžu byť prázdne. Ak sa pokúsite použiť značku s prázdnym názvom alebo hodnotou, operácia zlyhá.
  • Názvy značiek: Názvy značiek môžu mať dĺžku až 250 znakov.
  • Hodnota značky: Hodnoty značiek môžu mať dĺžku až 5 000 znakov.
  • Restricted Tag Names: Názvy značiek, ktoré začínajú určitými predponami, nie sú podporované. Názvy značiek začínajúcich synapseml, mlflowalebo trident sú obmedzené a nebudú prijímané.

Vizuálne porovnanie spustení

Môžete vizuálne porovnať a filtrovať spustenia v rámci existujúceho experimentu. Porovnávanie vizuálov umožňuje jednoducho prechádzať medzi viacerými spusteniami a zoraďovať medzi nimi.

Snímka obrazovky zobrazujúca zoznam spustení a zobrazenie grafu.

Porovnanie spustení:

  1. Vyberte existujúci experiment strojového učenia, ktorý obsahuje viacero spustení.
  2. Vyberte kartu Zobraziť a potom prejdite do zoznamu Spustiť zobrazenie. Prípadne môžete vybrať možnosť Zobraziť zoznam spustení priamo zo zobrazenia Podrobnosti o spustení.
  3. Prispôsobte stĺpce v tabuľke rozbalením tably Prispôsobiť stĺpce. Tu môžete vybrať vlastnosti, metriky, značky a hyperparametre, ktoré by ste chceli vidieť.
  4. Rozbaľte tablu Filtrovať zúžite výsledky na základe určitých vybratých kritérií.
  5. Vyberte viacero spustení na porovnanie svojich výsledkov na table porovnávania metrík. Na tejto table môžete prispôsobiť grafy zmenou názvu grafu, typu vizualizácie, osi x, osi y a ďalších možností.

Porovnanie spustení pomocou rozhrania API MLflow

Dátoví vedci môžu tiež použiť tok ML na dotazovanie a vyhľadávanie medzi spusteniami v rámci experimentu. Ďalšie rozhrania API toku MLflow môžete preskúmať na vyhľadávanie, filtrovanie a porovnávanie spustení navštívením dokumentácie k MLflow.

Získanie všetkých spustení

Rozhranie API vyhľadávania MLflow môžete použiť mlflow.search_runs() na získanie všetkých spustení v experimente nahradením <EXPERIMENT_NAME> názvom experimentu alebo <EXPERIMENT_ID> vaším ID experimentu v nasledujúcom kóde:

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

Tip

Môžete vyhľadávať v rôznych experimentoch tak, že do parametra experiment_ids zadáte zoznam ID experimentov. Podobne platí, že ak zadáte zoznam názvov experimentov do parametra experiment_names umožníte toku MLflow vyhľadávať vo viacerých experimentoch. Môže to byť užitočné, ak chcete porovnať spustenia naprieč rôznymi experimentmi.

Spustenia poradia a obmedzenia

Pomocou parametra max_results z search_runs môžete obmedziť počet vrátených spustení. Parameter order_by umožňuje vytvoriť zoznam stĺpcov, podľa ktorého sa má zoradiť, a môže obsahovať voliteľnú hodnotu DESC alebo ASC. Nasledujúci príklad napríklad vráti posledné spustenie experimentu.

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

Porovnanie spustení v poznámkovom bloku služby Fabric

Miniaplikáciu na vytváranie toku strojového učenia v poznámkových blokoch služby Fabric môžete použiť na sledovanie spustení toku MLflow vygenerovaných v každej bunke poznámkového bloku. Miniaplikácia vám umožňuje sledovať spúšťania, súvisiace metriky, parametre a vlastnosti až na úroveň jednotlivých buniek.

Ak chcete získať porovnanie vizuálov, môžete prejsť aj do zobrazenia Spustiť porovnanie. Toto zobrazenie predstavuje údaje graficky pomocou rýchlej identifikácie vzorov alebo odchýlok v rôznych spusteniach.

Snímka obrazovky zobrazujúca, ako používať miniaplikáciu na vytváranie mlflow.

Uloženie spustenia ako modelu strojového učenia

Keď spustenie prinesie požadovaný výsledok, spustenie môžete uložiť ako model na vylepšené sledovanie modelu a na nasadenie modelu výberom položky Uložiť ako model strojového učenia.

Snímka obrazovky zobrazujúca miesto, kde môžete vybrať položku Vytvoriť nový model.

Monitorovanie experimentov strojového učenia (Preview)

Experimenty strojového učenia sú integrované priamo do služby Monitor. Táto funkcia je navrhnutá tak, aby vám poskytla lepší prehľad o aplikáciách Spark a experimentoch strojového učenia, ktoré generujú, a uľahčuje správu a ladenie týchto procesov.

Sledovanie spustení z monitora

Používatelia môžu sledovať experimentovanie spúšťané priamo z monitorovania, čo poskytuje zjednotené zobrazenie všetkých svojich aktivít. Táto integrácia obsahuje možnosti filtrovania, ktoré používateľom umožňujú zamerať sa na experimenty alebo spustenia vytvorené za posledných 30 dní alebo iných zadaných období.

Snímka obrazovky zobrazujúca, kde sa na karte monitora zobrazujú spúšťa zobrazenia.

Experiment strojového učenia je integrovaný priamo do služby Monitor, kde môžete vybrať konkrétnu aplikáciu Spark a získať prístup k snímkam položiek. Tu nájdete zoznam všetkých experimentov a spustení vygenerovaných danou aplikáciou.