Polydesk-logotype
Polydesk.ai — Header

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.

MLflow en bref
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 automatiquement

L’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).

Attention au SQLite en équipe Le backend SQLite par défaut corrompt les données en accès concurrent. Pour toute utilisation au-delà d’un développeur solo, passez à PostgreSQL ou MySQL comme backend store.

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 automatiquement

Depuis 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).

Stages dépréciés dans MLflow 3 Les stages traditionnels (Staging, Production, Archived) sont dépréciés au profit de tags de version, d’alias et de séparation par environnement via des modèles enregistrés distincts. Cette approche offre plus de flexibilité pour gérer des workflows de déploiement complexes.

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).

Notre recommandation Pour une équipe de 2 à 10 personnes, un serveur auto-hébergé sur Docker avec PostgreSQL + S3 est le meilleur rapport simplicité/contrôle. Au-delà, ou si vous êtes déjà sur Databricks, le service managé vous épargne la maintenance opérationnelle.

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
Notre verdict MLflow est le choix par défaut si vous valorisez l’open source, le contrôle sur vos données et l’absence de vendor lock-in. Son écosystème est le plus large, et depuis MLflow 3, la couverture LLMOps n’a plus rien à envier aux solutions propriétaires. W&B reste supérieur sur l’UX des dashboards et le monitoring en production (Weave Online Evaluations). Neptune convient aux équipes qui veulent un tracker simple sans la complexité de l’écosystème MLflow. Pour les utilisateurs Databricks, MLflow managé est le choix évident : l’intégration est native et profonde.

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 mlflow

Pour les extras GenAI (tracing, évaluation, gateway) :

pip install mlflow[genai]

Pour démarrer l’interface web locale :

mlflow ui # Accessible sur http://localhost:5000

Pour 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 5000

Pour 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.

Polydesk.ai — Footer