LYCÉE → PRÉPA · L32

Module L32 · Partie K · Ingénierie de l’IA

Métriques : tout ce qu’il faut pour critiquer un modèle, un RAG, un prompt, un agent.

Un système d’IA ne vaut que ce que sa mesure permet d’affirmer. Ce chapitre — le plus long de la partie — donne toutes les métriques qu’un ingénieur ou un chercheur doit savoir calculer, interpréter et contester : classification, régression, classement et recherche, génération de texte, LLM et benchmarks, RAG, prompts, agents, OCR/ASR/vision, calibration et incertitude, robustesse, équité, efficacité et coût, évaluation humaine et par LLM-juge — et la statistique qui rend une comparaison valide. Chaque métrique est implémentée, avec ses théorèmes, ses pièges et les articles.

Durée : 6 séances · Prérequis : L11, L13, L24, L26–L31. Objectifs : calculer et interpréter ≈ 40 métriques ; démontrer les propriétés clés (AUC = probabilité de bon ordre, décomposition du Brier, estimateur pass@k) ; construire un protocole d’évaluation complet avec intervalles de confiance et tests ; détecter les fuites, la contamination et le Goodhart ; lire un classement public avec scepticisme.

Ce que vous saurez faire à la fin
  • Choisir la métrique qui correspond au coût métier et la justifier.
  • Produire un rapport d’évaluation : métriques, IC bootstrap, tests appariés, analyse d’erreurs par segment.
  • Évaluer un RAG et un agent bout en bout, composant par composant.
  • Calibrer et valider un LLM-juge contre des humains (kappa, accord, biais).

Plan

Carte du chapitre

PartieContenuMétriques
01 ClassificationMatrice de confusion, seuils, courbesExactitude, précision, rappel, Fβ, micro/macro, MCC, log-loss, ROC-AUC, PR-AUC/AP, top-k
02 Calibration et incertitudeProbabilités fiablesBrier et sa décomposition, ECE, diagramme de fiabilité, NLL, intervalles de prédiction, couverture conforme
03 Régression et sériesErreurs et échellesMAE, RMSE, MAPE, sMAPE, R², quantiles/pinball, MASE
04 Classement et rechercheRAG, recommandationP@k, R@k, MRR, MAP, nDCG, hit rate ; précision/rappel de contexte
05 Génération de texteTraduction, résumé, LLMPerplexité, BLEU, chrF, ROUGE, METEOR, BERTScore, exact match, F1 token, pass@k
06 LLM et benchmarksClassements et piègesMMLU, GSM8K, HumanEval, MT-Bench, Arena/Elo, contamination, variance de prompt
07 RAG, prompts, agentsSystèmes composésFidélité, pertinence, citations, refus ; taux de réussite de tâche, pas, coût, sécurité
08 PerceptionOCR, ASR, visionCER/WER, IoU, mAP, DER, PSNR/SSIM/FID
09 Robustesse et équitéHors distribution, biaisÉcart OOD, robustesse adverse, parité démographique, égalité des chances, calibration par groupe
10 Efficacité et coûtProductionLatence p50/p95, débit, coût par requête, énergie, empreinte mémoire
11 Évaluation humaine et LLM-jugeJugementsKappa, alpha de Krippendorff, Bradley-Terry/Elo, biais du juge
12 StatistiqueConclureBootstrap, tests appariés, McNemar, corrections multiples, taille d’effet, puissance

Fiche de cours · Définitions

Définitions transversales

Définition (métrique, fonction de perte, objectif métier). La perte est ce que l’optimiseur minimise (différentiable) ; la métrique est ce qu’on rapporte (souvent non différentiable : exactitude, F1) ; l’objectif métier est ce qui compte vraiment (coût des erreurs, revenu, sécurité). Les trois diffèrent ; l’évaluation consiste à relier la métrique à l’objectif métier.
Définition (jeu de test, fuite, contamination). Jeu de test : données jamais vues pendant l’entraînement ni la sélection de modèle. Fuite : information du test qui atteint l’entraînement (doublons, prétraitement global, sélection sur le test). Contamination : données de benchmark présentes dans le corpus de pré-entraînement d’un LLM.
Définition (métrique propre — proper scoring rule). Une règle de score S(p, y) est propre si l’espérance Ey∼q[S(p, y)] est maximale (ou minimale pour une perte) en p = q : elle incite à annoncer ses vraies probabilités. Log-loss et Brier sont propres ; l’exactitude ne l’est pas (elle ignore la confiance).
Définition (Goodhart). « Quand une mesure devient un objectif, elle cesse d’être une bonne mesure » : optimiser une métrique proxy (longueur de réponse, BLEU, score d’un juge) produit des solutions qui la satisfont sans satisfaire l’objectif (reward hacking, L27).
Définition (segment, tranche). Sous-population du jeu de test (par condition, groupe, difficulté). Une métrique globale cache les tranches ; l’évaluation par tranche révèle où le système échoue.
Définition (évaluation intrinsèque, extrinsèque). Intrinsèque : la sortie contre une référence (BLEU, WER). Extrinsèque : l’effet sur la tâche aval (temps de post-édition d’une traduction, taux de commandes exécutées). L’extrinsèque est la vérité, l’intrinsèque un proxy.

Fiche de cours · Formules

Formulaire général (1/2) : classification, calibration, régression

Matrice de confusion (binaire) : VP, FP, FN, VN ; exactitude = (VP+VN)/n ; précision P = VP/(VP+FP) ; rappel R = VP/(VP+FN) ; spécificité = VN/(VN+FP) ; Fβ = (1+β²)PR/(β²P + R) ; F1 = 2PR/(P+R)
MCC = (VP·VN − FP·FN)/√((VP+FP)(VP+FN)(VN+FP)(VN+FN)) ∈ [−1, 1] — équilibré même sous déséquilibre de classes
Multi-classes : macro-F1 = moyenne des F1 par classe (chaque classe compte autant) ; micro-F1 = F1 sur les comptes agrégés (= exactitude en mono-étiquette) ; pondérée = par support
Log-loss = −(1/n)Σ log p(yi) ; Brier = (1/n)Σ (pi − yi)² ; ECE = Σbins (nb/n)·|exactitudeb − confianceb|
ROC : TPR(t) = R(t) vs FPR(t) = FP/(FP+VN) quand le seuil t varie ; AUC = P(score(positif) > score(négatif)) ; PR-AUC / AP = Σk (Rk − Rk−1)Pk
Décomposition du Brier : Brier = fiabilité (calibration) − résolution + incertitude, avec incertitude = ȳ(1 − ȳ)
MAE = (1/n)Σ|ei| ; RMSE = √((1/n)Σ ei²) ≥ MAE ; MAPE = (100/n)Σ|ei/yi| ; sMAPE = (200/n)Σ|ei|/(|yi|+|ŷi|) ; R² = 1 − Σei²/Σ(yi − ȳ)²
Perte pinball (quantile τ) : ℓτ(e) = τ·e si e ≥ 0, (τ − 1)·e sinon ; MASE = MAE / MAE de la prévision naïve (saisonnière)
Couverture conforme : avec un score de non-conformité s et le quantile q̂ des scores de calibration au niveau ⌈(n+1)(1−α)⌉/n, l’ensemble {y : s(x, y) ≤ q̂} contient y avec probabilité ≥ 1 − α

Fiche de cours · Formules

Formulaire général (2/2) : classement, texte, LLM, systèmes, statistique

P@k = |pertinents ∩ top-k|/k ; R@k = |pertinents ∩ top-k|/|pertinents| ; MRR = moyenne de 1/rang du premier pertinent ; AP = moyenne des P@k aux rangs pertinents ; MAP = moyenne des AP ; nDCG@k = DCG@k/IDCG@k, DCG = Σ (2reli − 1)/log₂(i+1)
BLEU = BP · exp(Σn=14 ¼ log pn), pn = précision modifiée des n-grammes (comptes plafonnés par la référence), BP = min(1, e1 − r/c)
ROUGE-N = rappel des n-grammes ; ROUGE-L = LCS ; chrF = Fβ sur les n-grammes de caractères (β = 2) ; BERTScore = F1 des similarités cosinus token à token (plongements contextuels)
pass@k = Eproblèmes[1 − C(n − c, k)/C(n, k)] (n échantillons, c corrects) — estimateur sans biais de Chen et al. 2021
Exact match, F1 token (QA extractive) ; perplexité = e−(1/N)Σ log p (L27)
Elo : EA = 1/(1 + 10(RB − RA)/400), RA ← RA + K(SA − EA) ; Bradley-Terry : P(A ≻ B) = σ(rA − rB) ajusté par vraisemblance (L27)
Kappa de Cohen κ = (po − pe)/(1 − pe) ; alpha de Krippendorff (multi-annotateurs, données manquantes) ; corrélation de Spearman ρ entre juge et humains
IoU = |A ∩ B|/|A ∪ B| ; mAP@[.5:.95] = moyenne des AP par classe et par seuil d’IoU ; DER = (faux + manqué + confusion)/durée
Parité démographique : P(ŷ = 1 | g) égal entre groupes ; égalité des chances : TPR égal ; odds égalisés : TPR et FPR égaux ; calibration par groupe : P(y = 1 | p̂, g) = p̂
Bootstrap : B rééchantillonnages avec remise du jeu de test → distribution de la métrique → IC percentile [2,5 %, 97,5 %] ; apparié : rééchantillonner les mêmes exemples pour A et B et regarder la différence
McNemar (deux classifieurs, même test) : χ² = (b − c)²/(b + c), b et c = désaccords ; corrections multiples : Bonferroni α/m, Holm, Benjamini-Hochberg

