Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
En maskininlärningsmodell är en fil som tränats att identifiera vissa typer av mönster. Du tränar en modell över en uppsättning data och ger den en algoritm som använder för att resonera över och lära sig av den datauppsättningen. När du har tränat modellen kan du använda den för att resonera över data som den aldrig sett tidigare och göra förutsägelser om dessa data.
I MLflow kan en maskininlärningsmodell innehålla flera modellversioner. Här kan varje version representera en modell-iteration. I den här artikeln får du lära dig hur du interagerar med ML-modeller för att spåra och jämföra modell iterationer.
I den här artikeln lär du dig att:
- Skapa maskininlärningsmodeller i Microsoft Fabric
- Hantera och spåra modellversioner
- Jämföra modellprestanda mellan versioner
- Tillämpa modeller för bedömning och slutsatsdragning
Skapa en maskininlärningsmodell
Du kan skapa en maskininlärningsmodell från infrastrukturgränssnittet eller programmatiskt med MLflow-API:et. I MLflow använder modeller ett standardpaketeringsformat som fungerar med olika nedströmsverktyg, inklusive batchinferens på Apache Spark. Formatet sparar en modell i olika "smaker" som olika underordnade verktyg kan förstå.
Så här skapar du en maskininlärningsmodell från användargränssnittet:
- Välj en befintlig datavetenskapsarbetsyta eller skapa en ny arbetsyta.
- Skapa ett nytt objekt via arbetsytan eller med knappen Skapa:
- När modellen har skapats kan du börja lägga till modellversioner för att spåra körningsmått och parametrar. Registrera eller spara experimentkörningar till en befintlig modell.
Du kan också skapa en maskininlärningsmodell direkt från din redigeringsupplevelse med API:et mlflow.register_model() . Om det inte finns någon registrerad maskininlärningsmodell med det angivna namnet skapar API:et den automatiskt.
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))
Hantera versioner i en maskininlärningsmodell
En maskininlärningsmodell innehåller en samling modellversioner för förenklad spårning och jämförelse. I en modell kan en dataexpert navigera mellan olika modellversioner för att utforska underliggande parametrar och mått. Dataexperter kan också göra jämförelser mellan modellversioner för att identifiera om nyare modeller kan ge bättre resultat eller inte.
Spåra maskininlärningsmodeller
En maskininlärningsmodellversion representerar en enskild modell som är registrerad för spårning.
Varje modellversion innehåller följande information:
| Fastighet | Description |
|---|---|
| Tid skapad | Datum och tid då modellen skapades. |
| Körnamn | Identifieraren för experimentkörningen som används för att skapa den här specifika modellversionen. |
| Hyperparametrar | Sparas som nyckel/värde-par. Både nycklar och värden är strängar. |
| Metrics | Kör mått som sparats som nyckel/värde-par. Värdet är numeriskt. |
| Modellschema/signatur | En beskrivning av modellens indata och utdata. |
| Loggade filer | Loggade filer i valfritt format. Du kan till exempel spela in bilder, miljö, modeller och datafiler. |
| Tags | Anpassade metadata som nyckel/värde-par kopplade till körningar. Lär dig hur du använder taggar. |
Använda taggar för maskininlärningsmodeller
MLflow-taggning för modellversioner gör det möjligt för användare att koppla anpassade metadata till specifika versioner av en registrerad modell i MLflow Model Registry. Dessa taggar, som lagras som nyckel/värde-par, hjälper till att organisera, spåra och skilja mellan modellversioner, vilket gör det enklare att hantera modelllivscykler. Taggar kan användas för att ange modellens syfte, distributionsmiljö eller annan relevant information, vilket underlättar effektivare modellhantering och beslutsfattande i team.
Den här koden visar hur du tränar en RandomForestRegressor-modell med scikit-learn, loggar modellen och parametrarna med MLflow och sedan registrerar modellen i MLflow Model Registry med anpassade taggar. Dessa taggar ger användbara metadata, till exempel projektnamn, avdelning, team och projektkvartal, vilket gör det enklare att hantera och spåra modellversionen.
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}")
När du har tillämpat taggarna kan du visa dem direkt på sidan med modellversionsinformation. Dessutom kan taggar läggas till, uppdateras eller tas bort från den här sidan när som helst.
Jämföra och filtrera maskininlärningsmodeller
Om du vill jämföra och utvärdera kvaliteten på maskininlärningsmodellversioner kan du jämföra parametrar, mått och metadata mellan valda versioner.
Jämföra maskininlärningsmodeller visuellt
Du kan visuellt jämföra körningar i en befintlig modell. Med visuell jämförelse kan du enkelt navigera mellan och sortera mellan flera versioner.
För att jämföra körningar kan du:
- Välj en befintlig maskininlärningsmodell som innehåller flera versioner.
- Välj fliken Visa och gå sedan till vyn Modelllista . Du kan också välja alternativet för att visa modelllistan direkt från informationsvyn.
- Du kan anpassa kolumnerna i tabellen. Expandera fönstret Anpassa kolumner . Därifrån kan du välja de egenskaper, mått, taggar och hyperparametrar som du vill se.
- Slutligen kan du välja flera versioner, för att jämföra deras resultat, i jämförelsefönstret för mått. I det här fönstret kan du anpassa diagrammen med ändringar i diagramrubriken, visualiseringstypen, X-axeln, Y-axeln med mera.
Jämföra maskininlärningsmodeller med MLflow-API:et
Dataexperter kan också använda MLflow för att söka bland flera modeller som sparats på arbetsytan. Gå till MLflow-dokumentationen för att utforska andra MLflow-API:er för modellinteraktion.
from pprint import pprint
from mlflow import MlflowClient
client = MlflowClient()
for rm in client.search_registered_models():
pprint(dict(rm), indent=4)
Använda maskininlärningsmodeller
När du har tränat en modell på en datauppsättning kan du använda modellen på data som den aldrig såg för att generera förutsägelser. Vi kallar denna modellbruksteknik för poängsättning eller slutsatsdragning.
Fabric har stöd för flera metoder för att tillämpa dina tränade modeller:
- Batchberäkning – Använd din modell i stor skala på stora datamängder med Apache Spark. Detta är idealiskt för att generera förutsägelser på historiska eller schemalagda data.
- Realtidsbedömning – Distribuera din modell till en slutpunkt för förutsägelser på begäran, användbart för program som behöver omedelbara resultat.
För att komma igång med att tillämpa dina modeller väljer du den metod som passar ditt scenario: