Polydesk-logotype
Polydesk.ai — Header

Experiment Tracking

L’experiment tracking (suivi d’expériences) est la pratique qui consiste à enregistrer systématiquement tous les détails de chaque run d’entraînement ML (paramètres, métriques, code, données, environnement et artefacts) pour rendre les expériences reproductibles, comparables et auditables.

Sans experiment tracking, un projet ML ressemble rapidement à un dossier rempli de fichiers model_final_v3_VRAI_FINAL.pkl et de notebooks commentés dont personne ne se souvient des résultats. L’experiment tracking résout ce chaos en créant un registre central de tout ce qui a été tenté, avec quels résultats, permettant de retrouver en quelques secondes la configuration exacte qui a produit votre meilleur modèle.

Experiment Tracking en bref
Catégorie
MLOps / Gestion des expériences ML
Objectif
Reproductibilité, comparaison de runs, collaboration et traçabilité
Ce qui est tracké
Paramètres, métriques, artefacts, code, données, environnement
Outils majeurs
MLflow, Weights & Biases, Neptune, ClearML, TensorBoard
Prérequis
Un tracking server (local ou distant), un artifact store
Lié à
Model Versioning, Feature Store, CI/CD

Pourquoi l’experiment tracking est fondamental

Développer un modèle de machine learning est un processus itératif. Vous testez des dizaines, parfois des centaines de combinaisons : architectures différentes, hyperparamètres variés, preprocessing modifié, nouveaux features, datasets mis à jour. Chaque combinaison produit un run avec ses propres résultats. Sans un système pour capturer tout cela, vous perdez la trace de ce qui fonctionne et pourquoi.

Reproductibilité

La reproductibilité est le problème numéro un en ML. Un modèle qui fonctionne sur votre laptop doit fonctionner de manière identique quand un collègue le relance ou quand il est déployé en production. L’experiment tracking garantit cela en enregistrant la totalité du contexte d’un run : le code exact (commit Git), les données utilisées (version du dataset), les hyperparamètres, les seeds aléatoires et l’environnement logiciel (versions des bibliothèques). Avec ces informations, n’importe qui peut recréer exactement le même résultat.

Comparaison systématique

Quand vous avez exécuté 50 runs avec des paramètres différents, comment identifiez-vous le meilleur ? Sans tracking, vous faites des captures d’écran de métriques et vous les comparez dans un tableur. Avec un outil d’experiment tracking, vous filtrez, triez et visualisez tous vos runs dans un dashboard interactif. Vous pouvez superposer les courbes de loss de plusieurs runs, trier par F1-score, filtrer par learning rate. La comparaison qui prenait une heure se fait en 30 secondes.

Collaboration d’équipe

Dans une équipe de data scientists, plusieurs personnes expérimentent simultanément sur le même problème. L’experiment tracking centralise tous les résultats dans un même endroit. Un collègue peut voir vos runs, comprendre ce que vous avez testé, et partir de vos résultats plutôt que de tout recommencer. C’est la fin des emails avec des screenshots de notebooks.

Auditabilité et conformité

Pour les industries réglementées (finance, santé, assurance), chaque décision d’un modèle en production doit être traçable. L’experiment tracking fournit l’historique complet : qui a entraîné quel modèle, avec quelles données, quand, et quels résultats ont justifié sa mise en production. C’est le fondement de toute stratégie de gouvernance ML.


Que faut-il tracker exactement ?

Un run d’expérience ML produit une quantité importante d’informations. Voici les catégories essentielles que votre système de tracking doit capturer :

Catégorie Exemples concrets Pourquoi c’est critique
Paramètres Learning rate, batch size, nombre d’epochs, architecture, optimizer Déterminent le comportement de l’entraînement et la convergence
Métriques Loss, accuracy, F1, precision, recall, AUC, latence d’inférence Mesures de performance pour comparer les runs et décider des promotions
Métriques par step Train loss par epoch, val loss par epoch, learning rate schedule Permettent de visualiser les courbes d’entraînement et diagnostiquer les problèmes
Artefacts Poids du modèle, confusion matrix, graphiques, fichiers de prédiction Les sorties concrètes du run, nécessaires pour reproduire ou déployer
Code source Commit Git, fichier d’entrée, version du notebook Le code exact qui a produit le résultat
Données Version du dataset, hash, taille, splits train/val/test Même code + données différentes = résultat différent
Environnement Python 3.11, PyTorch 2.5, CUDA 12.4, requirements.txt Les dépendances logicielles influencent les résultats numériques
Tags et métadonnées Nom du run, auteur, description, type de modèle, objectif Facilitent la recherche et le filtrage dans le dashboard
Astuce : autolog MLflow propose mlflow.autolog() qui s’intègre nativement avec PyTorch, TensorFlow, scikit-learn, XGBoost, LightGBM et d’autres frameworks pour capturer automatiquement les hyperparamètres, métriques et artefacts sans écrire une seule ligne de logging manuel. C’est le moyen le plus rapide de démarrer.

Concepts clés de l’experiment tracking

Experiment

Un experiment est un conteneur logique qui regroupe des runs liés à une même tâche. Par exemple, l’experiment « détection-fraude » contient tous les runs d’entraînement testés pour ce problème. Vous pouvez avoir des experiments longue durée (un cas d’usage métier entier) ou éphémères (les résultats d’un hyperparameter sweep déclenché par une pull request).

Run

Un run est une exécution unique d’un script d’entraînement. Chaque run enregistre ses métadonnées (paramètres, métriques, timestamps) et ses artefacts (fichiers produits : modèles, images, logs). Un run est l’unité atomique du tracking : c’est lui que vous comparez, filtrez et sélectionnez.

Child Runs

Certains outils permettent de créer des runs enfants sous un run parent. C’est utile pour regrouper les runs d’une cross-validation (un parent + un enfant par fold) ou les itérations d’un hyperparameter sweep. MLflow supporte nativement cette hiérarchie.

Autologging

L’autologging capture automatiquement les paramètres et métriques sans code explicite. Quand vous appelez mlflow.autolog() avant l’entraînement, MLflow intercepte les appels aux frameworks supportés et enregistre tout : les hyperparamètres du modèle, les métriques d’évaluation, les artefacts (poids, feature importance), et même les signatures d’entrée/sortie du modèle.

Artifact Store

Les métadonnées (paramètres, métriques, tags) sont stockées dans un backend store (base de données SQL). Les artefacts volumineux (poids du modèle, datasets, images) sont stockés séparément dans un artifact store (S3, GCS, Azure Blob, ou un dossier local). Cette séparation permet de scaler indépendamment les métadonnées et les fichiers lourds.


Les outils d’experiment tracking en détail

MLflow Tracking : le standard open source

MLflow est la plateforme open source la plus adoptée pour l’experiment tracking, avec plus de 30 millions de téléchargements mensuels. Son composant Tracking enregistre les paramètres, métriques, code et artefacts via une API Python simple et une interface web pour explorer les résultats.

MLflow 3, sorti en 2025, a refondu l’architecture pour supporter nativement les applications GenAI. Le tracking couvre désormais non seulement les runs ML classiques mais aussi les traces LLM (observabilité des étapes intermédiaires d’un agent ou d’une chaîne RAG), les prompts versionnés et les évaluations avec juges LLM. MLflow 3.10 (février 2026) a ajouté le support multi-workspace, l’évaluation de conversations multi-tour et le tracking des coûts LLM.

import mlflow

# Configurer le tracking
mlflow.set_tracking_uri("http://localhost:5000")
mlflow.set_experiment("detection-fraude")

# Activer l'autolog pour scikit-learn
mlflow.autolog()

# Entraîner normalement : tout est capturé automatiquement
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import f1_score

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)

with mlflow.start_run(run_name="rf-baseline"):
    model = RandomForestClassifier(n_estimators=200, max_depth=10, random_state=42)
    model.fit(X_train, y_train)

    # Logger des métriques custom en plus de l'autolog
    predictions = model.predict(X_test)
    mlflow.log_metric("f1_custom", f1_score(y_test, predictions))

    # Logger un artefact custom (confusion matrix en image)
    mlflow.log_artifact("confusion_matrix.png")

Pour le tracking par epoch (réseaux de neurones), MLflow supporte le paramètre step qui permet de logger des métriques à chaque itération et de visualiser les courbes d’apprentissage dans l’interface :

with mlflow.start_run(run_name="transformer-v3"):
    mlflow.log_params({
        "model": "transformer",
        "hidden_dim": 256,
        "learning_rate": 3e-4,
        "epochs": 50
    })

    for epoch in range(50):
        train_loss, val_loss = train_one_epoch(model, train_loader, val_loader)

        # Logger les métriques avec le step pour les courbes
        mlflow.log_metric("train_loss", train_loss, step=epoch)
        mlflow.log_metric("val_loss", val_loss, step=epoch)
        mlflow.log_metric("val_accuracy", evaluate(model, val_loader), step=epoch)
MLflow Tracking Server : local vs production En développement, un simple mlflow server --host 0.0.0.0 --port 5000 suffit. En production, configurez un backend PostgreSQL pour les métadonnées et un stockage S3 pour les artefacts. Le tracking server peut aussi servir de proxy pour l’accès aux artefacts, ce qui simplifie la gestion des credentials pour l’équipe.

Weights & Biases : le tracking collaboratif

Weights & Biases (W&B) se positionne comme la plateforme ML « developer-first » avec un accent sur la collaboration et la visualisation. Son interface est unanimement reconnue comme supérieure à celle de MLflow : dashboards interactifs, comparaison de runs en temps réel, rapports partagés et tables de données explorables.

W&B s’intègre avec plus de 20 frameworks (PyTorch, TensorFlow, scikit-learn, HuggingFace Transformers, etc.) en quelques lignes de code. Le logging est quasi-identique à MLflow dans sa simplicité :

import wandb

# Initialiser un run
run = wandb.init(
    project="detection-fraude",
    name="xgboost-v2",
    config={
        "model": "xgboost",
        "n_estimators": 500,
        "max_depth": 8,
        "learning_rate": 0.05
    }
)

# Logger des métriques pendant l'entraînement
for epoch in range(100):
    train_loss, val_loss = train_one_epoch(model, epoch)
    wandb.log({
        "train_loss": train_loss,
        "val_loss": val_loss,
        "epoch": epoch
    })

# Logger un artefact
artifact = wandb.Artifact("training-data", type="dataset")
artifact.add_file("data/train.parquet")
run.log_artifact(artifact)

run.finish()

W&B a aussi introduit W&B Weave, un module de tracing et d’observabilité spécifiquement conçu pour les applications GenAI. Weave capture les appels LLM, les étapes de retrieval dans un pipeline RAG, et les décisions d’outils dans un agent, avec une interface dédiée pour debugger chaque étape.

Le principal compromis : W&B est cloud-first. La version gratuite est limitée (projets privés limités), et les plans payants (Teams à ~$50/utilisateur/mois) s’additionnent vite pour les grandes équipes. Des options self-hosted et Dedicated Cloud existent pour les organisations avec des exigences de souveraineté des données.

Neptune : métadonnées et requêtage avancé

Neptune se distingue par ses capacités de requêtage et de filtrage avancées sur les métadonnées d’expériences. Là où MLflow et W&B offrent des interfaces de comparaison visuelles, Neptune permet de construire des requêtes complexes pour retrouver des runs spécifiques dans un historique de milliers d’expériences.

Neptune excelle dans les scénarios où la traçabilité et la conformité sont prioritaires. Les industries réglementées (finance, santé, automobile) apprécient son système d’audit trail détaillé et sa capacité à relier chaque modèle à la version exacte des données, du code et de la configuration qui l’a produit.

Le modèle de pricing de Neptune est basé sur l’usage (heures de tracking, volume de stockage), ce qui peut le rendre économique pour les petites équipes mais coûteux à grande échelle.

ClearML : tracking « automagique »

ClearML (anciennement Allegro Trains) est une plateforme open source complète qui va au-delà du simple experiment tracking. Son module Experiment Manager capture automatiquement les métriques, le code source, les notebooks Jupyter, les fichiers de configuration et même les conteneurs Docker associés à chaque run.

Le point fort de ClearML est l’intégration avec sa propre infrastructure d’orchestration : vous pouvez transformer n’importe quel script Python en tâche ClearML, la mettre dans une queue, et ClearML gère le scheduling sur vos GPU (cloud, on-premise ou hybride). Le tracking et l’orchestration dans le même outil éliminent le besoin de connecter MLflow à Airflow ou Kubeflow séparément.

ClearML propose un free tier généreux (100 Go de stockage d’artefacts) et une version Enterprise managée pour les organisations avec des exigences de sécurité. L’interface est fonctionnelle mais moins raffinée que celle de W&B.

TensorBoard : le vétéran

TensorBoard est l’outil de visualisation historique de l’écosystème TensorFlow. Il offre des visualisations de métriques, de graphes de modèles, de distributions de poids et d’images. Bien qu’il soit souvent le premier choix pour les utilisateurs TensorFlow, il a des limitations significatives : pas de model registry, pas de gestion multi-utilisateur native, pas de requêtage avancé. Pour un usage au-delà de la visualisation personnelle, il est insuffisant. La plupart des équipes l’utilisent en complément d’un outil de tracking plus complet comme MLflow ou W&B.


Comparatif des outils d’experiment tracking

Critère MLflow W&B Neptune ClearML TensorBoard
Licence Open source Commercial Commercial Open source Open source
UI / dashboards Correcte Excellente Très bonne Bonne Bonne (visualisation)
Autologging Oui (10+ frameworks) Oui (20+ frameworks) Oui Oui (automatique) TensorFlow natif
Model Registry Complet W&B Registry Oui Oui Non
Support GenAI MLflow 3 (tracing, prompts) W&B Weave Basique Oui (LLMOps) Non
Self-hosted Oui Oui (Enterprise) Oui (Enterprise) Oui Oui
Orchestration Non (externe) Non (externe) Non (externe) Oui (intégré) Non
Coût (10 users) Gratuit + infra ~$500/mois Usage-based Free tier puis $15/user/mois Gratuit
Adoption 30M+ téléchargements/mois 5000+ jobs mentionnant W&B Niche (réglementé) Croissante Très large (TF users)
Notre verdict MLflow est le choix par défaut pour la majorité des équipes : gratuit, open source, standard de fait, avec le meilleur écosystème d’intégrations. W&B est le meilleur choix si votre priorité est la collaboration UI-first et que le budget le permet. ClearML est intéressant si vous voulez tracking + orchestration dans un seul outil. Neptune est le choix des industries réglementées qui ont besoin d’audit trails avancés. TensorBoard seul n’est plus suffisant pour une équipe sérieuse.

Bonnes pratiques d’experiment tracking

Nommez vos runs de manière descriptive

Un nom de run comme « run_23 » ne vous dira rien dans deux semaines. Utilisez des noms qui décrivent l’hypothèse testée : rf-200trees-depth10-baseline, transformer-lr3e4-dropout05, xgboost-feature-v2-no-outliers. MLflow permet de passer un run_name dans mlflow.start_run(), W&B utilise le paramètre name dans wandb.init().

Utilisez les tags pour organiser

Les tags permettent de catégoriser vos runs selon des dimensions utiles : type de modèle (random_forest, transformer), phase (exploration, optimisation, final), dataset utilisé (v2026-Q1), ou auteur. Les tags facilitent le filtrage dans le dashboard quand vous avez des centaines de runs.

Loggez les métriques par step

Pour les entraînements itératifs (réseaux de neurones), ne loggez pas seulement les métriques finales. Utilisez le paramètre step pour enregistrer la loss et l’accuracy à chaque epoch. Les courbes d’apprentissage sont indispensables pour diagnostiquer les problèmes (overfitting, underfitting, learning rate trop élevé).

Référencez la version des données

