DataManip Insights ÉPISODE 1 MLOps & Production Gratuit
📉 Épisode 1 · Un modèle ne tombe pas en panne, il se périme

Votre modèle ne plante pas.
Il vieillit en silence.

En production, rien ne clignote quand le monde change. Le modèle continue de répondre, avec la même assurance, sur des données qui ne ressemblent plus à celles de son entraînement. On l'apprend des semaines plus tard, quand les étiquettes arrivent.

🎯 L'analogie clé

Une balance de précision étalonnée en laboratoire à 20 °C, puis installée dans un hangar à 5 °C. Elle affiche toujours un chiffre, avec le même nombre de décimales. Mais ce n'est plus le bon. Aucune alarme ne se déclenche : seuls un étalonnage régulier ou un contrôle de ses conditions de mesure le révèlent.

Trois façons de dériver

Ce qui change n'est pas toujours
ce que l'on croit.

On parle de dérive dès que la distribution des données vues en production s'écarte de celle de l'entraînement. Selon ce qui bouge, la détection et le remède ne sont pas les mêmes.

📊
Dérive des entrées
La distribution de X change, mais la relation entre X et la cible reste valide. Exemple : un capteur qui se décale, ou une clientèle plus jeune. Détectable sans étiquettes.
🔀
Dérive de concept
La relation entre X et la cible change : les mêmes entrées n'ont plus la même signification. Exemple : des fraudeurs qui adaptent leurs méthodes. Invisible dans les entrées, seules les étiquettes la révèlent.
⚖️
Dérive de la cible
La proportion des classes change, par exemple un taux de fraude qui passe de 1 % à 3 %. Les seuils de décision et la calibration, réglés pour l'ancienne proportion, ne sont plus adaptés.
Le point clé : un modèle n'apprend que sur la distribution qu'il a vue. En dehors de cette zone, il n'a aucune raison d'être bon, et rien dans sa sortie ne l'avertit.
À vous de manipuler

Faites dériver un capteur,
mesurez la dérive.

Un modèle classe des mesures en deux familles, avec un seuil fixé à l'entraînement (x = 1). Les deux groupes sont centrés en 0 et en 2, avec la même dispersion. Décalez la production (capteur qui dérive) ou élargissez-la (bruit en plus) : la courbe cyan est la référence d'entraînement, la magenta ce que le modèle voit aujourd'hui.

Dérive d'une variable : référence contre production
Distribution de la variable
Précision selon le décalage, avec les zones d'alarme du PSI

Le PSI, le KS et la distance de Jensen-Shannon se calculent sur les entrées seules, sans étiquettes. La précision réelle n'est connue que quand les étiquettes arrivent (ici calculée exactement, pour la comparaison).

PSI
0,000
Stable
KS (écart max)
0,000
Distance JS
0,000
Précision réelle
84,1 %
 
Observez : avec la dispersion à 1, le PSI dépasse 0,10 dès un décalage d'environ 0,45 écart-type, alors que la précision n'a perdu que 2 points (84,1 % → 81,8 %). Il passe 0,25 vers 0,71, à 78,5 %. L'alarme sonne bien avant que la perte soit visible dans les résultats, mais seulement si l'on surveille les entrées. Les seuils 0,10 et 0,25 sont des règles empiriques héritées du scoring de crédit : à calibrer sur votre cas.

Mais un seul indicateur ne suffit pas : avec « Bruit accru » (dispersion 1,6), le PSI reste à 0,095 alors que la précision perd 10,7 points. D'où la surveillance des sorties et de la performance réelle, en plus des entrées.
Que faire ensuite

Surveiller, alerter, réentraîner.

Détecter ne suffit pas : il faut décider quoi faire de l'alerte, et à quelle vitesse.

🔭
Surveiller les entrées
Comparer chaque variable à sa référence d'entraînement sur une fenêtre glissante (PSI, KS, distance JS). Rapide, et sans étiquettes.
🎚️
Surveiller les sorties
La distribution des scores du modèle est une variable comme une autre : si elle bouge, quelque chose a changé en amont.
🏷️
Mesurer la vraie performance
Dès que les étiquettes arrivent, souvent avec des semaines de retard, recalculer précision, rappel ou erreur. C'est la seule mesure de vérité.
🔄
Réentraîner avec discernement
À intervalle fixe ou sur alerte. Données récentes, validation avant remplacement, ancienne version gardée en secours.
Le piège du multi-tests : surveiller 20 variables avec un test à 5 % donne 1 − 0,9520 ≈ 64 % de chances d'au moins une fausse alerte à chaque fenêtre, même sans aucune dérive réelle (voir l'épisode « ANOVA & Comparaisons Multiples » de la série Statistique). D'où l'intérêt de seuils portant sur l'ampleur de l'écart (comme le PSI) plutôt que sur la seule p-value, et d'alertes agrégées.
Python
import numpy as np
from scipy.stats import ks_2samp

def psi(reference, production, bins=10):
    # bornes = déciles de la référence d'entraînement
    edges = np.quantile(reference, np.linspace(0, 1, bins + 1))
    edges[0], edges[-1] = -np.inf, np.inf
    p = np.histogram(reference, edges)[0] / len(reference)
    q = np.histogram(production, edges)[0] / len(production)
    p, q = np.clip(p, 1e-6, None), np.clip(q, 1e-6, None)
    return np.sum((q - p) * np.log(q / p))

# psi < 0.10 stable · 0.10 à 0.25 à surveiller · > 0.25 dérive forte
stat, pvalue = ks_2samp(reference, production)   # test de Kolmogorov-Smirnov
Vérifiez votre compréhension

Quiz rapide.

La précision d'un modèle de fraude baisse, alors que la distribution de toutes ses variables d'entrée est restée stable (PSI inférieur à 0,10). Quelle est l'explication la plus probable ?

À retenir

ÉPISODE SUIVANT

Détection d'anomalies : Mahalanobis, autoencodeur, Isolation Forest

Quand une seule observation sort du lot, la dérive ne suffit plus : il faut décider si ce point est étrange, et pourquoi.

ACCÈS COMPLET

Cet épisode est gratuit. Les 282 autres t'attendent.

Statistiques, finance quantitative, machine learning, deep learning, LLM, agents IA, MLOps : 321 épisodes avec des simulateurs à manipuler, pas des vidéos.

99 € (+ TVA selon le pays) · accès à vie · remboursement possible sous 7 jours
Débloquer les 282 épisodes · 99 € J'ai déjà une clé de licence
FULL ACCESS

This episode is free. The other 282 are waiting for you.

Statistics, quantitative finance, machine learning, deep learning, LLMs, AI agents, MLOps: 321 interactive episodes with simulators to play with, not videos.

€99 (+ VAT depending on country) · lifetime access · 7-day refund
Unlock the 282 episodes · €99 I already have a license key