Aller au contenu
MLOps medium

Monitoring ML : surveiller les modèles et détecter le drift

6 min de lecture

Le monitoring ML consiste à surveiller un modèle en production pour détecter la dégradation de ses performances, souvent silencieuse. Contrairement à une application classique, un modèle peut continuer à répondre sans erreur tout en devenant de moins en moins pertinent, à cause du drift : l'évolution des données dans le temps.

Ce guide explique pourquoi surveiller un modèle, distingue les types de drift, montre comment le détecter avec Evidently (code testé), liste les indicateurs à suivre et les outils. Il complète le cycle MLOps. Public : intermédiaire à avancé.

  • Comprendre pourquoi un modèle se dégrade en production.
  • Distinguer data drift, concept drift et model drift.
  • Détecter une dérive avec Evidently.
  • Suivre les bons indicateurs.
  • Déclencher un réentraînement au bon moment.

Un modèle ML se dégrade sans prévenir. Il n'y a ni erreur ni plantage : les prédictions restent techniquement valides, mais deviennent progressivement fausses parce que le monde a changé. Un modèle de détection de fraude entraîné l'an dernier ignore les fraudes d'aujourd'hui.

Deux difficultés rendent cette surveillance particulière. D'abord, la vérité terrain (la bonne réponse) arrive souvent en retard : on ne sait qu'un client a résilié que des semaines plus tard. Ensuite, les métriques système habituelles (latence, uptime) ne disent rien de la pertinence des prédictions. Il faut surveiller les données et les sorties du modèle.

Le drift est la cause principale de dégradation. On en distingue plusieurs formes :

  • Data drift : la distribution des données d'entrée change (nouvelle saison, nouveau segment d'utilisateurs), même si la logique reste la même.
  • Concept drift : la relation entre les entrées et la cible change (la définition de la fraude évolue). Le modèle raisonne alors sur une réalité périmée.
  • Model drift : le terme générique pour la perte de performance qui en résulte avec le temps.

Détecter le data drift tôt permet d'anticiper la baisse de performance, avant même de disposer des vraies réponses.

Evidently est une bibliothèque open source qui compare un jeu de données de référence (l'entraînement) à un jeu courant (la production) et signale les dérives. Installez-la dans un environnement isolé :

Fenêtre de terminal
pip install evidently==0.7.21

On compare ici une feature dont la distribution a dérivé (moyenne passée de 0 à 0,8) :

import pandas as pd, numpy as np
from evidently import Dataset, DataDefinition, Report
from evidently.presets import DataDriftPreset
ref = pd.DataFrame({"feature": np.random.normal(0.0, 1, 500)}) # référence
cur = pd.DataFrame({"feature": np.random.normal(0.8, 1, 500)}) # production
schema = DataDefinition(numerical_columns=["feature"])
ref_ds = Dataset.from_pandas(ref, data_definition=schema)
cur_ds = Dataset.from_pandas(cur, data_definition=schema)
report = Report([DataDriftPreset()])
snapshot = report.run(current_data=cur_ds, reference_data=ref_ds)
snapshot.save_html("drift_report.html")

Evidently détecte que 100 % des colonnes ont dérivé (part de 1,0), avec une p-value de l'ordre de 1e-25 : la dérive est franche et statistiquement indiscutable. Le rapport drift_report.html généré visualise les distributions comparées, à intégrer dans un tableau de bord ou un pipeline.

Un bon monitoring ML combine plusieurs niveaux d'indicateurs :

  • Distribution des données d'entrée : détecter le data drift feature par feature.
  • Distribution des prédictions : un modèle qui prédit soudain toujours la même classe est suspect.
  • Performance (quand les étiquettes arrivent) : précision, rappel, erreur.
  • Indicateurs système : latence et disponibilité du service d'inférence.
OutilUsage
Evidently AIDétection de drift et qualité des données, rapports
Prometheus + GrafanaMétriques système (latence, disponibilité)
Arize AI / WhyLabsMonitoring managé, alertes sur performances et biais

Une approche pragmatique combine Evidently pour le drift et Prometheus + Grafana pour la partie infrastructure.

Détecter un drift ne suffit pas, il faut agir. Trois stratégies :

  • Réentraînement programmé : à intervalle fixe (hebdomadaire, mensuel), simple mais parfois inutile ou trop tardif.
  • Réentraînement déclenché : automatiquement quand le drift dépasse un seuil défini. Plus réactif.
  • Rollback : revenir à une version antérieure plus stable en attendant.

Réentraîner trop souvent gaspille des ressources, trop rarement dégrade la valeur métier. Le bon réflexe est de définir des seuils explicites de drift.

La surveillance d'un modèle en production pour détecter la dégradation de ses performances, notamment via le drift des données, avant qu'elle n'impacte les décisions.

Quelle différence entre data drift et concept drift ?

Section intitulée « Quelle différence entre data drift et concept drift ? »

Le data drift est un changement de la distribution des entrées ; le concept drift est un changement de la relation entre entrées et cible. Les deux dégradent le modèle, le second de façon plus profonde.

En comparant un jeu de référence aux données de production avec un outil comme Evidently, qui mesure statistiquement l'écart de distribution et signale les dérives.

  1. Un modèle se dégrade silencieusement : ni erreur ni plantage, juste des prédictions de moins en moins justes.
  2. Le drift est la cause : data drift (entrées) et concept drift (relation entrées/cible).
  3. Evidently détecte le drift en comparant référence et production.
  4. Surveillez données, prédictions et performance, pas seulement la latence.
  5. Définissez des seuils pour déclencher le réentraînement au bon moment.

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracking. Un soutien, même symbolique, m'aide à couvrir l'hébergement et à garder ces ressources gratuites. Merci pour votre appui.

Le formulaire ne s'affiche pas ? Ouvrir Ko-fi dans un onglet.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn