Träna och spåra modeller i notebook-filer

Slutförd

Som dataexpert använder du notebook-filer för att experimentera och träna modeller. Om du vill gruppera modellträningsresultat använder du experiment. Om du vill spåra modellmått med MLflow när du tränar en modell i en notebook-fil kan du använda MLflows loggningsfunktioner.

Skapa ett MLflow-experiment

Du kan skapa ett MLflow-experiment som gör att du kan gruppera experimentkörningar. Om du inte skapar ett experiment förutsätter MLflow standardexperimentet med namnet Default.

Om du vill skapa ett experiment kör du följande kommando i en notebook-fil:

import mlflow

mlflow.set_experiment(experiment_name="heart-condition-classifier")

Loggresultat med MLflow

Nu är du redo att träna din modell. Om du vill starta en körning som spåras av MLflow använder du start_run(). För att spåra modellen kan du sedan:

  • Aktivera automatisk loggning.
  • Använd anpassad loggning.

Aktivera automatisk loggning

MLflow stöder automatisk loggning för populära maskininlärningsbibliotek. När du aktiverar automatisk loggning instruerar MLflow ditt ramverk att logga mått, parametrar, artefakter och modeller automatiskt. Du behöver inte ange vad som ska loggas när ramverket bestämmer vad som är relevant.

Du kan aktivera automatisk loggning genom att anropa mlflow.autolog() före träningskoden. Du kan också använda den ramverksspecifika metoden, till exempel mlflow.xgboost.autolog(), för mer detaljerad kontroll.

En notebook-cell som tränar och spårar en klassificeringsmodell med automatisk loggning kan likna följande kodexempel:

from xgboost import XGBClassifier

with mlflow.start_run():
    mlflow.autolog()

    model = XGBClassifier(eval_metric="logloss")
    model.fit(X_train, y_train, eval_set=[(X_test, y_test)], verbose=False)

Så snart som mlflow.xgboost.autolog() anropas startar MLflow en körning i ett experiment i Azure Machine Learning för att börja spåra experimentets körning.

När jobbet är klart kan du granska alla loggade mått i studion.

Skärmbild av översiktssidan för MLflow-experimentet med automatisk loggning i Azure Machine Learning Studio.

Använda anpassad loggning

Dessutom kan du logga din modell manuellt med MLflow. Att manuellt logga modeller är användbart när du vill logga kompletterande eller anpassad information som inte loggas via automatisk loggning.

Anmärkning

Du kan välja att endast använda anpassad loggning eller använda anpassad loggning i kombination med automatisk loggning.

Vanliga funktioner som används med anpassad loggning är:

  • mlflow.log_param(): Loggar en enda nyckel/värde-parameter. Använd den här funktionen för en indataparameter som du vill logga.
  • mlflow.log_metric(): Loggar ett enda nyckelvärdesmått. Värdet måste vara ett tal. Använd den här funktionen för alla utdata som du behöver lagra med genomkörningen.
  • mlflow.log_figure(): Loggar en matplotlib-figur direkt som en artefakt.
  • mlflow.log_image(): Registrerar en numpy- eller PIL-avbildning som en artefakt.
  • mlflow.log_artifact(): Loggar alla befintliga filer som en artefakt.
  • mlflow.log_model(): Loggar en modell. Använd den här funktionen för att skapa en MLflow-modell, som kan innehålla en anpassad signatur, miljö och indataexempel.

Tips/Råd

Läs mer om hur du spårar modeller med MLflow genom att utforska den officiella MLflow-dokumentationen eller Azure Machine Learning-dokumentationen

Om du vill använda anpassad loggning i en anteckningsbok startar du en körning och loggar vilka mått som helst:

from xgboost import XGBClassifier
from sklearn.metrics import accuracy_score

with mlflow.start_run():
    model = XGBClassifier(eval_metric="logloss")
    model.fit(X_train, y_train, eval_set=[(X_test, y_test)], verbose=False)
    y_pred = model.predict(X_test)

    accuracy = accuracy_score(y_test, y_pred)
    mlflow.log_metric("accuracy", accuracy)

Anpassad loggning ger dig mer flexibilitet, men skapar också mer arbete eftersom du måste definiera valfri parameter, mått eller artefakt som du vill logga.

När jobbet är klart kan du granska alla loggade mått i studion.

Skärmbild av översiktssidan för MLflow-experimentkörning med endast anpassad loggning i Azure Machine Learning Studio.