Fiche de cours · Théorèmes et démonstrations

Démonstrations à savoir refaire (1/2)

Théorème 1 (AUC = probabilité de bon ordonnancement). L’aire sous la courbe ROC égale P(s(X⁺) > s(X⁻)) pour un positif et un négatif tirés au hasard (avec ½ pour les égalités) — c’est la statistique U de Mann-Whitney normalisée.
Paramétrons la ROC par le seuil t : FPR(t) = P(s(X⁻) > t), TPR(t) = P(s(X⁺) > t). AUC = ∫ TPR d(FPR). Avec F⁻ la fonction de répartition des scores négatifs, FPR = 1 − F⁻(t), d(FPR) = −f⁻(t)dt ; AUC = ∫ P(s(X⁺) > t) f⁻(t) dt = Et∼s(X⁻)[P(s(X⁺) > t)] = P(s(X⁺) > s(X⁻)) par indépendance. Conséquences : l’AUC est invariante par toute transformation croissante des scores (elle ne juge que l’ordre) ; 0,5 = hasard ; elle ne dépend pas de la prévalence — ce qui est une force (comparer des jeux) et une faiblesse (sur des classes très déséquilibrées, une AUC de 0,95 peut cacher une précision de 5 % : regarder la courbe précision-rappel).
Théorème 2 (décomposition du score de Brier). En regroupant les prédictions par valeur de probabilité annoncée pb (bins) avec fréquences observées ob et effectifs nb : Brier = Σb (nb/n)(pb − ob)² − Σb (nb/n)(ob − ȳ)² + ȳ(1 − ȳ) = fiabilité − résolution + incertitude.
Dans le bin b, Σi∈b (pb − yi)² = nb(pb − ob)² + Σi∈b(ob − yi)² (développer autour de la moyenne ob ; le terme croisé s’annule car Σi∈b(yi − ob) = 0) ; et Σi∈b(ob − yi)² = nbob(1 − ob) pour des y binaires. Sommer sur b et diviser par n donne fiabilité + Σ(nb/n)ob(1 − ob). Enfin, la décomposition de la variance de y (L11) : ȳ(1 − ȳ) = Σ(nb/n)ob(1 − ob) + Σ(nb/n)(ob − ȳ)², d’où le résultat. Lecture : un bon modèle a une fiabilité nulle (calibré) et une résolution élevée (ses probabilités séparent les cas) ; l’incertitude est irréductible. Un modèle constant p = ȳ est parfaitement calibré et inutile (résolution 0).
Théorème 3 (le log-loss et le Brier sont des règles de score propres ; l’exactitude ne l’est pas).
Soit q la vraie probabilité de y = 1 et p l’annonce. Log-loss attendu : −[q log p + (1 − q) log(1 − p)] ; dérivée en p : −q/p + (1 − q)/(1 − p) = 0 ⇔ p = q, et la fonction est convexe : minimum unique en p = q. Brier attendu : q(1 − p)² + (1 − q)p² ; dérivée −2q(1 − p) + 2(1 − q)p = 0 ⇔ p = q. Exactitude au seuil ½ : annoncer p = 1 dès que q > ½ donne la même exactitude que p = q ; elle n’incite pas à révéler q — d’où les modèles sur-confiants sélectionnés sur l’exactitude.

Fiche de cours · Théorèmes et démonstrations

Démonstrations à savoir refaire (2/2)

