Évaluation — les 641 dépêches transmises par l'AFP

Banc d'essai REM

Huit LLM enrichissent exactement les mêmes entités NER sur les 641 dépêches que l'AFP nous a transmises, en six langues. Ce qui les sépare ne tient qu'au modèle — et selon qu'on mesure la discipline ou le jugement, ce n'est pas le même qui gagne.

Verdict

Deux gagnants, selon ce qu'on mesure

Le prompt pose une règle impérative : toute personne et toute organisation doit porter exactement un attribut main ou secondary. Le classement ci-dessous est celui de cette règle — la mesure la plus dure qu'on puisse faire sans référence, et elle sépare les huit modèles en deux groupes que rien ne recouvre. Sous chaque score figure l'exactitude mesurée contre un étalon annoté à la main : elle ne classe pas dans le même ordre, et ce désordre résiste à un second annotateur indépendant.

1er gemma_4_12b_it 97,3 % exactitude 70,8 % Couvre tout, dans les six langues. Seul défaut propre : 37 attributs mal formés.
2e ministral_3_14b_2512 93,9 % exactitude 66,8 % Le seul généré avec le prompt corrigé. Régulier partout sauf en français, sa langue la plus faible à 88,9 %.
3e qwen3_next_80b_a3b 92,2 % exactitude 70,8 % Les meilleurs contextes du banc, et le plus rapide. Mais il rend l'exemple du prompt sur 31 % des dépêches.
4e gemma_4_26b_a4b_it 91,3 % exactitude 79,4 % ← Le plus proche du gagnant : 85,1 % d'accord avec lui, l'entente la plus forte du banc.
5e qwen3_32b 89,4 % exactitude 66,0 % Solide sur les personnes, mais colle un attribut interdit à une location sur cinq.
6e llama_4_scout_17b_16e 72,9 % exactitude 41,9 % Laisse 27 % des entités sans étiquette et recopie l'exemple du prompt sur 14 % des dépêches.
7e gemma_3_12b_it 62,7 % exactitude 45,1 % Abandonne la tâche à mi-chemin : 87 % des dépêches ressortent sans concepts_abstraits.
8e glm_4_7_flash 59,4 % exactitude 45,1 % Dernier partout, et vingt-cinq fois plus lent que le plus rapide. Aucune raison de le retenir.

La flèche marque le meilleur sur l'étalon annoté. Un neuvième modèle, nemotron_3_nano_30b_a3b, a été testé puis écarté : sa génération s'est arrêtée à 635 dépêches, et il laissait 78 % des entités sans attribut.

Méthode

Comment on mesure sans vérité terrain

Personne n'a annoté ce corpus à la main, donc aucune de ces mesures n'est un score d'exactitude. Elles portent sur trois choses vérifiables sans référence : le respect des règles écrites dans le prompt, la cohérence interne des sorties, et l'ancrage des attributs dans le texte source.

Le banc est une campagne unique : les huit générations, les mesures et l'annotation de l'étalon se sont déroulées du 21 août au 4 septembre 2026, sur le corpus que l'AFP nous a transmis et sans que celui-ci change en cours de route.

La comparaison est appariée : le NER est calculé une seule fois, puis soumis aux huit modèles. Les listes d'entités sont identiques à l'entité près, ce qui élimine le principal facteur de confusion.

Une seule réserve, et elle est circonscrite : les sept premiers modèles ont reçu la même version du prompt, le huitième a reçu la version corrigée décrite plus loin. Les règles portant sur les entités sont identiques d'une version à l'autre, donc tout le classement de conformité et l'exactitude restent comparables ; seules les deux lignes sur les concepts_abstraits — recopie de l'exemple, formulations distinctes — mesurent ministral_3_14b contre un autre texte que les sept autres. Elles sont signalées comme telles.

ner/641 dépêches annotées
→
prompt LLMmain · secondary · speaking · context
→
format_corpus.pyconsolidation REM
→
compare_llms.pyrègles · cohérence · ancrage

Les deux proxys d'ancrage se lisent depuis le corpus NER, commun aux huit modèles : une entité main est censée être citée plusieurs fois et tôt dans la dépêche ; une entité speaking est censée apparaître près de guillemets ou d'un verbe de parole, puisque le prompt exclut explicitement le discours indirect.

Résultats

Les chiffres

641 dépêches, 9 041 entités, mesures appariées. Vert : meilleur des huit. Rouge : pire des huit. Le débit est celui observé sur la machine de génération, qui traitait souvent plusieurs modèles à la fois : il compare des ordres de grandeur, il ne dimensionne pas une production.
Mesure gemma_3
12b_it
gemma_4
12b_it
llama_4_scout
17b_16e
qwen3_next
80b_a3b
qwen3
32b
gemma_4
26b_a4b
glm_4
7_flash
ministral_3
14b_2512
Règles impératives du prompt
Personne ou organisation portant main ou secondary 62,7 %97,3 %72,9 %92,2 %89,4 %91,3 %59,4 %93,9 %
main et secondary à la fois (exclusifs) 180701388171362983
Attribut interdit sur une location 303603085833236541197
speaking sans citation à proximité 13,2 %3,5 %10,0 %7,7 %6,8 %5,0 %6,2 %9,0 %
Contexte de location pas en anglais 14173422472214
Concepts recopiés de l'exemple du prompt 0 %0,5 %14,4 %31,0 %1,9 %0 %1,2 %0 %
concepts_abstraits au-delà de 50 mots 60000000
Attributs malformés (rejetés au formatage) 037000000
Couverture
Entités avec un context 37,0 %95,6 %58,3 %94,8 %67,8 %86,9 %28,8 %86,8 %
Personnes étiquetées 65,8 %98,5 %78,3 %95,1 %90,7 %93,4 %61,6 %94,2 %
Organisations étiquetées 58,8 %95,8 %66,1 %88,5 %87,7 %88,8 %56,8 %93,5 %
Dépêches avec concepts_abstraits 12,9 %100 %95,0 %100 %99,5 %99,8 %77,2 %96,1 %
Utilité de ce qui est produit
Contexte qui répète seulement le nom 20,7 %5,9 %0,8 %0,4 %2,3 %2,5 %3,4 %0,5 %
Longueur médiane du contexte 2 mots3 mots2 mots4 mots3 mots3 mots3 mots4 mots
Formulations de concepts distinctes 312 / 3221 854 / 2 6091 068 / 2 2071 825 / 2 6901 770 / 2 0521 849 / 2 2381 339 / 1 4202 774 / 3 024
Longueur médiane des concepts 32 mots14 mots7 mots21 mots16 mots20 mots20 mots21 mots
Coût
Débit observé (dépêches / heure) 9811 0401 6453 8952184361551 967

Accord inter-modèles sur l'importance d'une entité : sur les vingt-huit paires, vingt-et-une tombent entre 59 % et 73 %. Six détonnent, et ce sont exactement les six paires internes au groupe de tête — 85,1 % entre gemma_4_12b et gemma_4_26b, 83,9 % entre gemma_4_12b et qwen3_next, 81,9 % entre gemma_4_12b et ministral_3_14b, 80,7 % entre qwen3_next et gemma_4_26b, 80,5 % entre qwen3_next et ministral_3_14b, 76,0 % entre gemma_4_26b et ministral_3_14b. Les modèles qui respectent le prompt se ressemblent ; les autres divergent chacun à leur façon, et le huitième modèle rejoint le groupe de tête sur ce critère comme sur les autres.

Langues

Qui tient dans les six langues

Le corpus est également réparti entre six langues, et la règle impérative se mesure langue par langue. C'est là que se joue l'écart entre un modèle utilisable en production et un modèle qui ne l'est que sur les dépêches occidentales.

