72,9 % — et les trois questions qu'on rate
Il existe deux façons de courir LongMemEval. Il y a la variante confortable, où le foin autour de la bonne réponse est peu profond. Et il y a le full-haystack : environ 480 sessions distractrices par question, à peu près 2 330 fragments de texte dans lesquels un seul fait compte.
Devinez laquelle est affichée dans les communications.
Nous avons couru l’autre. Le résultat est 72,9 %, et nous le publions comme un plancher, pas comme un plafond.
Le chiffre, et ce qu’il recouvre
| Mesure | Avant | Après | Δ |
|---|---|---|---|
| Full-haystack, 48 questions, tous moteurs | 64,6 % | 72,9 % | +8,3 |
| Multi-session (la catégorie la plus dure) | 1/8 | 5/8 | +4 |
Chemin réel executeQuery, 61 questions | 78,7 % | 83,6 % | +4,9 |
| Temporel, A/B inline, reproduit deux fois | 7/10 | 10/10 | +3 |
Pourquoi « plancher » : les catégories connaissances-utilisateur et session-simple n’ont jamais été rejouées avec le moteur de consolidation complet. Faute de temps de calcul, pas faute d’envie. La campagne complète a coûté une vingtaine d’heures de calcul sur deux jours ; rejouer ces deux catégories en coûterait autant. Le chiffre honnête est donc celui qui sous-estime.
Pour situer sans comparer des produits : le papier de référence mesure GPT-4o avec le contexte complet à environ 60 % — sur la variante plus facile.
Le protocole, parce que le chiffre ne vaut rien sans lui
Trois règles, tenues sur toute la campagne.
Les écrivains sont aveugles. Chaque prompt de consolidation dit « consolide ce sujet ». Jamais « réponds à cette question ». Les questions du benchmark ne sont jamais vues au moment où la mémoire est écrite. C’est la différence entre mesurer une mémoire et mesurer sa capacité à tricher.
Un succès ne compte que s’il se reproduit. Chaque HIT a été rejoué deux fois avant d’être compté. Sur un run à six réussites brutes, deux se sont révélées être du bruit de juge. Elles ont été retirées. C’est comme ça qu’on passe de 6/8 affiché à 5/8 réel.
Une seule configuration pour tout le monde. Pas de choix de questions après coup, pas de réglage par catégorie. La config qui donne 72,9 % est la même sur les 48 questions.
Ce qui a marché, et pourquoi
Le gain vient d’un seul endroit : le moment de l’écriture.
Machine au repos, le moteur relit sa propre mémoire sujet par sujet et en écrit un registre — chaque occurrence, chaque valeur, chaque date, le total courant. Ce registre se pose à côté du texte brut, jamais à sa place.
Deux détails prouvent que c’est bien là que ça se joue :
Le même run avec un modèle plus faible comme écrivain perd le succès. Le lecteur, lui, n’a pas changé. Ce n’est donc pas la lecture qui portait le gain.
Et un plafond de 40 sujets sur les registres tuait tout : il gardait les gros sujets distracteurs et jetait le fragment qui contenait la réponse — huit lignes perdues dans le bruit. Aucun filtre côté réponse ne pouvait rattraper ça. Le fait n’était plus là.
Ce qu’on a réfuté
Ces mesures-là ne sont pas dans les communications d’habitude. Elles devraient.
- Registres de relations — plausible, testé, pire.
- Passe master — plausible, testé, pire.
- Pré-tri k-means avant consolidation — sujets flous, aucun échec rattrapé.
- Balayage de réserve — du bruit, pas un gain.
- Les nombres premiers — mesurés six fois. Aucun signal mémoriel. Enterrés.
Une régularité en sort, et elle vaut plus que les points gagnés : les deux vrais leviers de la campagne sont venus d’un fait manquant tracé jusqu’à sa position exacte dans son fragment. Les deux leviers réfutés sont venus d’un raisonnement plausible sans trace. Depuis, on ne construit plus rien sans avoir tracé d’abord.
Les trois qu’on rate
Voici la partie que personne n’écrit.
Deux sont structurelles au benchmark. LongMemEval empile plusieurs utilisateurs dans une seule mémoire. Le projet d’un inconnu devient indiscernable du vôtre dans le texte servi — on a vérifié, la passe de vérification les garde, parce qu’ils sont dans les sources. Aucun filtre côté réponse ne peut trancher.
Mais Mnemosyne est souverain et mono-humain. Dans un vault réel, il n’y a qu’une personne. Ce mode d’échec n’existe pas. On ne court pas après ces deux points : les gagner voudrait dire optimiser pour un artefact du benchmark.
La troisième est notre dette. Un déséquilibre entre ce qu’on écrit et ce qu’on relit : un plafond de corpus tronque un sujet trop dense. C’est une vraie limite d’ingénierie. Elle a un ticket. Elle sera corrigée. On ne la maquille pas en choix de design.
Ce qu’on ne prétend pas
Le même document qui contient ces chiffres contient aussi la liste de ce qui n’est pas prouvé, et on la tient à jour :
Les ponts oniriques se créent, mais personne n’a mesuré s’ils sont pertinents ou bruités. Donc on ne les vend pas.
La qualité du tri par sujets n’est pas mesurée. La mémoire s’organise ; on ne prétend pas qu’elle s’organise juste.
Et 359 tests unitaires verts prouvent que des fonctions marchent. Pas qu’elles valent quelque chose. Unité verte n’est pas valeur prouvée.
Le raccourci commercial serait de dire « on atteindra 100 %, le reste est by design ». C’est faux d’un tiers, et ce tiers-là est notre travail à faire.
Ce qu’on peut dire, en revanche, tient en une ligne : 72,9 % sur le terrain le plus dur, publié comme un plancher, avec le protocole et les échecs à côté.