← retour aux snippets

mlflow: suivi params et métriques

Tracer expériences: paramètres, métriques, artefacts et modèles.

objectif

Tracer expériences: paramètres, métriques, artefacts et modèles.

code minimal

import mlflow
import mlflow.sklearn
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.metrics import roc_auc_score

X, y = load_breast_cancer(return_X_y=True)
X_train, X_val, y_train, y_val = train_test_split(X, y, test_size=0.2, random_state=0, stratify=y)

mlflow.set_tracking_uri("file:./mlruns")
mlflow.set_experiment("demo")

with mlflow.start_run(run_name="lr-baseline"):
    params = {"C": 1.0, "max_iter": 200}
    mlflow.log_params(params)
    model = LogisticRegression(**params, solver="lbfgs").fit(X_train, y_train)
    auc = roc_auc_score(y_val, model.predict_proba(X_val)[:,1])
    mlflow.log_metric("val_auc", float(auc))
    mlflow.sklearn.log_model(model, "model")
    mlflow.log_artifact(__file__)
print(True)

utilisation

# Lister les expériences et runs
client = mlflow.tracking.MlflowClient()
exps = client.list_experiments()
print(len(exps) >= 1)

variante(s) utile(s)

# Charger un modèle loggé
# loaded = mlflow.sklearn.load_model("runs:/<run_id>/model")
print(True)

notes

  • Utilisez une URI de tracking stable (fichier, serveur) et nommez vos expériences; loggez les artefacts (figures, conf).