Part des personnes et organisations portant main ou secondary, par langue de la dépêche.
Langue gemma_3
12b_it
gemma_4
12b_it
llama_4_scout
17b_16e
qwen3_next
80b_a3b
qwen3
32b
gemma_4
26b_a4b
glm_4
7_flash
ministral_3
14b_2512
Arabe 102 dépêches43,1 %98,5 %69,2 %91,7 %88,9 %94,7 %43,9 %95,9 %
Allemand 9762,4 %95,1 %68,0 %90,7 %86,0 %85,2 %45,0 %94,9 %
Anglais 11958,8 %98,4 %75,7 %91,6 %89,8 %90,7 %66,4 %94,2 %
Espagnol 10570,9 %97,7 %74,6 %92,5 %90,1 %91,9 %66,4 %94,7 %
Français 10675,7 %95,3 %74,8 %93,4 %90,8 %93,2 %61,7 %88,9 %
Portugais 11267,1 %98,6 %74,3 %93,4 %90,4 %92,1 %72,4 %95,0 %

La coupure est la même que sur le tableau précédent, et elle est franche. Les cinq premiers sont plats d'une langue à l'autre — trois points d'amplitude pour gemma_4_12b, trois pour qwen3_next, cinq pour qwen3_32b, dix pour gemma_4_26b. ministral_3_14b tient dans sept points, mais son minimum est là où personne d'autre ne l'a : le français, 88,9 %, cinq points sous sa moyenne — tous les autres modèles réussissent le français mieux que la plupart des langues. C'est une anomalie propre à ce modèle, pas un effet du corpus. Les trois derniers s'effondrent hors des langues occidentales : gemma_3 perd 33 points entre le français et l'arabe, glm_4_7_flash en perd 27 entre le portugais et l'allemand. Un banc mené uniquement sur des dépêches françaises les aurait classés bien plus haut qu'ils ne le méritent.

Exactitude

Ce que dit un étalon annoté

Tout ce qui précède mesure la discipline. Pour mesurer le jugement, il faut une référence : 30 dépêches, 5 par langue, dont chaque personne et chaque organisation a été annotée en main ou secondary, avec un booléen speaking. 277 entités, dont 24 écartées parce que le NER s'était trompé — un lieu pris pour un club de football, une personne classée en organisation, un nom absent du texte. Restent 253 entités scorables.

Les 30 dépêches ne sont pas tirées au hasard. Dans chaque langue, les candidates sont classées selon l'ampleur du désaccord entre les modèles, et une est prise à chacun des 90e, 70e, 50e, 30e et 10e percentiles. Un tirage aléatoire de 30 donnerait des intervalles trop larges pour départager quoi que ce soit ; ne garder que les cas contestés fausserait les valeurs absolues. Le jeu est donc délibérément plus dur que la moyenne du corpus : ce sont les écarts qui comptent, pas les niveaux.

Le corpus a été annoté deux fois, indépendamment, par deux modèles différents et sans que le second voie les réponses du premier. La première ligne du tableau donne l'exactitude contre la première annotation, la seconde contre l'autre.

253 entités annotées sur 30 dépêches. Une entité non étiquetée par le modèle compte comme un raté sur la classe attendue : s'abstenir coûte du rappel sans acheter de la précision. Les lignes de détail portent sur la première annotation. majority est le vote majoritaire des huit.
Mesure gemma_3
12b_it
gemma_4
12b_it
llama_4_scout
17b_16e
qwen3_next
80b_a3b
qwen3
32b
gemma_4
26b_a4b
glm_4
7_flash
ministral_3
14b_2512
majority
Importance — main contre secondary
Exactitude 1re annotation 45,1 %70,8 %41,9 %70,8 %66,0 %79,4 %45,1 %66,8 %73,9 %
Exactitude 2e annotation 45,1 %83,7 %48,8 %80,5 %73,6 %87,4 %47,2 %75,6 %81,7 %
Entités laissées sans réponse 35,6 %2,4 %21,7 %6,7 %8,3 %5,9 %43,9 %4,3 %7,5 %
Précision sur main 63,2 %54,8 %43,8 %58,9 %53,0 %71,0 %65,0 %51,8 %62,7 %
Rappel sur main 62,3 %88,3 %83,1 %85,7 %92,2 %85,7 %50,6 %92,2 %89,6 %
F1 sur main 62,7 %67,7 %57,4 %69,8 %67,3 %77,6 %56,9 %66,4 %73,8 %
F1 sur secondary 56,7 %76,7 %42,4 %77,4 %70,1 %84,5 %59,2 %70,7 %78,7 %
Speaking
F1 sur speaking 34,6 %57,7 %42,2 %71,1 %75,1 %81,1 %47,8 %76,5 %66,2 %