Théorème 4 (pass@k : estimateur sans biais). Si un modèle produit n échantillons dont c sont corrects pour un problème, alors 1 − C(n − c, k)/C(n, k) est un estimateur sans biais de la probabilité qu’au moins un parmi k échantillons (tirés sans remise parmi les n) soit correct — et estime pass@k mieux que 1 − (1 − c/n)k.
Tirer k parmi les n sans remise : le nombre de sous-ensembles ne contenant aucun correct est C(n − c, k) sur C(n, k) au total ; la probabilité qu’au moins un soit correct est donc exactement 1 − C(n − c, k)/C(n, k), pour ce problème. En moyennant sur les problèmes, on estime pass@k. L’estimateur naïf 1 − (1 − p̂)k avec p̂ = c/n est biaisé (fonction non linéaire d’une estimation) et surestime pour les petits n. Calcul numérique stable : Πi=n−c+1n (1 − k/i) pour le quotient (Chen et al. 2021, Codex).
Théorème 5 (F1 est une moyenne harmonique ; conséquence). F1 = 2PR/(P + R) ≤ min(P, R)·2/(1 + min/max) ≤ √(PR) ≤ (P + R)/2 : elle est dominée par la plus petite des deux ; F1 = 0 dès que P = 0 ou R = 0.
Inégalité des moyennes harmonique ≤ géométrique ≤ arithmétique (pour deux nombres positifs : 2PR/(P+R) ≤ √(PR) ⇔ 4PR ≤ (P+R)² ⇔ 0 ≤ (P−R)²). Si P = 0,99 et R = 0,10 : F1 = 0,18 — la moyenne arithmétique (0,55) aurait masqué l’échec. C’est pourquoi F1 sert pour les classes rares : un modèle qui ne prédit jamais la classe rare a R = 0 et F1 = 0 malgré 99 % d’exactitude. Fβ pondère : β > 1 privilégie le rappel (obstacles), β < 1 la précision (spam).
Théorème 6 (BLEU sans pénalité de brièveté est trivialement maximisable). Sans BP, une hypothèse réduite à un seul n-gramme présent dans la référence obtient pn = 1 pour tout n ≤ sa longueur.
Les précisions modifiées comptent les n-grammes de l’hypothèse présents dans la référence, divisés par le nombre de n-grammes de l’hypothèse ; une hypothèse de 4 mots copiés de la référence a p₁ = p₂ = p₃ = p₄ = 1. La pénalité BP = e1 − r/c (r longueur de référence, c de l’hypothèse) punit c < r exponentiellement. Plus généralement, BLEU récompense la coïncidence lexicale, pas le sens : deux traductions correctes avec des mots différents ont un BLEU faible entre elles ; un BLEU de 40 n’a de sens que sur le même jeu, avec la même tokenisation (sacreBLEU). D’où chrF (caractères, robuste à la morphologie), BERTScore et COMET (appris sur des jugements humains) — et l’évaluation humaine comme référence.
Théorème 7 (kappa corrige l’accord dû au hasard). Si deux annotateurs répondent indépendamment au hasard avec des marginales fixées, leur accord observé po vaut en moyenne pe = Σc P₁(c)P₂(c), et κ = 0 ; κ = 1 pour un accord parfait.
Indépendance : P(les deux choisissent c) = P₁(c)P₂(c) ; sommer sur les classes donne l’accord attendu pe. κ = (po − pe)/(1 − pe) normalise l’excès d’accord par le maximum possible. Avec une classe à 95 %, deux annotateurs aléatoires s’accordent 90,5 % du temps : un « accord de 92 % » n’est que κ ≈ 0,16. Repères : κ < 0,4 faible, 0,4–0,6 modéré, 0,6–0,8 substantiel, > 0,8 presque parfait. Un LLM-juge se valide de la même façon : κ (ou ρ de Spearman) contre des annotateurs humains, sur un échantillon représentatif, par tranche.

01 / Classification

Matrice de confusion, seuils, ROC et précision-rappel : tout implémenté

Choisir le seuil par le coût métier : minimiser CFN·FN(t) + CFP·FP(t). Si rater un obstacle coûte 100× une fausse alerte, le seuil optimal est bas (rappel élevé), et F2 ou le rappel à précision fixée sont les métriques à suivre — pas l’exactitude, ni même F1.

01 / Classification

Multi-classes : micro, macro, pondéré, top-k, et lecture d’une matrice

02 / Calibration et incertitude

Brier, ECE, diagramme de fiabilité, température, et prédiction conforme

03 / Régression et séries

MAE, RMSE, MAPE, R², pinball, MASE : ce que chacune récompense

Sur des séries temporelles : jamais de séparation aléatoire (fuite du futur), toujours une validation glissante (entraîner jusqu’à t, tester sur t+1..t+h, avancer), et toujours la baseline naïve (MASE) — beaucoup de modèles publiés ne la battent pas (Makridakis, M4).

04 / Classement et recherche

P@k, R@k, MRR, MAP, nDCG — et les métriques de contexte pour le RAG

05 / Génération de texte

BLEU, chrF, ROUGE, exact match/F1, pass@k — implémentés, avec leurs pathologies

06 / LLM et benchmarks

Lire un classement : ce que mesurent MMLU, GSM8K, HumanEval, MT-Bench, l’Arena — et ce qui les fausse

