Fransys
Tous les cours
F4
2 h
Pédagogie complète

Évaluation : harnais, juge LLM, calibration, trajectoire

Construire un harnais, mesurer sans juge ce qui se calcule, calibrer un juge LLM, évaluer une trajectoire d'agent, et raconter l'histoire qui le prouve.

Parcours FDE — ce qui sépare un FDE d'un dev qui utilise des LLM

Pourquoi ce module

C'est le module qui sépare un FDE d'un développeur qui utilise des LLM.

Un système d'IA générative ne se teste pas comme un logiciel ordinaire : la sortie n'est pas déterministe, il n'y a pas de « bonne réponse » unique, et un test qui compare une chaîne de caractères échouera pour de mauvaises raisons. Il faut donc mesurer autrement — et savoir expliquer comment, parce que c'est la question que pose systématiquement un client sérieux : « comment savez-vous que ça marche ? »

Instruments de mesure et graphiques sur un bureau
F4 : mesurer ce qui n'a pas de bonne réponse unique

Objectifs pédagogiques

  1. Construire un harnais d'évaluation et dire ce qui doit y être déterministe
  2. Expliquer quand un juge LLM est légitime, et comment on le calibre
  3. Choisir la métrique adaptée à chaque étage du système
  4. Évaluer une trajectoire d'agent, pas seulement sa réponse finale
  5. Raconter un cas où la mesure a trouvé ce que la relecture n'aurait pas trouvé

Plan détaillé

  1. Pourquoi les tests ordinaires ne suffisent pas
  2. Le harnais d'évaluation
  3. Ce qui se mesure sans juge
  4. Le juge LLM et sa calibration
  5. Évaluer une trajectoire d'agent
  6. L'histoire à savoir raconter
  7. Cinq façons d'obtenir un chiffre faux
  8. Glossaire du module

1. Pourquoi les tests ordinaires ne suffisent pas

Chargement du schéma…

On ne compare pas une sortie, on vérifie des propriétés

Trois raisons, cumulatives :

  1. Le non-déterminisme (module F1) : deux exécutions identiques peuvent différer, même à température zéro.
  2. La multiplicité des bonnes réponses : deux formulations différentes peuvent être toutes deux correctes.
  3. La dégradation silencieuse : un système qui se dégrade continue de produire des réponses plausibles. Rien ne plante.

C'est ce troisième point qui rend l'évaluation obligatoire et non optionnelle. Un bug classique fait une exception ; une dégradation de qualité fait des réponses convaincantes et fausses.

2. Le harnais d'évaluation

Eval harness : un jeu de cas, une exécution reproductible, des métriques, et un seuil.

Chargement du schéma…

Le harnais. La boucle de retour depuis le résidu est la partie qui apprend.

Le jeu de cas. 50 à 200 cas suffisent pour commencer, à condition qu'ils viennent du réel : les vraies questions posées par les vrais utilisateurs, y compris les questions mal formulées. Un jeu de cas écrit par l'ingénieur teste ce que l'ingénieur a imaginé.

Ce qui doit être figé pour que la mesure ait un sens : la version du modèle, le prompt, l'index et son contenu, la configuration de récupération. Si tout bouge à chaque exécution, une variation de score n'est plus attribuable.

💡 La règle d'or : ne pas jeter le résidu. Le score agrégé dit combien, le résidu dit quoi. Les cas échoués sont l'information ; la moyenne ne l'est pas. Un candidat qui parle du résidu plutôt que du score se distingue immédiatement.

3. Ce qui se mesure sans juge

C'est le premier réflexe, et un excellent point en entretien : on n'appelle pas un LLM pour mesurer ce qui se calcule.

Ce qu'on mesureCommentJuge nécessaire ?
Le bon passage est dans les k récupérésComparaison d'identifiants
L'outil appelé est le bonComparaison de noms
Les arguments d'appel sont validesValidation de schéma
La sortie respecte le schémaValidation JSON Schema
Une citation existe pour chaque affirmationComptage
Le passage cité soutient l'affirmationJugement sémantique
La réponse est utile à l'utilisateurJugement