Le classement n'est pas celui de la conformité, et il ne dépend pas de l'annotateur. gemma_4_26b_a4b_it, troisième sur les règles du prompt, arrive premier sur l'exactitude — sous les deux annotations. gemma_4_12b_it, qui domine toutes les règles, passe derrière lui et derrière le vote majoritaire. Les niveaux absolus, eux, bougent beaucoup : la seconde annotation est plus généreuse en main et donne à tous les modèles dix points de plus. C'est l'ordre qui tient, pas les valeurs.

Et tous se trompent de la même façon. Sur main, la précision plafonne entre 44 et 71 % quand le rappel monte à 83-92 % : les modèles posent l'étiquette sur presque toutes les entités qui la méritent, et sur beaucoup qui ne la méritent pas. Le miroir exact sur secondary, où la précision atteint 79 à 98 % pour un rappel de 28 à 77 %. Autrement dit, ils promeuvent en acteur principal des entités qui ne font que commenter : un ministre qui réagit, un syndicaliste cité une fois, un joueur mentionné en passant. gemma_4_26b gagne parce qu'il est le plus sobre des huit sur ce point, et ministral_3_14b arrive dernier du groupe de tête parce qu'il est le plus prodigue : 92,2 % de rappel sur main, le meilleur du banc, pour 51,8 % de précision — il promeut presque tout.

Le contraste sur speaking est instructif : gemma_4_12b y atteint 100 % de précision pour 40,6 % de rappel — il ne se trompe jamais, il rate simplement six cas sur dix. gemma_4_26b, à 92,4 % de précision pour 72,3 % de rappel, produit une sortie bien plus utile en aval.

Accord entre les deux annotations, entité par entité. Le kappa de Cohen retranche l'accord que le hasard produirait à lui seul, compte tenu des deux distributions d'étiquettes — sur un jeu où secondary domine, l'accord brut flatte.
Ce qui est jugéEntitésAccordKappa
speaking27793,1 %0,848
main contre secondary décision binaire24681,3 %0,613
Étiquette complète, ner-error compris27780,9 %0,665
Étiquette complète, par langue
Allemand5989,8 %0,804
Arabe4185,4 %0,760
Français5988,1 %0,716
Anglais4175,6 %0,575
Portugais3568,6 %0,493
Espagnol4269,0 %0,487

La définition de speaking se transmet, celle de main beaucoup moins. Un kappa de 0,85 sur le discours direct veut dire que la règle est écrite assez précisément pour qu'un second annotateur la reproduise presque à l'identique. Les 0,61 de la décision main/secondary disent l'inverse : la notion d'acteur central reste sous-spécifiée, et c'est là qu'il faut écrire des règles plutôt que des exemples.

Le désaccord est unidirectionnel : 43 entités classées secondary par le premier annotateur et main par le second, contre 3 dans l'autre sens. Ni « tout locuteur est principal » ni « une seule mention suffit » ne résument cette différence — parmi les 43, 28 sont citées et 15 non, 22 ont une mention et 21 plusieurs. C'est le jugement de centralité lui-même qui diverge. Et un décalage systématique de cette nature déplace tous les scores dans le même sens en préservant l'ordre, ce qui explique que le classement survive.

