Sdílet prostřednictvím


Experimenty strojového učení v Microsoft Fabric

Experiment strojového učení je primární jednotkou organizace a řízení pro veškerá související spuštění strojového učení. Jeden běh odpovídá jedinému spuštění kódu modelu. V MLflowje sledování založené na experimentech a spuštěních.

Experimenty strojového učení umožňují datovým vědcům protokolovat parametry, verze kódu, metriky a výstupní soubory při spouštění kódu strojového učení. Experimenty také umožňují vizualizovat, vyhledávat a porovnávat spuštění a stahovat soubory a metadata pro analýzu v jiných nástrojích.

V tomto článku se dozvíte více o tom, jak můžou datoví vědci pracovat a používat experimenty strojového učení k uspořádání procesu vývoje a sledování více běhů.

Požadavky

  • Předplatné Power BI Premium. Pokud ho nemáte, podívejte se, co je Power BI Premium?
  • Pracovní prostor Power BI s přiřazenou kapacitou Premium

Vytvoření experimentu

Experiment strojového učení můžete vytvořit přímo z uživatelského rozhraní infrastruktury nebo napsáním kódu, který používá rozhraní API MLflow.

Vytvoření experimentu pomocí uživatelského rozhraní

Vytvoření experimentu strojového učení z uživatelského rozhraní:

  1. Vytvořte nový pracovní prostor nebo vyberte existující pracovní prostor.

  2. V levém horním rohu pracovního prostoru vyberte Nová položka. V části Analyzovat a trénovat data vyberte Experiment .

    Snímek obrazovky znázorňující, kde vybrat Možnost Experiment v pracovním prostoru NEBO

  3. Vyberte Vytvořit, které lze najít ve ... v vertikální nabídce.

    Snímek obrazovky s tlačítkem Vytvořit

  4. V části Datové vědy vyberte Experiment.

    Snímek obrazovky znázorňující, kde po výběru možnosti Vytvořit vyberte Experiment

  5. Zadejte název experimentu a vyberte Vytvořit. Tato akce vytvoří v pracovním prostoru prázdný experiment.

Po vytvoření experimentu můžete začít přidávat průběhy, abyste mohli sledovat jejich metriky a parametry.

Vytvoření experimentu pomocí rozhraní API MLflow

Můžete také vytvořit experiment strojového učení přímo ze svého prostředí pro vytváření s použitím rozhraní API mlflow.create_experiment() nebo mlflow.set_experiment(). V následujícím kódu nahraďte <EXPERIMENT_NAME> názvem 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 běhů v rámci experimentu

Experiment strojového učení obsahuje kolekci spuštění pro zjednodušené sledování a porovnání. V rámci experimentu může datový vědec procházet různé běhy a zkoumat základní parametry a metriky. Datoví vědci můžou také porovnat spuštění v rámci experimentu strojového učení a určit, která podmnožina parametrů poskytuje požadovaný výkon modelu.

Pokud chcete zobrazit spuštění pro experiment, vyberte v zobrazení experimentu seznam Spustit .

Snímek obrazovky s nedávnými spuštěními strojového učení

V seznamu spuštění můžete přejít na podrobnosti konkrétního spuštění tak, že vyberete název spuštění.

Sledování podrobností o spuštění

Spuštění strojového učení odpovídá jedinému spuštění kódu modelu. Pro každé spuštění můžete sledovat následující informace:

Snímek obrazovky stránky s podrobnostmi spuštění strojového učení

Každé spuštění obsahuje následující informace:

  • Zdroj: Název poznámkového bloku, který vytvořil proces.
  • Registrovaná verze: Označuje, jestli se spuštění uložilo jako model strojového učení.
  • Počáteční datum: Počáteční čas spuštění.
  • Stav: Průběh spuštění
  • Hyperparametry: Hyperparametry uložené jako páry klíč-hodnota. Klíče i hodnoty jsou řetězce.
  • Metriky: Spusťte metriky uložené jako páry klíč-hodnota. Hodnota je číselná.
  • Výstupní soubory: Výstupní soubory v libovolném formátu. Můžete například zaznamenávat obrázky, prostředí, modely a datové soubory.
  • Značky: Metadata ve formě párů klíč-hodnota pro běhy.

Snímek obrazovky stránky s podrobnostmi spuštění strojového učení

Zobrazení seznamu spuštění

Všechna spuštění můžete zobrazit v experimentu v zobrazení seznamu spuštění . Toto zobrazení umožňuje sledovat nedávné aktivity, rychle přejít na související aplikaci Spark a použít filtry na základě stavu spuštění.

Zobrazení seznamu spuštění

Všechna spuštění můžete zobrazit v experimentu v zobrazení seznamu spuštění . Toto zobrazení umožňuje sledovat nedávné aktivity, rychle přejít na související aplikaci Spark a použít filtry na základě stavu spuštění.

Snímek obrazovky s nedávnými spuštěními strojového učení

Porovnejte a filtrujte běhy

Pokud chcete porovnat a vyhodnotit kvalitu spuštění strojového učení, můžete porovnat parametry, metriky a metadata mezi vybranými spuštěními v rámci experimentu.

Použití značek pro spuštění

Označování MLflow pro spouštění experimentů umožňuje uživatelům přidávat ke svým běhům vlastní metadata ve formě párů klíč-hodnota. Tyto značky pomáhají kategorizovat, filtrovat a vyhledávat spuštění na základě konkrétních atributů, což usnadňuje správu a analýzu experimentů v rámci platformy MLflow. Uživatelé můžou používat značky k označení spuštění s informacemi, jako jsou typy modelů, parametry nebo jakékoli relevantní identifikátory, což zvyšuje celkovou organizaci a sledovatelnost experimentů.

