Skip to content
Learni
View all tutorials
MLOps

Comment gérer des expériences ML avec MLflow en 2026

18 minINTERMEDIATE

Introduction

MLflow est une plateforme open source qui simplifie le cycle de vie des projets machine learning. Dans ce tutoriel intermédiaire, vous apprendrez à tracker vos expériences, versionner vos modèles et les déployer facilement. Ces compétences sont essentielles pour passer d'un prototype à un système MLOps robuste en 2026.

Prérequis

  • Python 3.9+
  • Connaissances de base en scikit-learn ou PyTorch
  • Un environnement virtuel configuré
  • Compréhension des concepts de tracking d'expériences

Installation de MLflow

terminal
python -m venv mlflow-env
source mlflow-env/bin/activate
pip install mlflow scikit-learn pandas

Cette commande crée un environnement isolé et installe MLflow avec les dépendances nécessaires pour le tracking et la gestion de modèles.

Configuration du serveur MLflow

terminal
mlflow ui --backend-store-uri sqlite:///mlflow.db --default-artifact-root ./artifacts --host 0.0.0.0 --port 5000

Lancez l'interface web de MLflow avec une base SQLite locale et un dossier pour les artefacts. Accédez ensuite à http://localhost:5000 pour visualiser vos runs.

Script de tracking d'expérience

train.py
import mlflow
import mlflow.sklearn
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score

mlflow.set_tracking_uri("http://localhost:5000")
mlflow.set_experiment("iris-classification")

with mlflow.start_run():
    iris = load_iris()
    X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.2)
    model = RandomForestClassifier(n_estimators=100, max_depth=5)
    model.fit(X_train, y_train)
    preds = model.predict(X_test)
    acc = accuracy_score(y_test, preds)
    
    mlflow.log_param("n_estimators", 100)
    mlflow.log_param("max_depth", 5)
    mlflow.log_metric("accuracy", acc)
    mlflow.sklearn.log_model(model, "model")

Ce script complet initialise le tracking, enregistre les hyperparamètres et la métrique accuracy, puis sauvegarde le modèle scikit-learn dans le registre MLflow.

Enregistrement dans le Model Registry

register_model.py
import mlflow

model_uri = "runs:/<run_id>/model"
model_version = mlflow.register_model(model_uri, "IrisClassifier")
print(f"Modèle enregistré avec la version {model_version.version}")

Remplacez par l'identifiant de votre run. Cette étape versionne le modèle dans le registre centralisé pour faciliter les déploiements ultérieurs.

Déploiement du modèle en local

terminal
mlflow models serve -m "models:/IrisClassifier/1" -p 1234 --env-manager local

Servez le modèle version 1 via une API REST locale sur le port 1234. Testez ensuite les prédictions avec curl ou Postman.

Bonnes pratiques

  • Toujours utiliser des noms d'expériences descriptifs et cohérents
  • Logger les artefacts intermédiaires (graphiques, données)
  • Utiliser le Model Registry pour tous les modèles en production
  • Séparer les environnements de développement et de production
  • Documenter les métadonnées via des tags MLflow

Erreurs courantes à éviter

  • Oublier de définir l'URI de tracking avant les runs
  • Ne pas versionner les modèles avant déploiement
  • Stocker des artefacts trop volumineux sans backend distant
  • Ignorer la gestion des dépendances dans les environnements de serving

Pour aller plus loin

Explorez l'intégration avec Kubernetes et les déploiements cloud. Découvrez nos formations MLOps complètes.