Aller au contenu

TechniquePratique

Module 4 : l'évaluation continue en production

Pour : ingénieurs et SREPrérequis : Avoir lu le module 3 du parcours sur les trois dérives.

Les deux sont complémentaires et répondent à des questions différentes.

En ligneHors ligne
Sur quoile trafic réel, échantillonné (par exemple 1 à 5 %, voir plus bas)un jeu de référence (ordre de grandeur : quelques centaines à un millier de paires question et réponse)
Quanden continuà chaque version, avant déploiement
Coûtmaîtrisé par l’échantillonnage, chaque jugement consommant des jetonsplus élevé, avec un humain dans la boucle
Forcedétection rapide, alerte quasi temps réelcomparaison rigoureuse entre versions
Limitepas d’oracle, seulement un autre modèlene voit pas les dérives après mise en production

En pratique, on évalue hors ligne avant chaque mise en production et en ligne en continu.

Combien de réponses faire juger en ligne ? Le principe retenu sur tout le site : c’est le nombre de jugements par segment et par période (par fonctionnalité ou par client, par heure ou par jour) qui fait la précision d’un score, pas le pourcentage du trafic. Les 1 à 5 % cités ici sont des exemples : sur un trafic important, 1 % donne déjà beaucoup de jugements ; sur un segment peu fréquenté, même 100 % peut n’en donner que quelques-uns par jour. La conception de l’échantillonnage (paliers d’évaluateurs, traces toujours évaluées) a sa référence à la section 5.7 du guide ; ce module garde ce qui est propre aux labs : les biais du juge et le diagnostic du RAG.

Les deux évaluations forment une seule boucle :

flowchart TB
  V["Nouvelle version"] --> OFF{"Hors ligne<br/>jeu de référence"}
  OFF -->|"régression"| FX["Corriger"]
  FX --> V
  OFF -->|"conforme"| PR["Production"]
  PR --> ON["En ligne<br/>échantillon 1 à 5 %,<br/>juge différent"]
  PR --> FB["Retours utilisateurs<br/>rattachés au trace_id"]
  ON --> AL{"Score<br/>en baisse"}
  FB --> AL
  AL -->|"oui"| EN["Enquête<br/>sur la trace"]
  EN -.->|"nouveaux cas"| OFF

Faire noter les réponses par un modèle est rapide et produit un score exploitable en métrique. Il reste coûteux et non déterministe : épingler la version du modèle juge et fixer la température à zéro améliorent la reproductibilité sans la garantir. L’accord avec un jugement humain peut être élevé : sur des comparaisons de réponses de chatbots, Zheng et al. mesurent plus de 80 % d’accord entre GPT-4 et des évaluateurs humains, autant qu’entre humains (Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena, 2023). Ce résultat ne se transpose pas tel quel à votre juge ni à vos critères : mesurez l’accord sur un échantillon que vous aurez fait annoter.

Ses biais sont connus et doivent être compensés :

BiaisEffet
verbositépréfère les réponses longues
auto-préférencepréfère son propre style
positionfavorise la première option dans une comparaison A/B
aplombtolère une hallucination bien rédigée
coût cachéles jetons du juge dépassent parfois ceux du modèle évalué

Pour les compenser, on utilise un prompt d’évaluation structuré, un format de sortie rigide, un juge différent du modèle évalué, un échantillonnage croisé avec des annotations humaines.

MétriqueQuestionOutils
Faithfulness (fidélité)les affirmations de la réponse sont-elles soutenues par le contexte récupéré ?RAGAS, Phoenix
Context recallle contexte contient-il l’information nécessaire ?RAGAS, vérité terrain
Context precisionle contexte est-il dense ou bruité ?RAGAS
Answer relevancela réponse répond-elle à la question posée ?RAGAS, LLM juge

Une fidélité basse avec un context recall bas désigne la récupération. Une fidélité basse avec un context recall haut désigne la génération.

flowchart LR
  F["Fidélité basse"] --> R{"Context recall"}
  R -->|"bas"| RET["Chercher côté récupération"]
  R -->|"haut"| GEN["Chercher côté génération"]

Trois niveaux, à combiner selon le risque :

  1. Règles : un chiffre, une date ou un nom propre dans la réponse qui n’apparaît pas dans le contexte.
  2. Modèles spécialisés : classifieurs d’implication entre contexte et réponse.
  3. Signaux faibles : retours négatifs, reformulations immédiates de la même question, abandons.

Le pouce haut ou bas est le signal le moins cher et le plus direct. Rattachez-le à la trace par son trace_id : un retour négatif devient alors un point d’entrée vers le contexte exact qui a produit la mauvaise réponse.

  • L’évaluation hors ligne conditionne chaque mise en production ; l’évaluation en ligne tourne en continu.
  • Un LLM juge n’est utile que s’il diffère du modèle évalué et que ses biais sont compensés.
  • Lues ensemble, fidélité et context recall disent si le problème vient de la récupération ou de la génération.
  • Un retour utilisateur rattaché à sa trace donne le contexte exact de l’erreur, ce qu’aucun score agrégé ne fournit.

Révisé le 2 octobre 2026 : le chiffre de corrélation non sourcé entre juge et humains est remplacé par l’étude de Zheng et al. (2023), les taux d’échantillonnage et la taille du jeu de référence sont présentés comme des ordres de grandeur.

Révisé le 4 octobre 2026 : principe d’échantillonnage du juge énoncé (le nombre de jugements par segment et par période compte plus que le pourcentage), taux présentés comme des exemples et renvoi à la section 5.7 du guide.