🎯 La question d'entretien. « Comment évaluez-vous la justesse d'outil d'un agent ? »De façon déterministe. L'outil appelé est le bon ou non, les arguments sont valides ou non : c'est binaire, ça se compare. Faire juger ça par un LLM, c'est ajouter du coût, de la latence et une source d'erreur pour mesurer ce qu'une égalité de chaînes tranche.

4. Le juge LLM et sa calibration

Quand le jugement est irréductiblement sémantique, on utilise un modèle comme juge. C'est légitime — à condition de traiter le juge comme un instrument de mesure, donc de le calibrer.

Chargement du schéma…

Un juge non calibré produit un chiffre, pas une mesure

Les quatre règles de calibration, à connaître par cœur :

RèglePourquoi
~500 cas avant de se fier à un agrégatEn dessous, l'intervalle de confiance est trop large pour trancher
Kappa de Cohen ≥ 0,6 avec l'annotation humaineSinon, ce n'est pas le juge qui est mauvais : c'est la grille qui est ambiguë
Jamais la même famille de modèle pour générateur et jugeUn modèle est indulgent avec ses propres tournures
Recalibrer dès que le modèle juge, son prompt, ou le système évalué changeLe juge est un instrument : on le réétalonne quand on le déplace

💡 Ce que le kappa mesure vraiment. Le kappa de Cohen mesure l'accord entre deux annotateurs en retranchant l'accord dû au hasard. Un accord brut de 80 % sur une notation binaire n'impressionne pas : le hasard en donne 50. Le kappa corrige ça.

Et le point qui compte : un kappa faible ne se répare pas en changeant de modèle juge. Il signale que deux annotateurs raisonnables ne sont pas d'accord — donc que la grille laisse de la place à l'interprétation. On réécrit la grille.

⚠️ Le distracteur classique. « On prend un modèle plus puissant comme juge » — un modèle plus puissant appliquera plus fidèlement une grille ambiguë, donc reproduira l'ambiguïté avec plus d'assurance. La qualité du juge ne compense jamais la qualité de la grille.

5. Évaluer une trajectoire d'agent

Un agent peut donner la bonne réponse par un mauvais chemin — six appels d'outil là où deux suffisaient, une écriture inutile, un aller-retour coûteux. Évaluer la seule réponse finale rate tout ça.

Chargement du schéma…

La plupart des dimensions d'une trajectoire se mesurent sans juge

Ce qu'on regarde en priorité : les actions irréversibles. Un agent qui envoie un mail, supprime un fichier ou écrit en base ne peut pas être évalué seulement sur son résultat — il faut compter ces actions et vérifier qu'aucune n'était superflue. C'est aussi ce qui relie ce module aux garde-fous du F5.

6. L'histoire à savoir raconter

Une des questions les plus fréquentes en entretien FDE : « Racontez-moi une fois où la mesure a trouvé ce que la relecture du code n'aurait jamais trouvé. »

Voici la structure d'une bonne réponse, illustrée par un cas réel.

Le contexte. Une évaluation de fidélité sur un RAG de notices industrielles : pour chaque ligne produite, le passage cité la soutient-il ?

Le chiffre. Premier passage : 78 % de lignes citées.

Le résidu — c'est là qu'est l'information. Neuf lignes sans citation. Sept d'entre elles étaient des avertissements de sécurité : DANGER, ATTENTION.

La cause racine, assumée. Elle venait de ma propre consigne : j'avais écrit qu'une ligne d'avertissement ne contient rien d'autre que l'énoncé du risque. Le modèle l'a appliquée à la lettre — marqueur de citation compris. Les lignes qui avaient le plus besoin d'une source traçable étaient exactement celles qui n'en avaient pas.

Le correctif et le chiffre d'après. Corrigé dans les trois prompts, on est passé à 100 %.

