Évaluation humaine de texte généré
Comment mener une évaluation humaine défendable de la sortie de LLM et de NLG : définir les critères avec précision, choisir entre notes absolues ou par paires, donner de la puissance à l'étude et rapporter assez de détails pour la reproduire.
Les métriques automatiques comme BLEU et ROUGE ne corrèlent que faiblement avec la qualité réelle du texte généré, si bien que l'évaluation humaine reste la norme, et elle est mal faite plus souvent qu'à son tour. Les trois choses qui distinguent une évaluation humaine digne de confiance d'une évaluation décorative : définir chaque critère avec précision, préférer les jugements relatifs aux notes absolues, et rapporter assez de détails pour qu'une autre personne puisse la refaire. Ce guide est le protocole, pas la formulation de la grille.
Pourquoi l'évaluation humaine, et pourquoi elle est difficile à croire
Pour la génération ouverte, les résumés, le dialogue, les traductions et les réponses de LLM, les métriques automatiques comparent à des textes de référence et passent à côté de l'essentiel : une réponse fluide et fidèle formulée autrement que la référence obtient une mauvaise note, et un mensonge fluide obtient une bonne note. Le jugement humain reste donc la vérité terrain. Le hic, c'est que l'évaluation humaine est elle-même un instrument de mesure, et qu'un instrument mal conçu produit des chiffres aussi bruités que les métriques qu'il remplace.
L'ampleur du problème est documentée. Howcroft et al. (2020) ont passé en revue vingt ans d'évaluations de NLG et constaté que le domaine ne parvenait même pas à s'accorder sur le sens de ses propres critères : des termes comme « fluidité », « adéquation » et « naturel » étaient définis différemment (ou pas du tout) d'un article à l'autre, rendant les résultats impossibles à comparer. Leur remède est le point de départ de toute évaluation sérieuse : préciser exactement ce que signifie chaque critère avant de recueillir le moindre jugement.
Définir les critères, avec précision
Les critères vagues sont là où la plupart des évaluations humaines déraillent. « Notez la qualité de 1 à 5 » invite chaque annotateur à inventer sa propre définition de la qualité. Découpez-la en dimensions nommées et définies séparément, et rédigez une définition opérationnelle d'une phrase pour chacune :
- Fluidité : le texte est-il grammatical et bien formé, indépendamment de sa justesse ?
- Cohérence : les phrases s'enchaînent-elles de façon sensée dans l'ensemble ?
- Fidélité / exactitude factuelle : chaque affirmation est-elle étayée par la source (pour le résumé/RAG) ou vraie (pour la génération ouverte) ? C'est là que se repèrent les hallucinations.
- Pertinence : répond-elle réellement à l'invite ?
- Utilité : pour les tâches de type assistant, accomplit-elle ce que l'utilisateur voulait ?
Mesurer ces dimensions séparément vous dit pourquoi un système en surpasse un autre, pas seulement qu'il l'a fait.
Notes absolues ou comparaisons relatives
Le plus grand choix de conception est de savoir si les annotateurs notent une sortie à la fois ou en comparent plusieurs.
- Les notes absolues (Likert) sont simples mais souffrent d'un biais d'échelle : les annotateurs ancrent différemment, évitent les extrêmes et dérivent au fil d'une session, si bien qu'un « 4 » d'un évaluateur n'est pas un « 4 » d'un autre.
- La préférence par paires (A ou B est-il meilleur ?) contourne entièrement le biais d'échelle et est généralement plus fiable, ce qui explique qu'elle sous-tende les données de préférence pour le RLHF et la comparaison de modèles. Le coût, c'est que vous obtenez un classement, pas un niveau absolu.
- Le best-worst scaling montre un petit ensemble et ne demande que le meilleur et le pire, un moyen économique d'obtenir des classements fiables à partir de peu de jugements.
van der Lee et al. (2021) exposent des recommandations de bonnes pratiques couvrant précisément ces choix : combien d'items et d'évaluateurs, quelle échelle, quelle analyse statistique, et méritent d'être lues avant de vous engager sur une conception.
Lui donner de la puissance, et la rapporter
Deux modes de défaillance subsistent même une fois la conception réussie.
Premièrement, les comparaisons sous-dimensionnées. Détecter un petit écart de qualité entre deux bons systèmes demande plus d'items qu'on ne le pense ; menez d'abord l'analyse de puissance, utilisez un test de significativité approprié et rapportez les tailles d'effet, pas seulement quelle moyenne était la plus élevée.
Deuxièmement, le détail non rapporté. Belz et al. (2021) ont examiné la reproductibilité en NLP et constaté que les évaluations humaines étaient particulièrement difficiles à reproduire, le plus souvent parce que l'article omet les critères exacts, les consignes, le panel d'annotateurs et l'analyse. Consignez tout cela dans le cadre de l'étude, pas après coup.
Quelques mécanismes qui préviennent des biais évitables : randomisez l'ordre des sorties pour que la position ne transparaisse pas (les gens favorisent la première option), masquez l'identité du système pour que les annotateurs ne puissent pas deviner quel modèle a produit quoi, et faites un pilote sur un petit lot pour mesurer l'accord et corriger les critères confus avant de passer à l'échelle.
Le faire dans Potato
Potato dispose d'un schéma pour chaque style d'évaluation, si bien que le choix de conception ci-dessus se traduit directement en configuration. Pour des notes absolues par critère :
annotation_schemes:
- name: faithfulness
annotation_type: likert
description: "Is every claim in the response supported by the source? 1 = many unsupported, 5 = fully supported."
size: 5
- name: fluency
annotation_type: likert
description: "Is the response grammatical and well-formed?"
size: 5Pour une comparaison A/B à l'aveugle, utilisez un schéma pairwise et randomisez quel système est présenté comme A :
annotation_schemes:
- name: preference
annotation_type: pairwise
description: "Which response is more helpful overall?"
labels: ["A is better", "Tie", "B is better"]Pour une notation structurée et multicritère en une seule passe, le schéma rubric_eval recueille une note par dimension de la grille. Quel que soit votre choix, gardez un recouvrement sur un sous-ensemble partagé afin de pouvoir rapporter l'accord, et conservez les étiquettes par annotateur dans l'export pour que le test de significativité dispose de la variance dont il a besoin.
Pour aller plus loin
- Évaluation de LLM fondée sur une grille, pour transformer une qualité floue en dimensions notées.
- Comparaison de modèles par paires, pour l'évaluation A/B à grande échelle.
- Puissance statistique et taille d'échantillon, pour que la comparaison puisse réellement étayer son affirmation.
- Évaluation de RAG par annotation humaine, spécifiquement pour le cas de la fidélité/pertinence.