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
- Predplatné na Power BI Premium. Ak ho nemáte, pozrite si Ako si kúpiť službu Power BI Premium.
- Pracovný priestor Power BI s priradenou kapacitou Premium.
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:
- Vytvorte nový pracovný priestor alebo vyberte existujúci.
- Novú položku môžete vytvoriť prostredníctvom pracovného priestoru alebo pomocou možnosti Vytvoriť.
- 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.
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.
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.
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
,mlflow
alebotrident
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.
Porovnanie spustení:
- Vyberte existujúci experiment strojového učenia, ktorý obsahuje viacero spustení.
- 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í.
- 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ť.
- Rozbaľte tablu Filtrovať zúžite výsledky na základe určitých vybratých kritérií.
- 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.
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.
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í.
Sledovanie súvisiacich spustení experimentu strojového učenia z vašej aplikácie služby Spark
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.