MLflow
MLflow est une plateforme open source (licence Apache 2.0) pour le cycle de vie complet des modèles de machine learning et des applications d’IA générative : suivi d’expériences, tracing LLM, évaluation, gestion de prompts, AI Gateway, model registry et déploiement.
- Catégorie
- Plateforme MLOps / LLMOps open source
- Créé par
- Databricks (2018), transféré à la Linux Foundation
- Licence
- Apache 2.0
- Version actuelle
- 3.10.1 (5 mars 2026), 3.11.0 RC en cours
- Téléchargements
- Plus de 30 millions/mois (PyPI), plus de 930 millions au total
- GitHub
- ~24 800 stars, 900+ contributeurs
- Prix
- Gratuit (open source), service managé via Databricks, AWS SageMaker, Azure ML
- Langages
- Python, TypeScript/JavaScript, Java, R
- URL
- mlflow.org
Origines et évolution de MLflow
MLflow a été lancé par Databricks en juin 2018, lors du Spark + AI Summit. Le projet visait à résoudre un problème récurrent dans les équipes ML : l’absence d’outil standardisé pour tracker les expériences, versionner les modèles et les déployer de manière reproductible. À l’époque, chaque équipe bricolait ses propres scripts de logging et ses conventions de stockage.
Le projet a été conçu dès le départ comme open source sous licence Apache 2.0. Cette stratégie a payé : MLflow a franchi le million de téléchargements dès 2019, puis les 10 millions mensuels en 2021. Il a été transféré à la Linux Foundation (LF Projects) pour garantir sa gouvernance communautaire, tout en restant principalement maintenu par l’équipe Databricks.
Les grandes étapes de l’évolution :
| Année | Événement |
|---|---|
| 2018 | Lancement au Spark + AI Summit, premières briques (Tracking, Projects, Models) |
| 2019 | 1 million de téléchargements, MLflow 1.0 |
| 2020 | Model Registry en GA, gestion du cycle de vie des modèles |
| 2021 | 10 millions de téléchargements mensuels |
| 2022 | MLflow Recipes (Pipelines), 10 000 GitHub stars |
| 2023 | 100 millions de téléchargements cumulés, intégrations écosystème GenAI |
| 2024 | 200 millions de téléchargements cumulés, MLflow 2.x mature |
| 2025 | MLflow 3.0 (refonte majeure), 20 000 GitHub stars, support LLMOps natif |
| 2026 | MLflow 3.10, 30+ millions de téléchargements/mois, multi-workspace, AI Gateway intégré |
La version 3.0 (sortie mi-2025) a marqué un tournant. MLflow est passé d’une plateforme MLOps classique à une plateforme d’ingénierie IA complète, avec un support natif pour le tracing LLM, l’évaluation d’agents, la gestion de prompts et une passerelle API pour les fournisseurs de LLM.
Les composants de MLflow
MLflow est organisé en modules indépendants mais complémentaires. Vous pouvez utiliser chaque composant séparément ou les combiner.
MLflow Tracking : suivi d’expériences
C’est le composant historique et le point d’entrée pour la majorité des utilisateurs. MLflow Tracking permet de logger les paramètres, métriques, artefacts et métadonnées de chaque run d’entraînement. Chaque expérience est enregistrée avec son code source, ses dépendances et ses résultats.
L’API est disponible en Python, REST, R et Java. L’instrumentation la plus simple tient en deux lignes grâce à l’autologging :
import mlflow
mlflow.autolog()
# Votre code d'entraînement habituel (sklearn, PyTorch, XGBoost, etc.)
# Les métriques, paramètres et modèles sont loggés automatiquementL’autologging supporte les bibliothèques les plus populaires : Scikit-learn, XGBoost, LightGBM, PyTorch, Keras, Spark MLlib, et bien d’autres. Pour un contrôle plus fin, l’API manuelle est disponible :
import mlflow
with mlflow.start_run():
mlflow.log_param("learning_rate", 0.01)
mlflow.log_param("epochs", 50)
# ... entraînement ...
mlflow.log_metric("accuracy", 0.94)
mlflow.log_metric("f1_score", 0.91)
mlflow.sklearn.log_model(model, "model")Par défaut, les données sont stockées localement dans un répertoire mlruns. Pour une utilisation en équipe, vous pointez vers un serveur de tracking centralisé (PostgreSQL + S3/GCS/Azure Blob pour les artefacts).
MLflow Tracing : observabilité GenAI
Introduit avec MLflow 3.0, le tracing capture les entrées, sorties et métadonnées de chaque étape d’une application d’IA générative. Quand un utilisateur pose une question à votre chatbot, le tracing enregistre chaque appel LLM, chaque recherche vectorielle, chaque transformation de données, avec les latences et les coûts associés.
L’activation est simple : un appel mlflow.xyz.autolog() suffit pour les bibliothèques supportées. La liste couvre plus de 20 frameworks, dont OpenAI, Anthropic, LangChain, LlamaIndex, DSPy, AutoGen, Vercel AI SDK, Mastra, et les SDK TypeScript de Gemini.
import mlflow
from openai import OpenAI
mlflow.openai.autolog()
client = OpenAI()
response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "Explique le MLOps"}]
)
# La trace complète (input, output, latence, tokens, coût) est loguée automatiquementDepuis la version 3.6, MLflow supporte aussi l’intégration OpenTelemetry bidirectionnelle. Vous pouvez ingérer des spans OpenTelemetry dans le serveur MLflow, et exporter des métriques MLflow vers votre stack d’observabilité existante. Cela permet de tracer des applications dans n’importe quel langage (Java, Go, Rust), pas seulement Python.
La version 3.10 a ajouté le suivi automatique des coûts LLM dans les traces, avec calcul du prix par modèle et rendu visuel dans l’interface.
MLflow Evaluation : évaluer la qualité IA
MLflow propose un framework complet pour évaluer systématiquement la qualité de vos modèles et applications IA. L’API mlflow.genai.evaluate() permet de :
Définir des datasets de test reproductibles (stockés et versionnés dans l’expérience depuis la v3.9). Appliquer des scorers automatiques : scorers intégrés (Correctness, Faithfulness, Relevance), LLM-as-judge custom via l’API make_judge, ou métriques DeepEval (20+ métriques via l’API get_judge). Évaluer des conversations multi-tours avec des scorers au niveau de la session (depuis la v3.8). Simuler des conversations pour tester de nouvelles versions d’un agent sans régénérer manuellement les échanges (v3.10).
import mlflow
from mlflow.genai.scorers import Correctness, Guidelines
results = mlflow.genai.evaluate(
data=dataset,
predict_fn=mon_agent,
scorers=[
Correctness(),
Guidelines(
name="est_en_francais",
guidelines="La réponse doit être en français"
),
],
)Les résultats sont visualisables directement dans l’interface MLflow, avec comparaison côte à côte des traces pour identifier les régressions.
Prompt Registry : versioning de prompts
Le Prompt Registry permet de versionner, tester et déployer vos prompts avec un suivi de lignage complet. Chaque version de prompt est liée aux traces et expériences qui l’utilisent. Depuis la v3.10, les prompts peuvent inclure une configuration de modèle (model config), ce qui associe un prompt à des paramètres LLM spécifiques pour une reproductibilité maximale.
Sur Databricks, le Prompt Registry s’intègre avec Unity Catalog pour une gestion centralisée à l’échelle de l’organisation.
MLflow propose aussi l’optimisation automatique de prompts : au lieu de tester manuellement des dizaines de variantes, un algorithme explore l’espace des prompts et identifie la formulation la plus performante pour vos critères.
AI Gateway : passerelle LLM unifiée
L’AI Gateway est une passerelle API compatible OpenAI qui centralise les appels vers tous vos fournisseurs LLM. Vous routez les requêtes, gérez les limites de débit, configurez des fallbacks automatiques, du traffic splitting pour l’A/B testing, et vous contrôlez les coûts via une interface unique.
Depuis la version 3.9, le Gateway est intégré directement dans le serveur de tracking MLflow. Plus besoin de démarrer un processus séparé. Vous activez le Gateway en ajoutant une configuration de routes, et il est immédiatement disponible.
La version 3.10 a ajouté le suivi d’usage par endpoint, pour identifier quelles applications consomment le plus de tokens et de budget.
Model Registry : gestion du cycle de vie
Le Model Registry est le hub central pour versionner, annoter et déployer vos modèles. Chaque modèle enregistré dispose d’un historique de versions, avec lignage vers l’expérience et le run qui l’ont produit.
MLflow 3 a introduit le concept de LoggedModel, qui élève le modèle au rang d’objet de premier plan (et non plus un simple artefact attaché à un run). Un LoggedModel capture les métriques, paramètres et traces à travers les phases de développement (entraînement, évaluation) et les environnements (dev, staging, production).
MLflow Models & Agent Server : déploiement
MLflow Models définit un format standard pour packager les modèles ML de manière portable. Un modèle MLflow peut être déployé sur Docker, Kubernetes, Azure ML, AWS SageMaker, Modal, ou servi localement via l’Agent Server.
L’Agent Server est un serveur FastAPI avec validation automatique des requêtes, support du streaming et tracing intégré. Un seul mlflow models serve suffit à exposer un endpoint de production.
Serveur MCP et Skills
MLflow propose un serveur MCP (Model Context Protocol) qui permet aux assistants IA et agents de coding d’interagir programmatiquement avec MLflow. Les SDK TypeScript renommés en mars 2026 (@mlflow/core, @mlflow/openai, @mlflow/anthropic, @mlflow/gemini) élargissent l’écosystème au-delà de Python.
Le dépôt mlflow/skills (créé début 2026) fournit des compétences réutilisables pour les agents de coding, intégrant MLflow dans les workflows de développement assisté par IA.
MLflow 3 : la refonte GenAI
La version 3.0 a été le changement le plus significatif depuis la création du projet. Voici ce qu’elle a apporté par rapport à MLflow 2.x :
| Domaine | MLflow 2.x | MLflow 3.x |
|---|---|---|
| Focus | ML classique (training, modèles) | ML + LLM + Agents (plateforme d’ingénierie IA) |
| Tracing | Basique | Natif, OpenTelemetry, 20+ intégrations auto |
| Évaluation GenAI | Limitée | Complète (judges, multi-turn, simulation, datasets versionnés) |
| Prompts | Non géré | Registry dédié avec versioning et optimisation auto |
| AI Gateway | Processus séparé | Intégré au tracking server |
| Modèles | Artefact dans un run | LoggedModel (objet de premier plan, cross-run) |
| UI | Interface unifiée | Types d’expériences (ML classique vs GenAI), onglets refondus |
| Langages | Python, R, Java | + TypeScript/JavaScript natif |
| Multi-workspace | Non | Oui (v3.10, isolation logique d’expériences) |
Pour migrer de MLflow 2.x à 3.x, la mise à jour est en principe simple (pip install --upgrade mlflow). Les concepts de base (runs, expériences, artefacts) restent inchangés. Les nouvelles fonctionnalités sont additives.
Options de déploiement
MLflow se déploie de plusieurs façons selon vos besoins :
Local : pip install mlflow && mlflow ui démarre un serveur local en quelques secondes. Idéal pour le prototypage solo. Le backend est SQLite, les artefacts sont stockés localement.
Serveur auto-hébergé : vous déployez un serveur MLflow (via Docker ou Kubernetes) avec PostgreSQL comme backend et S3/GCS/Azure Blob pour les artefacts. C’est l’option standard pour les équipes. La version Go du backend (mlflow-go-backend) est disponible pour les environnements qui préfèrent éviter Python côté serveur.
Databricks Managed MLflow : MLflow est intégré nativement dans Databricks, avec Unity Catalog pour le registry, Mosaic AI pour l’évaluation d’agents, et l’infrastructure de compute Databricks. C’est l’option la plus complète, mais elle vous lie à l’écosystème Databricks.
Cloud providers managés : AWS SageMaker, Azure Machine Learning et Google Cloud proposent des instances MLflow managées. Sur SageMaker, vous pouvez choisir entre Small (25 utilisateurs), Medium (50) et Large (100 utilisateurs).
Intégrations et écosystème
MLflow revendique plus de 100 intégrations natives. Voici les principales catégories :
Frameworks ML : Scikit-learn, PyTorch, TensorFlow/Keras, XGBoost, LightGBM, CatBoost, Spark MLlib, Statsmodels, Prophet, H2O.
Frameworks GenAI : OpenAI, Anthropic, Google Gemini, LangChain, LlamaIndex, DSPy, AutoGen, CrewAI, Strands Agents (ajouté en v3.9), Vercel AI SDK, Mastra.
Infrastructure : Docker, Kubernetes, AWS SageMaker, Azure ML, Google Cloud Vertex AI, Modal, BentoML, Ray Serve.
Stockage : S3, GCS, Azure Blob, HDFS, MinIO, Alibaba OSS, JFrog Artifactory.
Bases de données : PostgreSQL, MySQL, SQL Server, SQLite.
L’architecture de plugins permet d’étendre MLflow pour des cas d’usage spécifiques sans modifier le code source.
MLflow vs W&B vs Neptune : le comparatif
| Critère | MLflow | Weights & Biases | Neptune |
|---|---|---|---|
| Licence | Apache 2.0 | Propriétaire (freemium) | Propriétaire (freemium) |
| Prix | Gratuit (self-hosted), payant via Databricks/cloud | Free / Pro 60 $/mois / Enterprise | Free / Team ~payant / Enterprise |
| Auto-hébergement | Oui (natif, c’est le mode par défaut) | Oui (Docker, licence Enterprise) | Oui (option disponible) |
| Tracking | Complet, autologging 15+ frameworks | Excellent, dashboards plus riches | Très bon, flexible |
| Tracing LLM | Natif (20+ frameworks, OpenTelemetry) | Weave (tracing + guardrails + monitoring) | Limité |
| Évaluation | Complet (judges, multi-turn, simulation) | Complet (scorers, leaderboards) | Basique |
| AI Gateway | Oui (intégré, multi-provider) | Non (mais Inference API) | Non |
| Prompt Management | Oui (registry + optimisation auto) | Non (pas de registre dédié) | Non |
| Model Registry | Oui (LoggedModel, Unity Catalog sur Databricks) | Oui (Registry) | Oui |
| Déploiement | Agent Server (FastAPI), Docker, K8s, cloud | Non (pas de serving natif) | Non |
| Force principale | Open source, écosystème massif, AI Gateway | UX, monitoring prod, compute intégré | Simplicité, flexibilité tracking |
Cas d’usage concrets
Entraînement de modèles ML classiques
Vous entraînez un modèle de scoring client avec XGBoost. Vous activez mlflow.autolog(), et chaque run loggue automatiquement les hyperparamètres, les feature importances, les métriques (AUC, precision, recall) et le modèle sérialisé. Vous comparez 50 runs dans l’UI, identifiez la meilleure combinaison d’hyperparamètres, puis enregistrez le modèle dans le Registry avec un alias « champion ». Quand un nouveau modèle bat le champion, vous mettez à jour l’alias, et votre pipeline de déploiement prend automatiquement le relais.
Développement d’un agent IA
Vous construisez un agent de support client avec LangChain. Vous activez mlflow.langchain.autolog() et chaque interaction est tracée de bout en bout : le routage initial, les appels d’outils, les recherches vectorielles, les appels LLM, et la réponse finale. Vous créez un dataset de conversations de référence, définissez des scorers (pertinence, exactitude, ton), et lancez des évaluations reproductibles. L’AI Gateway route les requêtes vers GPT-4o en priorité avec fallback sur Mistral Large 3 si l’API OpenAI est surchargée.
Optimisation de prompts
Votre application de résumé de documents utilise un prompt système complexe. Au lieu de tester manuellement des dizaines de variantes, vous utilisez l’optimisation automatique de prompts de MLflow. L’algorithme explore l’espace des formulations, évalue chaque variante contre votre dataset de test, et identifie le prompt optimal pour vos critères de qualité. Chaque variante est versionnée dans le Prompt Registry avec son score d’évaluation.
Installation et démarrage rapide
L’installation de MLflow tient en une commande :
pip install mlflowPour les extras GenAI (tracing, évaluation, gateway) :
pip install mlflow[genai]Pour démarrer l’interface web locale :
mlflow ui
# Accessible sur http://localhost:5000Pour un serveur de tracking partagé avec PostgreSQL et S3 :
mlflow server
--backend-store-uri postgresql://user:pass@host:5432/mlflow
--artifacts-destination s3://mon-bucket-mlflow
--host 0.0.0.0
--port 5000Pour activer les workspaces (multi-tenant, depuis v3.10) :
mlflow server --enable-workspaces
--backend-store-uri postgresql://...
--artifacts-destination s3://...Python 3.10 ou supérieur est requis depuis MLflow 3.x.
Limites et points de vigilance
RBAC natif limité : MLflow open source ne propose pas de contrôle d’accès fin par défaut. Pour le multi-tenancy sérieux, vous devez soit utiliser un proxy d’authentification, soit passer à Databricks Managed MLflow qui intègre Unity Catalog.
UI moins riche que W&B : l’interface web de MLflow est fonctionnelle mais moins visuellement aboutie que celle de Weights & Biases. Les dashboards de comparaison et les visualisations interactives sont plus basiques.
Complexité croissante : avec le tracing, l’évaluation, le prompt registry, l’AI Gateway, le MCP server et les SDKs multi-langages, MLflow 3 est devenu un écosystème vaste. Un nouveau venu peut se sentir submergé. Commencez par le tracking ou le tracing, puis étendez progressivement.
Dépendance Databricks implicite : bien qu’open source, les fonctionnalités les plus avancées (Unity Catalog, Mosaic AI Agent Evaluation, human feedback UI) sont réservées à Databricks. L’open source couvre l’essentiel, mais Databricks garde un avantage fonctionnel sur sa version managée.
Migration MLflow 2 vers 3 : la migration est censée être transparente, mais certaines fonctionnalités sont dépréciées (stages du Model Registry, MLflow Recipes). Testez dans un environnement de staging avant de migrer en production.
Verdict
MLflow est le standard open source pour le MLOps et, depuis la version 3, pour le LLMOps. Avec plus de 30 millions de téléchargements mensuels et un écosystème de plus de 100 intégrations, c’est la plateforme la plus adoptée au monde dans sa catégorie.
Son principal atout reste la liberté : licence Apache 2.0, auto-hébergement natif, pas de vendor lock-in, et un support multi-cloud étendu. L’ajout du tracing LLM, de l’évaluation d’agents et de l’AI Gateway dans MLflow 3 en fait une alternative crédible aux solutions propriétaires comme W&B Weave.
Pour les équipes qui veulent garder le contrôle total sur leur stack ML/LLM, MLflow est le premier outil à installer. Pour celles qui préfèrent une expérience managée avec une UX soignée et du monitoring production avancé, W&B reste une option solide (mais payante et propriétaire).
Questions fréquentes sur MLflow
MLflow est-il gratuit ?
Oui, MLflow est 100 % open source sous licence Apache 2.0. Vous pouvez l’installer, l’utiliser et le modifier gratuitement, y compris pour un usage commercial. Le coût n’intervient que si vous choisissez un service managé (Databricks, AWS SageMaker, Azure ML), auquel cas vous payez l’infrastructure et le service cloud, pas MLflow lui-même.
Quelle est la dernière version de MLflow ?
La version stable la plus récente est MLflow 3.10.1, sortie le 5 mars 2026. La release candidate 3.11.0 est en cours (publiée le 16 mars 2026). MLflow 3.10 a apporté le support multi-workspace, l’évaluation et la simulation de conversations chatbot, le suivi des coûts dans les traces, et le suivi d’usage de l’AI Gateway.
Quelle est la différence entre MLflow et Weights & Biases ?
MLflow est open source (Apache 2.0) et auto-hébergeable gratuitement. Weights & Biases est propriétaire avec un plan gratuit pour projets personnels et un Pro à 60 $/mois. Fonctionnellement, les deux couvrent le tracking, le tracing LLM et l’évaluation. MLflow a l’avantage de l’AI Gateway intégré, du Prompt Registry avec optimisation auto, et du déploiement natif (Agent Server). W&B se distingue par une UX supérieure, le monitoring production (Weave Online Evaluations), et l’intégration compute avec CoreWeave. Si le contrôle et l’open source sont prioritaires, choisissez MLflow. Si l’expérience développeur et le monitoring production comptent davantage, choisissez W&B.
Comment déployer MLflow en production ?
Pour une équipe, la configuration recommandée est un serveur MLflow derrière un reverse proxy (Nginx), avec PostgreSQL comme backend store et S3/GCS/Azure Blob pour les artefacts. Déployez via Docker ou Kubernetes pour faciliter le scaling. Pour un déploiement sans maintenance, utilisez un service managé (Databricks, SageMaker, Azure ML). Dans tous les cas, ne gardez pas le SQLite par défaut en production : il ne supporte pas les accès concurrents.
MLflow fonctionne-t-il avec des langages autres que Python ?
Oui. MLflow propose des SDK natifs pour Python, TypeScript/JavaScript (packages @mlflow/core, @mlflow/openai, etc.), Java et R. Depuis la version 3.6, l’intégration OpenTelemetry permet aussi de tracer des applications écrites en Go, Rust, ou n’importe quel langage supporté par OpenTelemetry, et d’ingérer ces traces dans le serveur MLflow.