Un système d'IA sans MLOps n'est pas un système — c'est une démo qui dérive. MLflow en pivot pour le tracking, le model registry, le tracing LLM et l'évaluation. Complété par Langfuse, Arize Phoenix, LangSmith selon les besoins. Conformité AI Act art. 11-12 par traçabilité native, drift detection continu, llm-as-judge automatisé.
Le MLOps des années 2018-2023 (tabular, computer vision) reposait sur des métriques numériques claires : accuracy, F1, AUC. Les LLM cassent ce modèle. Les sorties sont du texte libre, les métriques sont subjectives, les modes d'échec sont innombrables.
Pas de F1 sur du texte libre. Il faut RAGAS + llm-as-judge + métriques métier custom. Tout doit être versionné — y compris les prompts d'évaluation.
Changer un prompt change le comportement autant qu'un fine-tuning. Un prompt registry est aussi critique qu'un model registry.
Un agent LangGraph fait 10-50 appels LLM. Il faut tracer chaque étape, pas juste la sortie finale. MLflow Tracing avec OpenTelemetry GenAI.
En classique, le modèle prédit en 5 ms. En LLM, une trajectoire coûte 30 secondes et 0,05 €. Le suivi coût/requête devient une métrique de premier ordre.
MLflow a évolué massivement en 2024-2026 pour les LLM. Quatre composants couvrent l'essentiel des besoins MLOps pour les systèmes IA modernes.
MLflow couvre le cycle complet : de l'expérimentation (tracking), à la mise en stock (registry), à la production (tracing), au pilotage (evaluation). Open source, self-host, compatible OpenTelemetry GenAI.
L'instrumentation est en deux lignes. Tous les nœuds LangGraph, appels LLM, tool calls deviennent observables.
import mlflow from langgraph.graph import StateGraph # Auto-instrumentation LangChain / LangGraph / LlamaIndex mlflow.langchain.autolog() mlflow.set_experiment("acpr-agent-prod") with mlflow.start_run() as run: # Le graphe est tracé automatiquement graph = build_graph() result = graph.invoke({"messages": [user_msg]}) # Métriques métier ajoutées manuellement mlflow.log_metric("trajectory_steps", len(result["messages"])) mlflow.log_metric("tool_calls", result.get("tool_count", 0)) # Evaluation llm-as-judge sur la sortie eval_result = mlflow.evaluate( data=[{"input": user_msg, "output": result["messages"][-1].content}], extra_metrics=[ mlflow.metrics.genai.faithfulness(model="anthropic:/claude-opus-4-7"), mlflow.metrics.genai.answer_relevance(model="anthropic:/claude-opus-4-7"), ], )
Six étapes, six points de contrôle MLflow. Aucune ne peut être sautée si vous voulez opérer sereinement.
Tracking de chaque essai (prompt, retrieval config, modèle, hp). MLflow Tracking + Tracing dès le premier prototype.
Suite RAGAS + llm-as-judge sur jeu d'éval. Comparaison automatique des runs. Gate avant promotion en Staging.
Modèle ou prompt promu dans le Registry, stage Staging. Tests d'intégration. Charge synthétique. Validation RBAC.
10 % du trafic prod vers la nouvelle version. Monitoring continu via Tracing + Langfuse. Win rate, latence, coût.
Promotion Production. Observability complète. Alertes Grafana sur drift, coût, latence, taux d'erreur.
Toggle de rollback en 30 secondes. Anciennes versions Archived (jamais supprimées) pour audit AI Act.
MLflow couvre 80 % des besoins. Les 20 % restants demandent des outils spécialisés selon le contexte. Voici notre matrice.
| Outil | Tracking | Registry | Tracing LLM | Self-host | Notre usage |
|---|---|---|---|---|---|
| MLflow | excellent | excellent | v3+ | oui | Pivot |
| Langfuse | basique | prompts | excellent | oui | Observability LLM prod, OSS, EU-friendly |
| LangSmith | basique | prompts | natif LC/LG | payant | Natif LangGraph, debug DX |
| Arize Phoenix | basique | — | excellent | oui (OSS) | Drift & eval visualisation |
| Helicone | — | prompts | proxy LLM | oui | Proxy gateway + caching |
| Weights & Biases | excellent | artifacts | Weave | SaaS US | Rare — souveraineté |
| OpenTelemetry GenAI | — | — | standard 2026 | vendor-neutral | Standard backbone |
MLflow en pivot (tracking + registry + eval + tracing) + Langfuse auto-hébergé pour la prod-time observability LLM (dashboards utilisateurs, debug rapide) + Grafana / Prometheus pour les métriques infra. Tout en self-host, tout en EU, aucun cloud US obligatoire.
L'AI Act exige (art. 11-12) que les systèmes IA à haut risque maintiennent une documentation technique et des logs d'événements permettant la traçabilité. MLflow + Langfuse couvrent cette exigence sans surcoût.
Description du modèle, données d'entraînement, métriques d'évaluation, méthodes de validation, limitations connues — toutes générables depuis les runs MLflow.
Enregistrement automatique pour traçabilité : période d'utilisation, profils d'usage, données d'entrée. MLflow Tracing + Langfuse archivés ≥ 6 mois.
Tests de robustesse continus (red teaming Pyrit / Garak), métriques RAGAS suivies, alertes sur dégradation. Tout dans MLflow Evaluation.
Processus documentés via MLflow workflows, RBAC sur Registry, approval workflow, rollback plan. Auditabilité de bout en bout.
Trois alertes, trois actions automatiques. La même grille pour tous nos clients en mode managé.
Faithfulness en baisse > 2 pts sur 24 h → rollback automatique au dernier modèle Staging stable. Notification équipe + ticket d'investigation.
P95 coût/requête × 1.5 vs moyenne 7 jours → throttling automatique, alerte équipe. Probable boucle d'agent ou contexte explosé.
Lakera / Llama Guard score > 0.8 sur 5+ requêtes en 1 minute → activation circuit breaker, isolation utilisateur, escalade SOC.
Tous les lundis matin : rapport MLflow auto-généré (top traces, top régressions, top utilisateurs, top coûts) envoyé à l'équipe IA + RSSI.
Mise en place MLflow self-host, intégration LangGraph/LlamaIndex, dashboards Langfuse, suites RAGAS en CI/CD, conformité AI Act. Première analyse de faisabilité offerte.