Audit de POPE : le choix des tokens « yes/no » décale le F1 de LLaVA-1.5 de 6,13 points
Une équipe de chercheurs a tenté de reproduire un résultat de réduction des hallucinations sur le benchmark POPE et a découvert un problème dans l'évaluation. Le code lisait la réponse de LLaVA-1.5-7B via les tokens 3582 (« yes ») et 1217 (« no »). Or le modèle produit « Yes » (3869) et « No » (1939), précédés d'une espace. Sur 9000 questions, les anciens ID n'apparaissent pas une seule fois. Avec une lecture corrigée, le F1 atteint 0,8221, 0,8498 et 0,8713 sur les splits adversarial, popular et random. Sur adversarial, le décalage est de 6,13 points, soit plus que le gain annoncé dans cinq des six articles examinés. • Aucun des six articles ne décrit la méthode d'extraction de la réponse. • Les neuf corrections d'inférence conçues par les auteurs n'ont pas dépassé la baseline. • Transposer les ID de LLaVA à des modèles dotés d'un autre vocabulaire donne un F1 de 0,00.
Traité par IA depuis Hugging Face Daily Papers ; édité par Hamidun News
Les auteurs d'un preprint ont tenté de reproduire un résultat récent de réduction des hallucinations sur le benchmark POPE, et ont buté sur l'évaluation elle-même. Sur le split adversarial, la LLaVA-1.5-7B de base obtient un F1 de 82,21. C'est 1,21 à 8,67 points de plus que les baselines auxquelles ils comptaient comparer la méthode : 81,00, 79,30 et 73,54. Cet écart semblait suspect. La cause se trouvait dans le code : la façon d'extraire la réponse « oui » ou « non » à partir des logits suffit à elle seule à faire bouger la métrique.
Où l'extraction de la réponse déraille
L'implémentation avec lecture sur deux tokens compare les logits de deux ID du vocabulaire : 3582 (« yes ») et 1217 (« no »). Sur 9000 questions couvrant les trois splits, en décodage glouton, le modèle n'a généré aucun de ces tokens. Il produit à la place « Yes » (3869) et « No » (1939). SentencePiece ajoute un octet d'espace après le suffixe de prompt « ASSISTANT: », et le mot reçoit alors un autre identifiant.
Les auteurs ont remplacé cette lecture par une table de huit tokens, qui couvre les formes précédées d'une espace. LLaVA-1.5-7B obtient les résultats suivants :
- adversarial : F1 0,8221 ;
- popular : F1 0,8498 ;
- random : F1 0,8713 ;
- décalage sur adversarial dû au changement de lecture : 6,13 points.
De ce dernier chiffre, on déduit que l'ancienne variante donnait environ 76,1 sur adversarial. Il s'agit de notre propre calcul : cette valeur ne figure pas dans l'abstract. Le gain lié au changement de protocole dépasse celui annoncé dans cinq des six articles examinés. Aucun d'eux n'indique comment il extrayait la réponse.
Ce que les auteurs n'affirment pas
La conclusion reste prudente. L'exécution de référence a tourné en quantification NF4 sur 4 bits. On ne peut donc pas dire quelle part des gains annoncés résisterait à un test avec une lecture identique et une précision identique. La question reste ouverte tant que ces deux paramètres ne coïncident pas. L'étude n'accuse personne d'avoir gonflé ses résultats. Son propos est que des comparaisons sans protocole décrit ne peuvent pas être considérées comme valides.
Sur la baseline corrigée, les auteurs ont testé neuf corrections d'inférence de leur cru. Aucune ne l'a dépassée. Ils ont aussi cherché pourquoi le split adversarial résiste aux interventions au niveau des logits. Sur un échantillon de 3000 questions, les réponses fausses recevaient plus d'attention portée à l'image que les réponses justes : d de Cohen = −0,46, p = 1,4×10⁻²⁴. Cela contredit l'hypothèse des méthodes qui renforcent l'ancrage visuel, lesquelles partent du principe que l'erreur vient d'un manque d'attention à l'image.
Un problème de protocole, pas d'un seul modèle
Pour vérifier que LLaVA n'est pas seule en cause, les auteurs ont pris quatre VLM supplémentaires, issus de trois familles de tokenizers. Reprendre tels quels les ID de LLaVA-1.5 ramène le F1 à zéro sur deux modèles dont les vocabulaires ne se recoupent pas. Une lecture dérivée du tokenizer propre à chaque modèle se maintient dans une plage de 0,80 à 0,92. Le benchmark est donc sensible aux détails de tokenisation, quelle que soit la combinaison de modèle et de prompt.
Que faire lorsqu'on compare des modèles
Voici les conclusions pratiques pour ceux qui publient ou lisent des résultats sur POPE et sur d'autres benchmarks yes/no :
- Vérifiez quels tokens apparaissent réellement en décodage glouton avant de calculer les métriques.
- Construisez la table des réponses admissibles à partir du tokenizer du modèle concerné, en incluant les formes avec espace et les variantes de casse.
- Indiquez la méthode de lecture et la précision des poids (par exemple NF4 ou fp16) dans la description de l'expérience.
- Recalculez les baselines des autres avec votre propre code, au lieu de recopier les chiffres de leurs tableaux.
Tant que le protocole n'est pas fixé, un écart d'un ou deux points de F1 sur POPE peut refléter un choix de tokens plutôt que la qualité d'une méthode anti-hallucinations.
Build & Ship Production AI Apps with Vibe Coding
Join Zhemal Khamidun's hands-on Vibe Coding Intensive at hamidun.com/vibecoding — master Claude Code, Cursor, and autonomous agentic workflows.
L'essentiel de l'IA — une fois par semaine
Sept actus qui ont vraiment compté, choisies à la main. Sans bruit ni communiqués.
C'est fait ! Vérifiez votre boîte mail pour la confirmation.