La détection des erreurs de NER, elle, est solide : les deux annotations s'accordent sur la totalité des cas retenus par la première, et la seconde en signale neuf de plus — des spans tronqués ou mal résolus. Le taux d'erreur du NER en entrée, autour de 8 % des entités, est en soi une mesure du bruit que les huit modèles subissent également.

à lire avant de citer ces chiffres

Les deux annotations viennent de modèles, aucune d'un humain

Les 277 entités ont été annotées par deux modèles Claude, sur demande explicite et après avoir signalé le problème : une référence produite par des LLM ne peut pas mesurer des LLM de façon indépendante. Chaque fichier porte un champ annotated_by, et l'outil de scoring affiche un avertissement à chaque exécution.

La double annotation lève une inquiétude et pas l'autre. Elle montre que le classement ne dépend pas de la convention retenue — deux jugements produits séparément, dont l'un est nettement plus généreux, donnent le même ordre. Elle ne montre pas que ce jugement est le bon : deux modèles de la même famille peuvent se tromper ensemble, de façon cohérente, là où un journaliste trancherait autrement. Un accord de 0,61 mesure la stabilité d'une convention, jamais sa justesse.

Ce qui manque tient en une phrase : cinq dépêches relues par quelqu'un dont c'est le métier, sur la seule question de savoir ce qui fait un acteur principal. C'est la dernière chose à faire avant qu'un de ces chiffres serve à choisir un modèle.

Biais

Les cinq erreurs qui reviennent

Chaque cas ci-dessous est reproductible dans le corpus consolidé. La règle citée est celle du prompt qu'il enfreint.

qwen3_next_80b 199 dépêches — 31,0 % llama_4_scout 92 dépêches — 14,4 %

Il rend l'exemple du prompt au lieu de lire la dépêche

Les trois concepts les plus fréquents de qwen3_next sur tout le corpus — power and sovereignty (184×), national identity (178×), the tension between diplomacy and confrontation (157×) — sont, mot pour mot, la valeur d'exemple du prompt système. Sur 156 dépêches il rend les trois d'affilée, et sur certaines il ne rend rien d'autre.

{"concepts_abstraits": "power and sovereignty, the tension between diplomacy and confrontation, national identity"}
— exemple de sortie, prompt système
Dépêche C3HP7T3-2 — l'acteur Jared Leto dément des accusations d'agression sexuelle
Modèleconcepts_abstraits
qwen3_next_80bpower and sovereignty, the tension between diplomacy and confrontation, national identity
gemma_4_12ballegations of sexual misconduct, public denial, celebrity accountability, media investigation
llama_4_scoutsexual assault allegations, power imbalance, celebrity accountability
gemma_3— rien —

C'est le biais le plus coûteux du lot : il produit une sortie bien formée, plausible, et fausse. Aucune validation de schéma ne l'attrapera. Et il touche le deuxième du classement — c'est ce qui l'empêche de prendre la première place. La section suivante raconte comment il a été corrigé.

qwen3_32b 833 attributs — 19,6 % des locations

Il traite les lieux comme des acteurs

Le prompt n'autorise qu'un seul attribut sur une location, context, et le dit en toutes lettres. qwen3_32b étiquette malgré tout une location sur cinq en main ou secondary — 833 attributs interdits, soit dix fois gemma_4_26b et quatorze fois gemma_4_12b. C'est un défaut isolé : sur les personnes et les organisations, il tient la quatrième place du banc.

LOCATIONS (`location`/`afplocation`): `context="..."`: geographic or contextual precision if needed, IN ENGLISH. No other attribute on locations.
Dépêche C2R37WE-2 — agenda sportif allemand, 41 locations étiquetées main
Locationqwen3_32bgemma_4_12b
Varesemain · host city of rowing eventaucun attribut · Italian city
Parismain · host city of swimming eventaucun attribut · France
Tokiomain · Bundesliga training locationsaucun attribut · Japan
Osakamain · Bundesliga training locationsaucun attribut · Japan

