Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Model strojového učení je soubor natrénovaný tak, aby rozpoznal určité typy vzorů. Vytrénujete model na datové sadě a poskytnete mu algoritmus, který slouží k analýze a učení z této datové sady. Jakmile model vytrénujete, můžete ho použít k odůvodnění nad daty, která předtím neviděla, a vytvářet předpovědi o datech.
V MLflow může model strojového učení obsahovat více verzí modelu. Každá verze zde může představovat iteraci modelu. V tomto článku se dozvíte, jak pracovat s modely ML a sledovat a porovnávat verze modelů.
Vytvoření modelu strojového učení
Modely strojového učení v MLflow zahrnují standardní formát balení. Tento formát umožňuje použití těchto modelů v různých podřízených nástrojích, včetně dávkového odvozování v Apache Sparku. Formát definuje konvenci pro uložení modelu v různých "příchutích", kterým můžou různé podřízené nástroje rozumět.
Model strojového učení můžete přímo vytvořit z uživatelského rozhraní Fabric. Rozhraní API MLflow může také přímo vytvořit model.
Pokud chcete vytvořit model strojového učení z uživatelského rozhraní, můžete:
- Vytvořte nový pracovní prostor datové vědy nebo vyberte existující pracovní prostor datové vědy.
- Vytvořte nový pracovní prostor nebo vyberte existující pracovní prostor.
- Novou položku můžete vytvořit prostřednictvím pracovního prostoru nebo pomocí příkazu Vytvořit.
- Po vytvoření modelu můžete začít přidávat verze modelu, abyste mohli sledovat metriky a parametry spuštění. Zaregistrujte nebo uložte spuštění experimentu do existujícího modelu.
Model strojového učení můžete také vytvořit přímo z prostředí pro vytváření pomocí mlflow.register_model() rozhraní API. Pokud zaregistrovaný model strojového učení s daným názvem neexistuje, rozhraní API ho vytvoří automaticky.
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))
Správa verzí v rámci modelu strojového učení
Model strojového učení obsahuje kolekci verzí modelu pro zjednodušené sledování a porovnání. V rámci modelu může datový vědec procházet různé verze modelu a zkoumat základní parametry a metriky. Datoví vědci můžou také provádět porovnání mezi verzemi modelu, aby zjistili, jestli novější modely můžou přinést lepší výsledky.
Sledování modelů strojového učení
Verze modelu strojového učení představuje jednotlivý model, který je zaregistrovaný ke sledování.
Každá verze modelu obsahuje následující informace:
- Čas vytvoření: Datum a čas vytvoření modelu.
- Název spuštění: Identifikátor spuštění experimentu, který se používá k vytvoření této konkrétní verze modelu.
- Hyperparametry: Hyperparametry se ukládají 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á.
- Schéma nebo podpis modelu: Popis vstupů a výstupů modelu.
- Protokolované soubory: Protokolované 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.
Použití značek na modely strojového učení
Označování MLflow pro verze modelu umožňuje uživatelům připojit vlastní metadata ke konkrétním verzím registrovaného modelu v registru modelů MLflow. Tyto značky, uložené jako páry klíč-hodnota, pomáhají organizovat, sledovat a rozlišovat mezi verzemi modelu, což usnadňuje správu životního cyklu modelu. Značky se dají použít k označení účelu, prostředí nasazení modelu nebo jiných relevantních informací, což usnadňuje efektivnější správu modelů a rozhodování v rámci týmů.
Tento kód ukazuje, jak trénovat model RandomForestRegressor pomocí Scikit-learn, protokolovat model a parametry pomocí MLflow a pak zaregistrovat model v registru modelů MLflow s vlastními značkami. Tyto značky poskytují užitečná metadata, jako je název projektu, oddělení, tým a čtvrtletí projektu, což usnadňuje správu a sledování verze modelu.
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}")
Po použití značek je můžete zobrazit přímo na stránce s podrobnostmi o verzi modelu. Značky lze navíc kdykoli přidat, aktualizovat nebo odebrat z této stránky.
Porovnání a filtrování modelů strojového učení
Pokud chcete porovnat a vyhodnotit kvalitu verzí modelu strojového učení, můžete porovnat parametry, metriky a metadata mezi vybranými verzemi.
Vizuální porovnání modelů strojového učení
Můžete vizuálně porovnat spuštění v rámci existujícího modelu. Vizuální porovnání umožňuje snadnou navigaci a třídění mezi různými verzemi.
Pro porovnání běhů můžete:
- Vyberte existující model strojového učení, který obsahuje více verzí.
- Vyberte kartu Zobrazení a pak přejděte do zobrazení seznamu modelů . Můžete také vybrat možnost Zobrazit seznam modelů přímo ze zobrazení podrobností.
- Sloupce v tabulce můžete přizpůsobit. Rozbalte podokno Přizpůsobit sloupce . Odtud můžete vybrat vlastnosti, metriky, značky a hyperparametry, které chcete zobrazit.
- Nakonec můžete vybrat více verzí a porovnat jejich výsledky v podokně porovnání metrik. V tomto podokně můžete grafy přizpůsobit změnami názvu grafu, typu vizualizace, osy X, osy Y a dalších možností.
Porovnání modelů strojového učení pomocí rozhraní API MLflow
Datoví vědci mohou také použít MLflow k vyhledávání mezi několika modely uloženými v pracovním prostoru. Navštivte dokumentaci MLflow a prozkoumejte další rozhraní API pro interakci s modelem v MLflow.
from pprint import pprint
client = MlflowClient()
for rm in client.list_registered_models():
pprint(dict(rm), indent=4)
Použití modelů strojového učení
Jakmile model vytrénujete na sadě dat, můžete ho použít na data, která nikdy neviděla ke generování předpovědí. Tento model nazýváme metodou bodování nebo odvozování. Další informace o bodování modelu Microsoft Fabric najdete v další části.