Tento fragment kódu spustí spuštění MLflow, zaznamená některé parametry a metriky a přidá značky pro kategorizaci a poskytne další kontext pro spuštění.

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ček můžete výsledky zobrazit přímo z integrovaného widgetu MLflow nebo ze stránky s podrobnostmi o spuštění.

Snímek obrazovky zobrazující značky přidané ke spuštění na stránce podrobností

Výstraha

Upozornění: Omezení používání značek na běhy experimentů MLflow ve Fabric

  • Neprázdné značky: Názvy značek nebo hodnoty nesmí být prázdné. Pokud se pokusíte použít značku s prázdným názvem nebo hodnotou, operace selže.
  • Názvy značek: Názvy značek mohou mít délku až 250 znaků.
  • Hodnoty značek: Hodnoty značek můžou mít délku až 5 000 znaků.
  • Názvy značek s omezeným přístupem: Názvy značek začínající určitými předponami nejsou podporovány. Konkrétně názvy značek začínající na synapseml, mlflownebo trident jsou omezeny a nebudou přijaty.

Vizuální porovnání běhů

Můžete vizuálně porovnat a filtrovat běhy v rámci existujícího experimentu. Vizuální porovnání umožňuje snadno přecházet mezi několika spuštěními a řadit mezi nimi.

Snímek obrazovky zobrazující seznam běhů a zobrazení grafu

Pro porovnání běhů:

  1. Vyberte existující experiment strojového učení, který obsahuje více spuštění.
  2. Vyberte kartu Zobrazení a poté přejděte do zobrazení Seznam spuštění. Případně můžete vybrat možnost Zobrazit seznam spuštění přímo ze zobrazení podrobností o spuštění .
  3. Sloupce v tabulce můžete přizpůsobit rozbalením podokna Přizpůsobit sloupce . Tady můžete vybrat vlastnosti, metriky, značky a hyperparametry, které chcete zobrazit.
  4. Rozbalením podokna Filtr zúžíte výsledky na základě určitých vybraných kritérií.
  5. Pro porovnání výsledků v podokně porovnání metrik vyberte více běhů. V tomto podokně můžete grafy přizpůsobit změnou názvu grafu, typu vizualizace, osy X, osy Y a dalších možností.

Porovnání spuštění pomocí rozhraní API MLflow

Datoví vědci mohou také použít MLflow k dotazování a vyhledávání mezi spuštěními v rámci experimentu. Další rozhraní API MLflow pro vyhledávání, filtrování a porovnávání spuštění můžete prozkoumat v dokumentaci MLflow.

Získat všechny výsledky

Pomocí rozhraní API mlflow.search_runs() pro vyhledávání MLflow můžete získat všechna spuštění v experimentu nahrazením <EXPERIMENT_NAME> názvu experimentu nebo <EXPERIMENT_ID> ID experimentu v následujícím kódu:

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

Návod

Pokud chcete prohledat více experimentů, zadejte do parametru seznam ID experimentů experiment_ids . Podobně poskytnutí seznamu názvů experimentů parametru experiment_names umožní MLflow prohledávat více experimentů. Může být užitečné, pokud chcete porovnat výsledky běhů v různých experimentech.

Příkazy a omezení spuštění

Pomocí parametru max_results z search_runs omezte počet vrácených spuštění. Parametr order_by umožňuje vypsat sloupce, podle kterých se mají uspořádat, a může obsahovat volitelnou DESC hodnotu nebo ASC hodnotu. Například následující příklad vrátí poslední spuštění experimentu.

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

Porovnejte spuštění v poznámkovém bloku Fabric

Pomocí widgetu pro vytváření mlFlow v poznámkových blocích Fabric můžete sledovat spuštění MLflow vygenerovaná v každé buňce poznámkového bloku. Widget umožňuje sledovat spuštění, přidružené metriky, parametry a vlastnosti přímo na úrovni jednotlivých buněk.

Pokud chcete získat vizuální porovnání, můžete také přepnout do zobrazení Spustit porovnání. Toto zobrazení zobrazuje data graficky, což pomáhá rychle identifikovat vzory nebo odchylky napříč různými běhy.

Snímek obrazovky znázorňující použití widgetu pro tvorbu MLFlow

Uložit spuštění jako model strojového učení

Jakmile spuštění přinese požadovaný výsledek, můžete spuštění uložit jako model pro rozšířené sledování modelů a pro nasazení modelu výběrem možnosti Uložit jako model ML.

Snímek obrazovky znázorňující, kde vybrat Vytvořit nový model

Monitorování experimentů strojového učení (náhled)

Experimenty ML jsou integrovány přímo do Monitoru. Tato funkce je navržená tak, aby poskytovala lepší přehled o vašich aplikacích Spark a experimentech ML, které generují, což usnadňuje správu a ladění těchto procesů.

Sledovat běhy z monitoru

Uživatelé můžou sledovat spuštění experimentu přímo z monitorování a poskytovat jednotné zobrazení všech svých aktivit. Tato integrace zahrnuje možnosti filtrování, které uživatelům umožňují zaměřit se na experimenty nebo spuštění vytvořené během posledních 30 dnů nebo jiných zadaných období.

Snímek obrazovky znázorňující, kde je spuštěno zobrazení na záložce Monitor.

Experiment ML je integrovaný přímo do monitoru, kde můžete vybrat konkrétní aplikaci Spark a získat přístup ke snímkům položek. Tady najdete seznam všech experimentů a spuštění generovaných danou aplikací.