Le cas Tokio et Osaka montre que l'erreur ne s'arrête pas à l'attribut : le contexte est faux lui aussi, recopié d'une autre entrée de l'agenda. Corrigeable au formatage — il suffit d'ignorer main et secondary sur les locations — mais le contexte erroné, lui, passera.

gemma_3 1 788 entités — 37,3 % 558 dépêches sans concepts

Il s'arrête en route

gemma_3 ne se trompe pas tant qu'il n'écrit rien. Il traite les premières entités, puis rend une liste tronquée et saute le bloc de métadonnées. L'effet s'aggrave sur les langues non latines : la règle impérative n'est respectée qu'à 43,1 % en arabe, contre 75,7 % en français — le plus grand écart entre langues de tout le banc.

Dépêche C2Q96NQ-1 — arabe, 8 personnes et organisations
Entitégemma_3gemma_4_12b
الظفيريaucun attributmain · Kuwaiti government employee
فاطمة عباس جوهرaucun attributmain · official spokesperson for the Kuwaiti Ministry of Electricity
ديفيد ميشيلaucun attributsecondary · expert in food and water security issues
منظمة الدول المصدّرة للنفطaucun attributsecondary · intergovernmental organization of oil exporting countries
gemma_3 20,7 % de ses contextes

Il remplit le champ context avec le nom de l'entité

Le prompt demande de simplement omettre l'attribut quand il n'apporte rien. gemma_3 préfère le remplir avec ce qu'il a sous la main — le nom lui-même. Le champ passe alors toutes les validations tout en étant vide de sens, ce qui est pire qu'absent pour une désambiguïsation en aval.

context="…": geographic or contextual precision if needed, IN ENGLISH (e.g. capital of Poland, eastern Ukraine). Simply omit the attribute if it is not needed.
Dépêche C3876WE-3 — locations
Entitégemma_3gemma_4_12bqwen3_next_80b
BusanBusancity in South Koreacity in South Korea where UNESCO meeting took place
MancheMancheFrench departmentdepartment in northwestern France
UtahUtahbeach code nameD-Day landing beaches with codenames

Le cas Utah montre l'écart réel : gemma_4 et qwen3_next comprennent tous deux qu'il s'agit d'un nom de code de plage du Débarquement, pas de l'État américain. C'est cette colonne de droite qui vaut à qwen3_next les contextes les plus longs et les moins redondants du banc — 4 mots de médiane, 0,4 % de simples échos du nom.

gemma_4_12b 37 attributs

Il écrit main="secondary" — le défaut du gagnant

Le prompt anticipe précisément cette erreur et l'interdit nommément ; gemma_4_12b la commet quand même, sur 37 attributs, et il est le seul des huit à le faire. Le formatter ne retient que les booléens stricts, donc ces entités ressortent sans aucun attribut d'importance plutôt qu'avec une valeur mensongère. Autrement dit, une partie des 2,7 % d'entités non étiquetées de gemma_4 vient de là, pas d'un oubli.

main and secondary are BOOLEAN attributes: their only allowed value is "true". For a secondary entity, write secondary="true" — NEVER main="secondary" nor secondary="main".
Dépêche C3876WE-3 — sortie brute du LLM, trois attributs sur la même dépêche
EntitéAttributs produits
Juno (afporganization)main="secondary" · context="beach code name"
Sword (afporganization)main="secondary" · context="beach code name"
Rates (afporganization)main="secondary" · context="International Council on Monuments and Sites"

Corrigeable sans toucher au modèle : interpréter main="secondary" comme secondary="true" au formatage remonterait mécaniquement le taux de conformité. Je ne l'ai pas fait — c'est un choix produit, pas technique.

Suite

Le prompt corrigé, et ce qu'il a coûté

Le premier biais listé ci-dessus n'était pas un défaut de modèle, mais un défaut de prompt. Sa valeur d'exemple pour concepts_abstraits était une réponse complète, plausible et passe-partout : un modèle qui hésite la recopie, et rien dans le texte ne le lui interdisait.