Loggez systématiquement un paramètre dataset_version ou data_hash dans chaque run. Si vous utilisez DVC, référencez le tag DVC correspondant. Un modèle n’est reproductible que si vous pouvez retrouver exactement les données sur lesquelles il a été entraîné.

Capturez l’environnement

Loggez le requirements.txt ou le conda.yaml comme artefact de chaque run. Les résultats numériques peuvent varier entre des versions différentes de PyTorch ou de CUDA. MLflow capture automatiquement les dépendances avec mlflow.autolog() et les packages avec log_model().

Structurez les runs complexes

Pour un hyperparameter sweep avec 100 combinaisons, créez un run parent qui représente le sweep entier et des runs enfants pour chaque combinaison. Cela garde votre dashboard propre et permet de voir les résultats du sweep comme un ensemble cohérent plutôt que 100 runs disparates.

Ne supprimez jamais les runs

Même les runs ratés sont informatifs. Ils vous disent ce qui ne fonctionne pas. Utilisez les tags pour marquer les runs (failed, promising, production-candidate) plutôt que de supprimer. Le stockage est bon marché ; la connaissance perdue est coûteuse.


Guide d’implémentation pas à pas

Voici un workflow complet avec MLflow, l’outil le plus universel. Les principes s’appliquent à tous les outils de tracking.

Étape 1 : Installer et démarrer le serveur

# Installation
pip install mlflow

# Serveur local (développement)
mlflow server --host 0.0.0.0 --port 5000

# Serveur production (PostgreSQL + S3)
mlflow server 
  --backend-store-uri postgresql://mlflow:password@db:5432/mlflow 
  --default-artifact-root s3://my-bucket/mlflow-artifacts/ 
  --host 0.0.0.0 --port 5000

Étape 2 : Configurer un experiment et tracker un premier run

import mlflow
from sklearn.ensemble import GradientBoostingClassifier
from sklearn.metrics import accuracy_score, f1_score, precision_score, recall_score

mlflow.set_tracking_uri("http://localhost:5000")
mlflow.set_experiment("churn-prediction")

with mlflow.start_run(run_name="gbm-baseline") as run:
    # Logger les paramètres
    params = {
        "model_type": "gradient_boosting",
        "n_estimators": 300,
        "max_depth": 5,
        "learning_rate": 0.1,
        "subsample": 0.8,
        "dataset_version": "churn-data/v2026-03-15"
    }
    mlflow.log_params(params)

    # Entraîner
    model = GradientBoostingClassifier(**{k: v for k, v in params.items()
                                          if k != "dataset_version" and k != "model_type"})
    model.fit(X_train, y_train)
    predictions = model.predict(X_test)

    # Logger les métriques
    mlflow.log_metrics({
        "accuracy": accuracy_score(y_test, predictions),
        "f1": f1_score(y_test, predictions),
        "precision": precision_score(y_test, predictions),
        "recall": recall_score(y_test, predictions)
    })

    # Logger le modèle avec signature
    from mlflow.models import infer_signature
    signature = infer_signature(X_test, predictions)
    mlflow.sklearn.log_model(model, "model", signature=signature)

    # Logger des artefacts supplémentaires
    mlflow.log_artifact("feature_importance.png")

    print(f"Run ID: {run.info.run_id}")

Étape 3 : Comparer les runs via l’API

import mlflow

# Rechercher les meilleurs runs
runs = mlflow.search_runs(
    experiment_names=["churn-prediction"],
    filter_string="metrics.f1 > 0.85",
    order_by=["metrics.f1 DESC"],
    max_results=10
)

# Afficher les résultats
print(runs[["run_id", "params.model_type", "params.n_estimators",
            "metrics.f1", "metrics.accuracy"]].to_string())

# Identifier le meilleur run
best_run = runs.iloc[0]
print(f"nMeilleur run: {best_run.run_id}")
print(f"F1: {best_run['metrics.f1']:.4f}")
print(f"Modèle: {best_run['params.model_type']}")

Étape 4 : Promouvoir le meilleur modèle vers le registry

from mlflow import MlflowClient

client = MlflowClient()