BenchmarkMesureFormat / métriquePièges connus
MMLU (57 matières)Connaissances académiquesQCM 4 choix, exactitude, 5-shotSensible au format des choix (A/B/C/D vs texte), contamination, erreurs dans les questions (~6 %) ; saturé (MMLU-Pro)
GSM8K / MATHRaisonnement arithmétique / mathématiqueRéponse finale, exactitude, CoTContamination massive (versions reformulées GSM1k montrent des baisses de 10 points) ; extraction de la réponse fragile
HumanEval / MBPPGénération de codepass@k sur tests unitaires164 problèmes seulement ; tests incomplets ; contamination ; EvalPlus ajoute des tests
HellaSwag, ARC, WinoGrandeSens communQCM, log-vraisemblance des choixArtefacts d’annotation exploitables sans lire la question
MT-Bench, AlpacaEvalQualité conversationnelleLLM-juge (GPT-4) note ou compareBiais de longueur, biais de position, auto-préférence du juge ; AlpacaEval 2 corrige la longueur
Chatbot ArenaPréférence humaine en aveugleComparaisons par paires → Elo/Bradley-TerryPopulation d’utilisateurs non représentative ; prompts courts ; style récompensé ; possibilité de manipulation
BIG-bench, HELMLarge couverture, multi-métriquesNombreuses tâches, exactitude + calibration + robustesse + équité + efficacitéCoût ; agrégation discutable
SWE-bench, GAIA, WebArenaAgents (code, web, outils)Taux de résolution de tâches réellesCoût ; variance élevée ; fuite de solutions sur GitHub

07 / RAG, prompts, agents

Évaluer un système composé : par composant, puis bout en bout

ComposantMétriquesCommentRéférence
Découpage + index (RAG)R@k, nDCG, précision de contexteJeu de questions → morceaux pertinents annotésL26
Génération (RAG)Fidélité, pertinence réponse, exactitude, citations valides, refus correctsJuge (humain/LLM) par affirmation ; vérification syntaxique des citationsRAGAS, ARES
PromptExactitude, format valide, dispersion inter-formulations, coût/tokensBanc d’essai versionné, grainesL28
Agent (outils, multi-étapes)Taux de réussite de tâche, pas moyens, coût, taux de boucles/abandons, actions dangereuses, robustesse aux erreurs d’outilsEnvironnements reproductibles (bac à sable), tâches avec vérificateur automatiqueSWE-bench, GAIA, τ-bench
SécuritéTaux de compromission (injection), taux de refus légitime/illégitime (sur-refus), fuite de donnéesCorpus adverses, red teamingOWASP LLM Top 10, HarmBench
Expérience utilisateurSatisfaction (CSAT), taux d’escalade vers un humain, temps de résolution, taux de reformulationTélémétrie en production, A/BL35

08 / Perception

OCR, ASR, vision : CER/WER, IoU, mAP, DER, et métriques d’image

OCR : CER/WER par Levenshtein, exactitude par champ, taux de documents parfaits (L29). ASR : WER normalisé, par condition, sur entités, RTF (L30). Segmentation : IoU par classe, mIoU, Dice = 2|A∩B|/(|A|+|B|). Estimation de pose : ATE/RPE (L20). Toutes ont besoin d’une vérité terrain dont le coût d’annotation est le premier poste du projet (L36).

09 / Robustesse et équité

Hors distribution, perturbations, et métriques d’équité — avec leur incompatibilité

Robustesse adverse : mesurer la baisse sous perturbations optimisées (PGD pour la vision, suffixes adverses pour les LLM) ; c’est une borne pessimiste utile pour la sécurité. Hors distribution : rapporter aussi la détection d’OOD (le modèle sait-il qu’il ne sait pas ? AUROC de la confiance entre in/out).

10 / Efficacité et coût

Latence, débit, coût, énergie : les métriques que la production impose

11 / Humains et LLM-juge

Accord inter-annotateurs, Bradley-Terry, et validation d’un LLM-juge

12 / Statistique

Conclure : bootstrap, tests appariés, McNemar, comparaisons multiples

Le protocole minimal d’une comparaison : même jeu de test, appariement, ≥ 3 graines quand le système est stochastique, IC bootstrap de la différence, test apparié, taille d’effet, hypothèse déclarée avant, et analyse d’erreurs qualitative sur 50 cas. Sans cela, un tableau de chiffres n’est pas un résultat (L24).

Synthèse

Quelle métrique pour quel problème : la table de décision