Trois modifications ont suivi. L'exemple est devenu un gabarit non copiable ; la spécification du champ, réduite à une phrase jusque-là, précise désormais un nombre de concepts, un test d'ancrage — si le concept conviendrait à une dépêche sans rapport, il est trop générique — et l'interdiction explicite d'en reprendre le libellé. Le modèle a été régénéré à chaque version.

qwen3_next_80b_a3b_instruct, régénéré sur les 641 dépêches à chaque version du prompt. Chaque corpus est mesuré contre le prompt qui l'a produit. Deux runs indépendants en v2, pour séparer l'effet du bruit.
Mesure prompt v1 prompt v2
deux runs
prompt v3
Ce que la correction visait
Dépêches recopiant un exemple du prompt 31,0 %0,2 % · 0,3 %0,0 %
Formulations de concepts distinctes 68 %92 % · 91 %82 %
Longueur médiane des concepts 21 mots22 mots · 22 mots18 mots
Effets de bord sur les entités
Personnes ou organisations sans étiquette 7,8 %8,5 % · 8,9 %7,6 %
speaking sans citation à proximité 7,7 %10,0 % · 10,2 %8,5 %
Entités avec un context 94,8 %93,5 % · 93,5 %94,1 %

La recopie est éliminée, et de façon reproductible. De 199 dépêches sur 641 à deux, puis zéro. Les deux runs v2 donnent le même résultat, ce n'était donc pas un coup de chance de tirage. Les concepts qui restent sont propres à leur dépêche : la formule la plus fréquente du corpus passe de 184 occurrences à 19.

Mais toucher au prompt se paie ailleurs. La v2 allongeait la section métadonnées de onze lignes ; le reste du prompt s'en est trouvé dilué, et la moitié entités a perdu environ un point partout. La v3 dit la même chose en cinq lignes et rend au bloc de vérification final sa forme d'origine : les effets de bord se résorbent, sans que la recopie ne revienne. Le prix résiduel se lit sur la ligne des formulations distinctes — 82 % contre 92 % en v2 : en supprimant l'exemple travaillé, on a aussi supprimé le modèle de ce à quoi ressemble un bon concept, et les réponses dérivent vers des paires abstraites courtes.

Ce prix résiduel n'en est peut-être pas un. Le huitième modèle du banc, ministral_3_14b, a été généré avec la v3 — et il produit 92 % de formulations distinctes, exactement le niveau que la v2 avait atteint sur qwen3_next, avec des concepts un peu plus longs que les siens. Cinq versions du prompt n'ont pas réussi à faire remonter qwen3_next au-dessus de 82 % ; un autre modèle y arrive sans qu'on touche à rien. La richesse des concepts se lit donc au moins autant sur le modèle que sur le prompt, et il n'y a pas de v6 à écrire pour aller la chercher.

Cette expérience a produit un chiffre plus utile que les autres : deux régénérations du même modèle, sur le même corpus, avec exactement le même prompt, ne s'accordent que sur 93,1 % des entités. Autrement dit, 6,9 % des étiquettes changent d'un run à l'autre sans qu'on ait rien modifié. C'est le plancher en dessous duquel aucun écart mesuré ici n'est interprétable — et c'est aussi ce qui a permis de trancher : la dégradation de la v2 était réelle sur les deux mesures dont le bruit inter-run est nul, et du bruit sur les autres.

Limites

