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
python -m venv mlflow-env
source mlflow-env/bin/activate
pip install mlflow scikit-learn pandasCette 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
mlflow ui --backend-store-uri sqlite:///mlflow.db --default-artifact-root ./artifacts --host 0.0.0.0 --port 5000Lancez 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
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
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
Déploiement du modèle en local
mlflow models serve -m "models:/IrisClassifier/1" -p 1234 --env-manager localServez 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.