SituationMétrique principaleMétriques de contrôleNe pas utiliser seule
Classification équilibréeExactitude, log-lossMatrice de confusion, calibration
Classe rare, coût asymétriqueRappel à précision fixée, Fβ, PR-AUCMCC, coût totalExactitude, ROC-AUC
Décisions probabilistes (seuils, fusion)Brier, ECE, log-lossDiagramme de fiabilité par trancheExactitude
Régression avec valeurs aberrantesMAE, médianeRMSE, quantilesMAPE, R² seul
Prévision de sériesMASE, pinballValidation glissanteSéparation aléatoire
Recherche / RAGR@k, nDCG ; fidélitéPrécision de contexte, MRR, latenceScore du LLM seul
Traduction / résuméHumain, COMET/BERTScorechrF, BLEU (comparabilité)BLEU/ROUGE seul
Codepass@k avec tests étendusTemps, sécuritéSimilarité textuelle
Assistant conversationnelRéussite de tâche, préférence humaineLLM-juge validé, sur-refus, latenceMT-Bench seul
AgentTaux de réussite (pass^k), coûtPas, boucles, actions dangereusesUne graine
Détection / segmentationmAP@[.5:.95], mIoUPar classe, par taille d’objetExactitude par pixel
OCR / ASRCER/WER normalisés + par champ/entitéPar condition, RTFMoyenne globale
Tout système déployéMétrique métier (extrinsèque)Tranches, robustesse, équité, coût, p95Un benchmark public

Articles

Les articles à lire

ArticleContributionÀ retenir
Hanley & McNeil, The meaning and use of the area under a ROC curve, Radiology 1982AUC = Mann-WhitneyThéorème 1
Saito & Rehmsmeier, The Precision-Recall Plot Is More Informative than the ROC Plot on Imbalanced Datasets, PLoS ONE 2015PR vs ROC sous déséquilibreChoisir la courbe selon la prévalence
Guo et al., On Calibration of Modern Neural Networks, ICML 2017 — 1706.04599Les réseaux profonds sont sur-confiants ; températureECE, diagrammes de fiabilité
Angelopoulos & Bates, A Gentle Introduction to Conformal Prediction, 2021 — 2107.07511Garanties de couverture sans hypothèseEnsembles de prédiction pour la sécurité
Papineni et al., BLEU, ACL 2002 ; Post, A Call for Clarity in Reporting BLEU Scores (sacreBLEU), 2018 — 1804.08771Métrique lexicale ; standardisationThéorème 6 ; toujours sacreBLEU
Zhang et al., BERTScore, ICLR 2020 — 1904.09675 ; Rei et al., COMET, 2020Métriques sémantiques / apprisesCorrélation humaine bien supérieure à BLEU
Chen et al., Evaluating LLMs Trained on Code (Codex), 2021 — 2107.03374HumanEval, pass@k sans biaisThéorème 4
Liang et al., Holistic Evaluation of Language Models (HELM), 2022 — 2211.09110Multi-métriques : exactitude, calibration, robustesse, équité, biais, toxicité, efficacitéUn modèle n’a pas « un » score
Zheng et al., Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena, NeurIPS 2023 — 2306.05685LLM-juge : accord ~80 % avec les humains ; biais de position, de longueur, d’auto-préférenceValider le juge, contrôler les biais
Zhang et al., A Careful Examination of LLM Performance on Grade School Arithmetic (GSM1k), 2024 — 2405.00332Contamination mesurée par un jeu reformulé privéÉcarts jusqu’à 13 points
Sclar et al. 2023 (L28) ; Alzahrani et al., When Benchmarks are Targets, 2024 — 2402.01781Sensibilité des classements au formatUn point d’écart n’est pas un résultat
Chouldechova, Fair prediction with disparate impact, 2017 — 1610.07524 ; Kleinberg et al., 2016 — 1609.05807Impossibilité de satisfaire toutes les définitions d’équitéChoisir et documenter
Dror et al., The Hitchhiker’s Guide to Testing Statistical Significance in NLP, ACL 2018Tests appariés, bootstrap, correctionsLe protocole de la partie 12
Bowman & Dahl, What Will it Take to Fix Benchmarking in NLU?, 2021 — 2104.02145Validité, fiabilité, saturation des benchmarksConstruire des jeux privés et évolutifs

TP guidé

TP — Le rapport d’évaluation complet (6 h)

Exercices

Exercices auto-corrigés (1/2)

Exercice 1 — ROC-AUC par Mann-Whitney et invariance

Implémentez auc_mw(y, s) via la statistique U (rangs, avec ½ pour les égalités) et vérifiez le Théorème 1 : égalité avec l’aire trapézoïdale, invariance par transformation croissante, valeur ½ pour des scores aléatoires.

