MLflow & Model Registry
Traquez, versionnez, gérez — l’industrialisation des modèles ML n’a jamais été aussi fluide.
Une pratique clé enseignée par ISOSET dans ses programmes MLOps.
Les défis de la gestion de modèles
En entreprise, les data scientists lancent des centaines d’expériences. Sans outil dédié, il devient impossible de savoir quel hyperparamètre a produit le meilleur score, quel jeu de données a servi à l’entraînement, ou quelle version du modèle tourne actuellement en production. MLflow résout ces trois problèmes.
Il ne remplace pas l’infrastructure existante mais s’intègre avec S3, GCS, Azure Blob, et même des bases de données locales. ISOSET Entreprises aide les équipes à déployer MLflow sur Kubernetes ou en mode serverless.
Tracking
Enregistrement automatique des paramètres, métriques, artefacts (modèles, figures). Interface web pour comparer les runs.
Reproductibilité
Chaque run capture l’environnement (conda.yaml, Docker). Relancer exactement les mêmes conditions devient trivial.
Model Registry
Registre central avec étapes : None, Staging, Production, Archived. Description, évaluation de qualité, liens vers les runs.
Déploiement unifié
API de prédiction intégrée, plugin pour SageMaker, Azure ML, ou simple serveur REST local.
Composants principaux
MLflow se découpe en quatre modules indépendants qui peuvent être utilisés séparément. ISOSET forme à chacun d’eux à travers des exercices pratiques.
| Composant | Rôle | Stockage par défaut |
|---|---|---|
| MLflow Tracking | Logging d’expériences (paramètres, métriques, artefacts) | fichiers locaux, base de données SQL, serveur distant |
| MLflow Projects | Emballage de code reproductible (conda, Docker) | dépôt Git, archive .zip |
| MLflow Models | Format standard pour les modèles (flavor sklearn, pytorch, etc.) | système de fichiers ou stockage objet |
| Model Registry | Gestion du cycle de vie, versionnement, transitions de stage | backend de Tracking (même base de données) |
Cycle de vie d’un modèle via le Registry
L’utilisation du registre transforme une collection chaotique d’artefacts en un processus gouverné. La pédagogie ISOSET applique cette rigueur à ses projets.
Expérimentation
Le data scientist lance des runs avec `mlflow.log_param`, `log_metric`, `log_artifact`. Les résultats sont visibles dans l’UI.
Enregistrement
Le meilleur run est enregistré dans le Model Registry via `mlflow.register_model()`. Un versioning automatique (v1, v2…) est créé.
Transition vers Staging
L’équipe QA ou le responsable valide la version. Passage en “Staging”. Des tests automatisés peuvent être déclenchés.
Mise en production
Promotion en “Production”. Le modèle est alors déployé automatiquement via un pipeline CI/CD (GitHub Actions, Jenkins).
Extraits d’implémentation
Voici comment intégrer MLflow à un script d’entraînement classique, puis charger un modèle depuis le Registry.
# Entraînement avec tracking automatique import mlflow from sklearn.ensemble import RandomForestClassifier mlflow.set_experiment("isoset_classification") with mlflow.start_run(run_name="random_forest_v2"): params = {"n_estimators": 100, "max_depth": 5} mlflow.log_params(params) model = RandomForestClassifier(**params) model.fit(X_train, y_train) acc = model.score(X_test, y_test) mlflow.log_metric("accuracy", acc) mlflow.sklearn.log_model(model, "model") # Charger un modèle depuis le Registry en production client = mlflow.tracking.MlflowClient() model_version = client.get_model_version("isoset_classifier", version=2) model_uri = f"models:/isoset_classifier/Production" model = mlflow.sklearn.load_model(model_uri) preds = model.predict(new_data)
L’URI `models:/mon_modele/Production` pointe toujours vers la dernière version promue. Le code client n’a donc jamais besoin d’être modifié lors d’une mise à jour du modèle. ISOSET initie également les jeunes développeurs à ces concepts d’industrialisation.
MLflow en action
Une banque utilise MLflow pour comparer des milliers de runs de détection de fraude. Le registre contient plus de 120 versions de modèles, avec des métriques de précision, rappel et coût métier. Le déploiement en production est déclenché automatiquement dès qu’un modèle dépasse le seuil de performance. Une start-up de logistique a automatisé le retraining quotidien de ses prévisions de livraison : le pipeline entraîne, compare avec le modèle en production, et ne le remplace que si la métrique s’améliore.
ISOSET reproduit ces scénarios dans ses ateliers “MLOps en production”.
ISOSET : du tracking au registre, sans mystère
Dans le module dédié à MLflow, les apprenants déploient un serveur de tracking, y connectent plusieurs notebooks d’entraînement, puis construisent un registre de modèles avec promotion automatique. Les formateurs (certifiés MLflow) guident pas à pas. À la fin, chaque participant dispose d’une interface web listant tous ses runs, avec la possibilité de comparer visuellement les métriques et de charger n’importe quelle version en quelques secondes. Les anciens élèves soulignent l’efficacité de cette approche pour gagner en productivité.
MLflow et l’environnement moderne
Intégration cloud
Plugin pour AWS SageMaker, Azure ML, Databricks. Le registre peut être partagé entre plusieurs équipes.
Format unifié
Le format MLflow Model (flavors) permet de servir un modèle via Docker, Spark UDF ou un simple API REST.
CI/CD natif
Les transitions de stage peuvent être déclenchées par des pipelines (GitHub Actions, GitLab CI).
Expériences collaboratives
Plusieurs data scientists peuvent partager le même backend de tracking, comparer leurs runs et commenter.
La mémoire de vos modèles ne doit pas être une feuille Excel.
MLflow apporte la rigueur du développement logiciel au monde du machine learning. Chaque expérience, chaque modèle, chaque déploiement est traçable, reproductible, gouvernable.
— ISOSET — formation pratique à l’industrialisation ML —