La leçon générale. Ce défaut était invisible aux tests unitaires, à la revue de code, et à la relecture de la sortie — un avertissement sans citation ressemble exactement à un avertissement avec citation, sauf si on compte.

Pourquoi cette histoire fonctionne, et ce qu'il faut reproduire :

  1. Une métrique nommée et un chiffre
  2. La trouvaille est dans le résidu, pas dans le score
  3. La cause racine est assumée — c'était son propre prompt
  4. Un chiffre d'après
  5. Une leçon générale qui dépasse le cas

🎯 Les relances à préparer. « Pourquoi un test unitaire ne l'a-t-il pas attrapé ? », « Comment savez-vous que le juge lui-même n'avait pas tort ? », et la plus difficile : « Votre score de fidélité a baissé après le correctif. Expliquez. » — la réponse : parce qu'en ajoutant des citations à des lignes qui n'en avaient pas, on soumet ces lignes au contrôle de fidélité, ce qui expose des citations faibles jusque-là invisibles. Un score qui baisse après un correctif peut signaler une mesure devenue plus honnête.

7. Cinq façons d'obtenir un chiffre faux

7.1 Ce qui tourne sur 100 % des sorties

Tout n'a pas le même régime : certains contrôles tournent sur toute la production, d'autres sur un échantillon.

RégimeQuoiPourquoi
100 % des sortiesValidation de schéma, présence de citation, détecteurs de PII, garde-fous déterministesIls ne coûtent presque rien et sont reproductibles
ÉchantillonJugement de fidélité, d'utilité, de tonLe juge coûte une génération par cas

Réserver le juge aux dimensions nuancées, et à un échantillon. Faire juger par un LLM ce qu'une validation de schéma tranche, c'est payer cher pour un résultat moins fiable.

7.2 Le biais de position en comparaison par paires

Si vous comparez deux réponses A et B avec un juge :

Les juges favorisent systématiquement une position, indépendamment du contenu. Il faut donc passer les deux ordres : A-puis-B et B-puis-A.

Si les deux verdicts divergent, le juge mesure l'ordre et non la qualité. Et ce taux de désaccord est lui-même un diagnostic utile : il chiffre l'ampleur du biais.

7.3 Ce à quoi le MRR est aveugle

Symptôme fréquent : MRR élevé, utilisateurs qui se plaignent de réponses incomplètes.

Le MRR récompense le fait de placer un bon passage en tête. Une question exigeant trois passages pour être traitée complètement obtient le même score qu'on en récupère un ou trois.

À coupler avec recall@k, ou avec nDCG quand plusieurs passages comptent. Un seul indicateur de classement ne suffit jamais.

7.4 Juger contre le premier passage cité

Un juge qui note chaque ligne contre le premier passage qu'elle cite produit un chiffre faux — une ligne peut être soutenue par le second passage cité, et sera comptée fausse.

L'erreur est pessimiste, donc facile à laisser passer : un mauvais score ressemble à de la rigueur. Un chiffre faux reste faux même quand il ne flatte personne.

C'est la formulation à retenir : un biais qui va dans le sens de la sévérité n'est pas moins un biais.

7.5 Les questions dérivées du corpus donnent un plafond

Générer les questions d'évaluation depuis le corpus est tentant — et trompeur :

Ces questions sont par construction répondables : leur réponse est dans le corpus. Le score obtenu est donc un plafond, pas une prévision de production.

Le dire soi-même, dans le rapport, est ce qui sépare une mesure d'un chiffre marketing. Les vraies questions viennent des logs et des entretiens terrain.

8. Trois situations de terrain

8.1 « Notre agent marche, on l'a testé »

L'ouverture n'est pas un piège, c'est une vraie question : « ça vaut combien, en chiffres ? »

Puis on explique pourquoi une suite de tests figée ne suffit pas ici (§ 1), et on propose une progression :

  1. Contrôles déterministes sur 100 % du trafic — schéma, citations, garde-fous. Gratuits.
  2. Juge sur échantillon seulement, pour les dimensions nuancées.
  3. Famille de modèle différente du générateur, calibrée sur annotation humaine.
  4. Brancher sur les traces de production pour fermer la boucle.

