Träna och spåra modeller i notebook-filer
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.
Tips/Råd
Hitta en lista över alla ramverk som stöds för automatisk loggning i den officiella MLflow-dokumentationen.
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.
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.