Correction
def auc_mw(y, s):
    y, s = np.asarray(y), np.asarray(s); o = np.argsort(s, kind="mergesort"); r = np.empty(len(s)); r[o] = np.arange(1, len(s) + 1)
    # rangs moyens pour les égalités
    vals, inv, counts = np.unique(s, return_inverse=True, return_counts=True); somme = np.zeros(len(vals)); np.add.at(somme, inv, r); r = (somme / counts)[inv]
    n1, n0 = y.sum(), len(y) - y.sum(); return (r[y == 1].sum() - n1 * (n1 + 1) / 2) / (n1 * n0)

Exercice 2 — ECE et une variante moins fragile

Implémentez ece(p, y, bins) (bins de largeur égale) et ece_adaptatif(p, y, bins) (bins de même effectif, par quantiles). Vérifiez : un modèle parfaitement calibré a une ECE ≈ 0 ; ECE dépend du nombre de bins ; la version adaptative est plus stable quand les probabilités sont concentrées.

Correction
def ece(p, y, bins=10):
    edges = np.linspace(0, 1, bins + 1); e = 0.0
    for a, b in zip(edges, edges[1:]):
        m = (p > a) & (p <= b) if a > 0 else (p >= a) & (p <= b)
        if m.any(): e += m.mean() * abs(y[m].mean() - p[m].mean())
    return e
def ece_adaptatif(p, y, bins=10):
    o = np.argsort(p); e = 0.0
    for idx in np.array_split(o, bins): e += len(idx) / len(p) * abs(y[idx].mean() - p[idx].mean())
    return e

Exercices

Exercices auto-corrigés (2/2)

Exercice 3 — Bootstrap apparié et décision

Écrivez ic_difference(ok_A, ok_B, B=2000, rng=None) renvoyant (écart moyen, borne basse, borne haute) par bootstrap apparié percentile, et decision(ic, seuil_min) renvoyant "adopter" si la borne basse dépasse seuil_min, "rejeter" si la borne haute est < 0, "indécis" sinon.

Correction
def ic_difference(ok_A, ok_B, B=2000, rng=None):
    rng = rng or np.random.default_rng(0); a, b = np.asarray(ok_A, float), np.asarray(ok_B, float); n = len(a)
    idx = rng.integers(n, size=(B, n)); d = b[idx].mean(1) - a[idx].mean(1)
    return float(b.mean() - a.mean()), float(np.percentile(d, 2.5)), float(np.percentile(d, 97.5))
def decision(ic, seuil_min=0.0):
    m, lo, hi = ic
    if lo > seuil_min: return "adopter"
    if hi < 0: return "rejeter"
    return "indécis"

Exercice 4 — Elo et Bradley-Terry sur des comparaisons

Implémentez elo(comparaisons, K=32) (séquentiel, départ 1000) et bradley_terry(comparaisons, n, iters) (gradient sur la log-vraisemblance, forces centrées). Vérifiez que les deux retrouvent l’ordre vrai sur 2 000 comparaisons simulées, et que BT est indépendant de l’ordre des comparaisons alors qu’Elo ne l’est pas.

Correction
def elo(comparaisons, n, K=32):
    R = np.full(n, 1000.0)
    for i, j, w in comparaisons:
        Ei = 1 / (1 + 10 ** ((R[j] - R[i]) / 400)); Si = 1.0 if w == i else 0.0
        R[i] += K * (Si - Ei); R[j] += K * ((1 - Si) - (1 - Ei))
    return R
def bradley_terry(comparaisons, n, iters=300, lr=2.0):
    r = np.zeros(n); I = np.array([c[0] for c in comparaisons]); J = np.array([c[1] for c in comparaisons]); W = np.array([1.0 if c[2] == c[0] else 0.0 for c in comparaisons])
    for _ in range(iters):
        p = 1 / (1 + np.exp(-(r[I] - r[J]))); g = np.zeros(n); np.add.at(g, I, W - p); np.add.at(g, J, -(W - p))
        r += lr * g / len(comparaisons); r -= r.mean()             # gradient MOYEN de la log-vraisemblance : stable quel que soit le nombre de comparaisons
    return r

Fiche de cours · Exercices corrigés

Exercices corrigés (rédaction)

