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 ? »
Objectifs pédagogiques
- Construire un harnais d'évaluation et dire ce qui doit y être déterministe
- Expliquer quand un juge LLM est légitime, et comment on le calibre
- Choisir la métrique adaptée à chaque étage du système
- Évaluer une trajectoire d'agent, pas seulement sa réponse finale
- Raconter un cas où la mesure a trouvé ce que la relecture n'aurait pas trouvé
Plan détaillé
- Pourquoi les tests ordinaires ne suffisent pas
- Le harnais d'évaluation
- Ce qui se mesure sans juge
- Le juge LLM et sa calibration
- Évaluer une trajectoire d'agent
- L'histoire à savoir raconter
- Cinq façons d'obtenir un chiffre faux
- Glossaire du module
1. Pourquoi les tests ordinaires ne suffisent pas
Chargement du schéma…
Trois raisons, cumulatives :
- Le non-déterminisme (module F1) : deux exécutions identiques peuvent différer, même à température zéro.
- La multiplicité des bonnes réponses : deux formulations différentes peuvent être toutes deux correctes.
- 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 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 mesure | Comment | Juge nécessaire ? |
|---|---|---|
| Le bon passage est dans les k récupérés | Comparaison d'identifiants | ❌ |
| L'outil appelé est le bon | Comparaison de noms | ❌ |
| Les arguments d'appel sont valides | Validation de schéma | ❌ |
| La sortie respecte le schéma | Validation JSON Schema | ❌ |
| Une citation existe pour chaque affirmation | Comptage | ❌ |
| Le passage cité soutient l'affirmation | Jugement sémantique | ✅ |
| La réponse est utile à l'utilisateur | Jugement | ✅ |
🎯 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…
Les quatre règles de calibration, à connaître par cœur :
| Règle | Pourquoi |
|---|---|
| ~500 cas avant de se fier à un agrégat | En dessous, l'intervalle de confiance est trop large pour trancher |
| Kappa de Cohen ≥ 0,6 avec l'annotation humaine | Sinon, 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 juge | Un modèle est indulgent avec ses propres tournures |
| Recalibrer dès que le modèle juge, son prompt, ou le système évalué change | Le 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…
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 :
- Une métrique nommée et un chiffre
- La trouvaille est dans le résidu, pas dans le score
- La cause racine est assumée — c'était son propre prompt
- Un chiffre d'après
- 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égime | Quoi | Pourquoi |
|---|---|---|
| 100 % des sorties | Validation de schéma, présence de citation, détecteurs de PII, garde-fous déterministes | Ils ne coûtent presque rien et sont reproductibles |
| Échantillon | Jugement de fidélité, d'utilité, de ton | Le 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 :
- Contrôles déterministes sur 100 % du trafic — schéma, citations, garde-fous. Gratuits.
- Juge sur échantillon seulement, pour les dimensions nuancées.
- Famille de modèle différente du générateur, calibrée sur annotation humaine.
- 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 :
- 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.
- Vérité terrain au niveau du passage pour la récupération — quel passage aurait dû sortir ?
- Fidélité des réponses en seconde couche.
- 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 ?
- 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 harness | Harnais d'évaluation | Dispositif reproductible : cas, exécution, métriques, seuil |
| Golden set | Jeu de référence | Cas annotés servant de vérité terrain |
| LLM-as-a-judge | Juge LLM | Utiliser un modèle pour noter une sortie |
| Rubric | Grille de notation | Critères explicites appliqués par le juge |
| Cohen's kappa | Kappa de Cohen | Accord entre annotateurs, corrigé du hasard. Seuil usuel ≥ 0,6 |
| Calibration | Calibration, étalonnage | Vérifier qu'un juge s'accorde avec l'humain avant de s'y fier |
| Faithfulness | Fidélité | Les affirmations sont-elles soutenues par les sources citées ? |
| Recall@k | Rappel à k | Le bon passage est-il dans les k premiers ? |
| MRR | Rang réciproque moyen | Moyenne de 1/rang du premier bon résultat |
| Trajectory evaluation | Évaluation de trajectoire | Évaluer le chemin, pas seulement la réponse |
| Tool correctness | Justesse d'outil | Le bon outil a-t-il été appelé ? Déterministe |
| Regression | Régression | Dégradation d'une métrique entre deux versions |
| Residual | Résidu | Les cas échoués — l'information utile |
| Position bias | Biais de position | Le juge favorise une position ; imposer les deux ordres |
| nDCG | — | Qualité de classement quand plusieurs passages comptent |
| Ceiling | Plafond | Score maximal atteignable, ex. évals dérivées du corpus |
Atelier (75 min)
- Sans juge d'abord (20 min) — listez dix choses mesurables dans un RAG et classez-les : déterministe ou juge. Justifiez chaque « juge ».
- Calibrer (20 min) — expliquez à voix haute, en anglais, comment vous vérifiez qu'un juge est fiable. Les quatre règles doivent y être.
- 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
- 🎯 Parcours : F3 — Agents & MCP ← → F5 — Sûreté & garde-fous
- 📚 Approfondissement : M3 — Hallucination mitigation et eval LLM
- 🛠 Entraînement : thème
evaluationde la banquefransys-fde— 12 QCM