# Enregistrer le modèle du meilleur run dans le registry
model_uri = f"runs:/{best_run.run_id}/model"
mv = mlflow.register_model(model_uri, "churn-predictor")

# Promouvoir via alias (MLflow 3+)
client.set_registered_model_alias("churn-predictor", "champion", version=mv.version)
print(f"Modèle v{mv.version} promu comme champion")

Ce workflow illustre la connexion naturelle entre experiment tracking et model versioning : le tracking produit des candidats, le registry gère les modèles promus.


Experiment tracking pour les applications GenAI

L’experiment tracking pour les LLM et les applications RAG diffère du ML classique sur plusieurs points :

Tracing des appels LLM

Un pipeline GenAI comporte plusieurs étapes : retrieval de documents, appel au LLM, post-processing, appels d’outils. Le tracing capture chaque étape avec ses entrées, sorties, latence et coût. MLflow 3 fournit un module de tracing avec auto-instrumentation pour 20+ frameworks (LangChain, LlamaIndex, OpenAI, Anthropic). W&B propose la même fonctionnalité via W&B Weave.

Tracking des prompts

Le prompt system est l’artefact le plus critique d’une application LLM. Modifier un mot peut changer radicalement le comportement. Le Prompt Registry de MLflow 3 version les prompts avec la même rigueur que les modèles : chaque version est un artefact immuable avec son historique de modifications.

Évaluation avec juges LLM

Les métriques classiques (accuracy, F1) ne s’appliquent pas directement aux LLM. MLflow 3 et W&B supportent l’évaluation avec des juges LLM (un modèle évalue les sorties d’un autre) et le feedback humain structuré. Ces scores d’évaluation sont trackés comme des métriques standard, permettant de comparer les runs GenAI avec la même rigueur que les runs ML classiques.

Tracking des coûts

Chaque appel LLM via API a un coût en tokens. MLflow 3.10 extrait automatiquement les informations de modèle des spans LLM et calcule les coûts, avec une vue agrégée dans l’onglet « Overview » de chaque trace. C’est indispensable pour optimiser le rapport qualité/coût d’une application GenAI en production.


Anti-patterns à éviter

Le tableur comme tracker

Un Google Sheet pour noter les résultats de vos expériences est la solution la plus naturelle et la pire : saisie manuelle (donc erreurs), pas de format standard, aucune connaissance des données et du preprocessing utilisés, aucune automatisation possible. Utilisez un vrai outil de tracking dès le premier run.

Le tracking sélectif

Ne tracker que les runs « intéressants » ou les métriques principales est une fausse économie. Vous ne savez pas à l’avance quels runs seront utiles rétrospectivement. Trackez tout, automatiquement, et filtrez après coup. Le coût de stockage est négligeable comparé à la valeur de l’information perdue.

Les silos par data scientist

Si chaque membre de l’équipe utilise un serveur de tracking local, les résultats sont fragmentés et non comparables. Centralisez le tracking dès que l’équipe dépasse une personne. Un serveur MLflow partagé avec un backend PostgreSQL se met en place en une journée.

Les métriques sans contexte

Un F1-score de 0.94 ne signifie rien si vous ne savez pas sur quelles données il a été calculé, avec quel split, sur quelle population. Loggez systématiquement le contexte (version des données, taille du dataset, distribution des classes) en plus des métriques brutes.


Experiment tracking dans la stack MLOps

L’experiment tracking ne fonctionne pas en isolation. Il se connecte aux autres composants de votre infrastructure MLOps :

Composant Relation avec l’experiment tracking
Model Versioning Le tracking produit des candidats. Le model registry gère les modèles promus en production.
Feature Store Les features versionnées sont référencées dans les runs. Un changement de feature = nouveau run.
Data Pipeline Les pipelines de données alimentent les expériences. La version du dataset est loggée dans chaque run.
CI/CD Les résultats du tracking déclenchent la promotion ou le rejet automatique des modèles.
Model Deployment Le modèle champion du registry est déployé. Le tracking fournit les métriques de référence.