8.2 Pas de jeu d'éval, pas de budget d'annotation, production le mois prochain

La contrainte est réelle et la réponse ne consiste pas à refuser :

Les contrôles déterministes n'ont besoin d'aucune annotation. Validation de schéma, présence de citation, détection de PII, taux de refus, longueur anormale — ils tournent sur 100 % du trafic dès le premier jour, sans qu'aucun humain n'ait annoté quoi que ce soit.

Pour la vérité terrain : la récolter dans les logs et les tickets plutôt que de l'acheter. Un expert métier qui relit cinquante cas passe bien mieux, en organisation, qu'un projet d'annotation. Et il faut dire ce que valent ces cinquante cas : directionnel, pas statistique.

🎯 La relance : « sans quoi refuseriez-vous la mise en production ? » — c'est là que vous montrez que vous avez une ligne. Une réponse défendable : sans contrôle déterministe sur les sorties et sans possibilité de couper, non.

8.3 Hériter d'un RAG sans aucune évaluation

Mesurer avant de changer quoi que ce soit — sinon vous ne saurez jamais si vous avez amélioré ou dégradé.

Puis, dans l'ordre :

  1. Séparer récupération et génération : les correctifs ne sont pas les mêmes, et confondre les deux fait perdre des semaines.
  2. Vérité terrain au niveau du passage pour la récupération — quel passage aurait dû sortir ?
  3. Fidélité des réponses en seconde couche.
  4. Lire le code pour ses invariants, pas ses fonctionnalités : qu'est-ce qui est supposé toujours vrai, et qu'est-ce qui le garantit ?
  5. Vérifier spécifiquement le comportement sur récupération vide — c'est le cas le plus souvent non traité, et celui qui produit les hallucinations les plus assurées.

9. Glossaire du module

Terme (EN)Terme (FR)Définition
Eval harnessHarnais d'évaluationDispositif reproductible : cas, exécution, métriques, seuil
Golden setJeu de référenceCas annotés servant de vérité terrain
LLM-as-a-judgeJuge LLMUtiliser un modèle pour noter une sortie
RubricGrille de notationCritères explicites appliqués par le juge
Cohen's kappaKappa de CohenAccord entre annotateurs, corrigé du hasard. Seuil usuel ≥ 0,6
CalibrationCalibration, étalonnageVérifier qu'un juge s'accorde avec l'humain avant de s'y fier
FaithfulnessFidélitéLes affirmations sont-elles soutenues par les sources citées ?
Recall@kRappel à kLe bon passage est-il dans les k premiers ?
MRRRang réciproque moyenMoyenne de 1/rang du premier bon résultat
Trajectory evaluationÉvaluation de trajectoireÉvaluer le chemin, pas seulement la réponse
Tool correctnessJustesse d'outilLe bon outil a-t-il été appelé ? Déterministe
RegressionRégressionDégradation d'une métrique entre deux versions
ResidualRésiduLes cas échoués — l'information utile
Position biasBiais de positionLe juge favorise une position ; imposer les deux ordres
nDCGQualité de classement quand plusieurs passages comptent
CeilingPlafondScore maximal atteignable, ex. évals dérivées du corpus

Atelier (75 min)

  1. Sans juge d'abord (20 min) — listez dix choses mesurables dans un RAG et classez-les : déterministe ou juge. Justifiez chaque « juge ».
  2. Calibrer (20 min) — expliquez à voix haute, en anglais, comment vous vérifiez qu'un juge est fiable. Les quatre règles doivent y être.
  3. Votre histoire (35 min) — écrivez votre version de l'histoire du § 6, sur un cas que vous avez vécu. Structure imposée : métrique, chiffre, résidu, cause racine assumée, chiffre d'après, leçon. Puis dites-la à voix haute en 90 secondes, sans notes.

Pour aller plus loin