Ce que ce banc d'essai ne dit pas

  • L'exactitude ne porte que sur 30 dépêches, et les deux étalons viennent de modèles. Les 611 autres dépêches ne sont mesurées que sur la discipline : un modèle peut respecter chaque règle et se tromper d'entité principale à chaque fois. Et les deux annotations des 30 ont été produites par des LLM, pas par des humains — voir l'avertissement de la section Exactitude.
  • Un écart de moins de sept points sur les étiquettes ne veut rien dire. Deux régénérations identiques du même modèle divergent sur 6,9 % des entités. Toute comparaison lue ici porte cette incertitude, y compris entre modèles voisins.
  • Les compteurs bruts favorisent les modèles avares. glm_4_7_flash a le plus faible nombre de doubles étiquetages du banc — parce qu'il n'étiquette que 59 % des personnes et organisations. Toute lecture de ce tableau doit croiser la ligne de couverture.
  • Les proxys d'ancrage sont des approximations. « speaking sans citation à proximité » repose sur une fenêtre de 200 caractères et une liste de verbes de parole dans six langues ; il sur-signale les citations longues et sous-signale les anaphores que le prompt demande justement de résoudre.
  • La détection de langue des contextes est heuristique. Elle distingue l'anglais du reste par mots outils, et se tait sur les contextes trop courts — la ligne « contexte pas en anglais » est un plancher, pas un décompte. La langue des dépêches, elle, vient des métadonnées du corpus et est fiable.
  • Le débit n'est pas une mesure propre. Les sept premières générations se sont chevauchées sur la même machine, chacune ralentie par les autres dans des proportions que je ne connais pas ; la huitième a tourné seule, dix jours plus tard, ce qui avantage mécaniquement son chiffre. L'écart de vingt-cinq entre le plus rapide et le plus lent survit largement à cette incertitude ; un écart de deux, non. Et rien de tout cela ne dimensionne une production : sur une inférence hébergée, la cadence est celle du fournisseur.
  • Le huitième modèle n'a pas reçu le même prompt que les sept autres. Il a été généré avec la version corrigée, les autres avec la version d'origine. Les règles sur les entités n'ont pas changé entre les deux, donc la conformité, les langues et l'exactitude se comparent ; les deux lignes sur les concepts_abstraits, elles, sont mesurées contre deux textes différents et ne se comparent pas.
  • Un désaccord n'est pas une erreur. Vingt-et-une paires de modèles sur vingt-huit ne s'accordent que sur 59 à 73 % des entités ; sans référence, impossible de dire qui a raison sur le reste.

La suite est désormais précise, et elle tient en une question : la convention qui met en secondary les entités qui ne font que commenter est-elle la bonne ? C'est elle qui décide du classement en exactitude, et elle demande une validation humaine sur cinq dépêches — pas une relecture des 277 entités. Une fois cette convention arrêtée, étendre l'étalon au-delà de 30 dépêches resserrerait des intervalles qui restent, à ce stade, larges.

Reproduire

Rejouer sur d'autres modèles

Les deux scripts prennent des noms de répertoires en argument — rien n'est codé en dur. Pour ajouter un modèle, il suffit qu'il ait tourné sur le même corpus NER. C'est ainsi que le huitième a rejoint le banc : deux commandes, aucune ligne de code à écrire.

python -m tests.format_corpus ministral_3_14b_instruct_2512 python -m tests.compare_llms gemma_3_12b_it gemma_4_12b_it llama_4_scout_17b_16e_instruct \ qwen3_next_80b_a3b_instruct qwen3_32b gemma_4_26b_a4b_it \ glm_4_7_flash ministral_3_14b_instruct_2512 \ -p tests/data/prompt-v1.j2 -e 4 python -m tests.score_gold <les mêmes huit modèles>

compare_llms accepte deux modèles ou plus, se restreint aux dépêches communes, aligne les entités par nom, et sort une matrice de confusion par paire. -e imprime N exemples réels de chaque type d'erreur. -p désigne la version du prompt avec laquelle le corpus a été généré : les formules interdites y sont relues, donc la mesure de recopie suit toute modification du prompt — mais un corpus doit être mesuré contre le sien, jamais contre un autre. La commande ci-dessus mélange volontairement deux versions : c'est la mesure de recopie, et elle seule, qui en dépend — le huitième modèle ne recopie ni l'exemple de la v1 ni le gabarit de la v3, il lit 0 % dans les deux cas.