La stack typique en 2026 pour une équipe ML mature : MLflow ou W&B pour le tracking et le registry, DVC ou lakeFS pour le versionnage des données, Kubeflow ou Airflow pour l’orchestration des pipelines, et Evidently ou NannyML pour le monitoring en production.


Verdict

L’experiment tracking est le premier investissement MLOps à faire. Avant le model registry, avant l’orchestration, avant le monitoring. Parce que sans tracking, tout le reste est construit sur du sable : vous ne pouvez pas versionner ce que vous n’avez pas enregistré, vous ne pouvez pas automatiser un pipeline dont vous ne connaissez pas les métriques de référence.

Le coût de démarrage est quasi nul : pip install mlflow, mlflow.autolog(), et vous êtes opérationnel en 5 minutes. La valeur est immédiate : dès le deuxième run, vous pouvez comparer avec le premier. Et quand votre équipe grossit, les résultats de chacun sont centralisés, comparables et reproductibles.

Si vous ne faites qu’une seule chose en MLOps cette semaine, installez un outil d’experiment tracking. Tout le reste en découle.


Questions fréquentes sur l’experiment tracking

Quelle est la différence entre experiment tracking et model versioning ?

L’experiment tracking enregistre tous les détails de chaque run d’entraînement : paramètres, métriques, code, artefacts. C’est la phase d’exploration où vous testez de nombreuses combinaisons. Le model versioning intervient après : il sélectionne les meilleurs modèles issus des expériences, les enregistre dans un registry centralisé et gère leur cycle de vie (staging, production, archivage). Le tracking produit des candidats ; le versioning gère les élus. MLflow et W&B intègrent les deux fonctions.

Quel outil d’experiment tracking choisir pour un projet solo ?

Pour un projet solo ou une petite équipe, MLflow est le meilleur point de départ : gratuit, open source, facile à installer (pip install mlflow), et suffisamment puissant pour évoluer avec vous. TensorBoard peut compléter si vous travaillez avec TensorFlow. W&B est aussi une option avec son free tier (projets personnels illimités), mais la dépendance au cloud peut être un frein. Évitez Neptune et ClearML pour un usage solo, leur valeur ajoutée apparaît surtout dans les contextes d’équipe et de conformité.

Faut-il tracker les expériences GenAI / LLM différemment du ML classique ?

Oui, avec des nuances importantes. Le ML classique tracke des hyperparamètres numériques et des métriques quantitatives (accuracy, F1). Les applications GenAI nécessitent en plus le tracing des étapes intermédiaires (retrieval, appels LLM, tools), le versionnage des prompts, l’évaluation qualitative (juges LLM, feedback humain) et le tracking des coûts par appel. MLflow 3 et W&B Weave gèrent ces spécificités nativement. Le principe reste le même : tout enregistrer pour pouvoir comparer et reproduire.

Comment migrer d’un tableur vers un outil de tracking ?

Commencez par ajouter mlflow.autolog() au début de vos scripts d’entraînement existants. C’est littéralement une ligne de code. L’autolog capture automatiquement les hyperparamètres et métriques des frameworks supportés (scikit-learn, PyTorch, TensorFlow, XGBoost). Lancez un serveur MLflow local (mlflow server --port 5000) et ouvrez l’interface web pour voir vos runs apparaître. Ajoutez progressivement des métriques custom, des tags et des artefacts au fil du temps. Ne cherchez pas à tout migrer d’un coup : le simple fait de commencer à tracker automatiquement est un gain immédiat.

Comment l’experiment tracking s’intègre-t-il à un pipeline CI/CD ?

Le flux typique : un pipeline CI/CD déclenche un entraînement (par exemple via GitHub Actions ou GitLab CI), le script d’entraînement logge tout dans MLflow, puis un step de validation compare les métriques du nouveau modèle avec celles du champion actuel dans le registry. Si le nouveau modèle est meilleur (F1 supérieur, latence acceptable), il est automatiquement promu via alias @champion et le déploiement est déclenché. Si les métriques sont inférieures, le run est archivé mais conservé. Cette boucle élimine les promotions manuelles et garantit que seuls les modèles validés atteignent la production.

Polydesk.ai — Footer