Exercice 1. Un modèle de détection de fraude annonce : exactitude 99,2 %, ROC-AUC 0,97. Le métier dit qu’il « ne sert à rien ». Que s’est-il passé ? Quelles métriques auraient dû être rapportées ?
Correction. Prévalence probable ≈ 0,5 % : prédire « pas de fraude » donne déjà 99,5 % d’exactitude — le modèle fait moins bien que le trivial. Une ROC-AUC de 0,97 signifie qu’un fraudeur a un score supérieur à un honnête dans 97 % des paires ; mais avec 200 honnêtes pour 1 fraudeur, un FPR de 5 % produit 10 fausses alertes par vraie fraude : précision ≈ 9 % au point de fonctionnement. Rapporter : la courbe précision-rappel et l’AP (baseline = prévalence 0,005), la précision au rappel exigé (ou le rappel à la précision que les analystes peuvent traiter : 100 alertes/jour), le coût total (fraudes ratées × montant + alertes × coût de traitement), par segment (montants, canaux), et la calibration si les scores servent à prioriser.
Exercice 2. Deux systèmes de traduction : A obtient BLEU 34,1, B 33,2 sur le même jeu. Le client préfère B dans 70 % des cas en aveugle. Expliquer, et dire ce qu’il faut faire.
Correction. BLEU mesure le recouvrement de n-grammes avec une référence unique (Théorème 6) : A est peut-être plus « littéral », B plus fluide et reformulé — pénalisé par BLEU, préféré par les humains. Un écart de 0,9 BLEU n’est de toute façon pas significatif sans bootstrap apparié sur les phrases (IC typique ± 1). À faire : (1) juger 300 phrases par 2 traducteurs (kappa), avec critères (adéquation, fluidité), (2) métriques apprises corrélées aux humains (COMET, BERTScore) et chrF, (3) analyse d’erreurs par type (omissions, contresens — graves ; style — mineur), (4) métrique extrinsèque : temps de post-édition. Le BLEU reste utile en suivi de régression du même système, pas pour départager deux systèmes proches.
Exercice 3. Concevoir l’évaluation d’un assistant RAG interne avant déploiement : lister les jeux de données, les métriques, les seuils, et les décisions associées.
Correction. Jeux : 300 questions représentatives (logs anonymisés + rédaction) annotées avec passages pertinents et réponse de référence ; 60 questions hors périmètre (refus attendu) ; 40 cas adverses (injection, données sensibles) ; 100 questions d’un domaine voisin (robustesse). Recherche : R@5 ≥ 0,85, nDCG@5 rapporté, latence p95 < 300 ms. Génération : fidélité ≥ 0,9 (LLM-juge validé sur 100 cas humains, κ ≥ 0,6), exactitude ≥ 0,75 (IC bootstrap), citations valides ≥ 0,95, refus corrects ≥ 0,9 avec sur-refus ≤ 0,05 sur les questions légitimes. Sécurité : 0 fuite, taux de compromission ≤ 2 % sur les cas adverses. Coût/latence : p95 < 6 s, coût/requête ≤ budget. Décision : déployer en bêta si tous les seuils sont atteints ; sinon, le composant en défaut (Théorème 3 de L26 pour arbitrer recherche vs génération) ; en production, suivre les mêmes métriques sur un échantillon hebdomadaire jugé par humains + télémétrie (escalades, reformulations), et re-tester à chaque changement de modèle, de prompt ou de corpus (L35).

Vérification

Détection d’un événement rare (0,5 %) : ROC-AUC 0,96. Peut-on conclure que le détecteur est utilisable ?

Deux questions supplémentaires

1. Pourquoi le log-loss est-il une règle de score propre et pas l’exactitude ? Son espérance est minimale quand on annonce la vraie probabilité (Théorème 3) ; l’exactitude ne distingue pas 0,51 de 0,99.

2. Pourquoi apparier les rééchantillonnages bootstrap quand on compare deux systèmes ? Les cas sont partagés : la variance de la différence est réduite ; l’IC non apparié est trop large et masque des différences réelles.

Référence

Les mots à retenir

MotDéfinition
Règle de score propreIncite à annoncer ses vraies probabilités (log-loss, Brier).
AUCP(score positif > score négatif) ; invariante à l’ordre et à la prévalence.
Calibration / ECE / BrierAccord entre confiance et fréquence ; fiabilité − résolution + incertitude.
Macro / microMoyenne par classe / sur les comptes agrégés.
nDCG, MRR, R@kClassement gradué / premier pertinent / couverture.
BLEU, chrF, BERTScoreRecouvrement lexical, caractères, sémantique.
pass@kProbabilité qu’au moins un de k échantillons passe les tests ; estimateur sans biais.
ContaminationDonnées de test dans le pré-entraînement ; tester sur du privé/reformulé.
Kappa / Bradley-TerryAccord corrigé du hasard / forces à partir de comparaisons.
Bootstrap apparié, McNemarIC et test pour deux systèmes sur les mêmes cas.
GoodhartUne métrique optimisée cesse de mesurer.

Suite

Vous savez juger. Voyons sur quoi tout cela tourne.

Chapitre suivant : les infrastructures de l’IA — GPU, mémoire, réseau, stockage, parallélismes, serveurs d’inférence, cloud vs local, et leurs coûts.

← L31SommaireL33 : infrastructures →