Memento — le modele apprend a compresser son propre chain-of-thought¶
Resume¶
Dimitris Papailiopoulos (AI Frontiers, Microsoft Research) publie le 2026-04-08 Memento, une technique qui apprend aux LLM a gerer leur propre contexte en cours de generation. Le modele segmente son chain-of-thought en blocs coherents, genere a chaque frontiere un memento (compression dense des conclusions du bloc), puis le bloc d'origine est masque dans le KV cache. Resultats mesures :
- Peak KV cache divise par 2 a 3
- Throughput 1.75x a 2x sur B200 (Qwen3-8B, 240 requetes concurrentes : 4 290 tok/s vs 2 447 vanilla)
- Gap de precision faible qui se resorbe avec scale et RL
Publie en open : OpenMementos (228K traces annotees, 54% math / 19% code / 27% science, compression ratio median 0.16 pour math), la pipeline de generation de donnees, et un patch vLLM avec block masking natif.
Formation en 3 etapes (curriculum crucial) :
- Stage 1 : SFT causal attention sur traces annotees, apprendre le format block/memento
- Stage 2 : SFT avec block masking active, le modele apprend a compresser sous contrainte
- Stage 3 : RL optionnel (CISPO) pour refermer les gaps residuels
Decouverte inattendue : les blocs masques ne disparaissent pas completement. Leurs informations survivent implicitement dans les KV representations des mementos, qui les ont "attendus" pendant leur propre generation avant le masking. Un probing experiment avec passcodes injectes prouve que cette info est recuperable jusqu'a 7 blocs downstream. C'est un canal d'information implicite qui differe les approches restart-based (InftyThink, Accordion-Thinking) du vrai block masking. Le restart mode seul fait chuter AIME'24 de 66.1% a 50.8% — le canal KV implicite vaut 15 points de precision.
Applique a 5 modeles : Qwen2.5-7B, Qwen3 8B et 32B, Phi-4-Reasoning (14B), Olmo3-7B-Think. Marche sur tous. Seulement ~30K samples SFT par stage suffisent — donnees en volume normal, forme differente.
Vise explicitement les agents multi-tours : "The block-and-compress pattern maps onto any setting where a model accumulates a long trajectory of intermediate state and limited context windows become the bottleneck. Terminal and CLI agents are naturally multi-turn."
Analyse critique¶
Le vrai coup de force¶
Trois elements qui sortent du lot par rapport aux innombrables papiers de KV cache compression :
1. C'est un skill appris, pas une heuristique externe. Les approches existantes (LMCache, summarizer externe, orchestration) bolt une couche autour du modele. Memento entraine le modele a gerer son contexte lui-meme, en une seule generation call, sans restart. Papailiopoulos le dit explicitement : "figuring out what to remember and what to forget can and should be a skill that the model learns during training." C'est la bonne intuition, et elle marche.
2. Le data gen pipeline est propre et re-executable. Le probleme "segmenter et annoter des traces de raisonnement" n'est pas trivial — l'approche naive (LLM qui segmente en one-shot) echoue. Leur solution : scoring local LLM (atomic boundaries, scores 0-3) + dynamic programming global pour choisir les coupes, puis compression iterative avec judge LLM feedback (pass rate 28% → 92% apres 2 tours). C'est un pattern generalisable a d'autres taches de "SFT sur donnees complexes" bien au-dela du KV compression. Techniquement interessant independamment du sujet.
3. La decouverte du dual information stream est conceptuellement importante. C'est un resultat de nature physique sur les transformers, pas un tuning astuce. Les KV states encodent implicitement les blocs masques parce que les mementos les ont attendus pendant leur propre generation. C'est architecturalement inevitable avec les residual connections + causal attention + in-place masking. Ca veut dire qu'il y a une couche de "memoire latente" dans les agents qu'on peut techniquement pousser beaucoup plus loin qu'aujourd'hui.
Ce qui ralentit l'adoption¶
Deux frictions reelles :
-
Il faut fine-tuner le modele. Pas de drop-in. Pas de "ajoute ce flag". Tu dois SFT ton modele sur OpenMementos (ou generer tes propres traces) avec le curriculum 3-stages, puis le deployer. Pour une boite qui utilise Claude/GPT via API, c'est inaccessible — ca demande un modele open-source et un setup d'entrainement. Les seuls adopteurs immediats sont les maisons qui tournent deja Qwen / Olmo / Phi en production avec controle du fine-tuning.
-
Le vLLM patch est un fork, pas une contribution upstream. "Physical KV cache compaction rather than logical masking" : quand un bloc termine, les KV entries sont physiquement evictees. Ca marche mais demande un patch specifique de vLLM. Pas trivial a maintenir quand vLLM evolue.
La reception par iamsupersocks¶
iamsupersocks a fait un thread pedagogique en francais le 2026-04-08 (36 likes, 36 bookmarks — faible mais audience niche), expliquant KV cache + contexte + pourquoi c'est important. Il cite Memento comme "un peu niche, personne n'en parle, mais c'est... pas n'importe qui et pas n'importe quoi". C'est exact : Dimitris Papailiopoulos est professeur a UT Austin et chercheur senior chez MSR, pas un rando. Le paper n'a pas beaucoup de visibilite viral hors cercle ML academique mais il compte.
Un echange interessant dans le thread : @Evauw2vi repond que Anthropic a fait "mieux", ca s'appelle autodreams (lien vers https://x.com/Evauw2vi/status/2037982223178100987 du 2026-03-28, neuroscience-inspired). Pas verifie dans cette fiche mais a garder pour reference future.
Pertinence ProbatioVault¶
Impact modere — pas d'action immediate, mais un jalon important pour notre roadmap long-contexte.
Le mapping avec nos besoins¶
On a trois cas d'usage qui souffrent de la saturation contexte :
gov-lordorchestration multi-Ringbearers. Chaque Ringbearer tourne une session/govde plusieurs heures avec accumulation de contexte (spec, tests, plan, code contracts, multi-agents step 6b, REX). A terme, la compaction manuelle (notre mecanisme actuel) va atteindre ses limites.- Step 9 (REX) injection terminal.log. Plus une story est complexe, plus le terminal.log est long. L'injection complete depasse souvent la fenetre contexte utile.
- Confrontations iteratives Gate ⅝. A partir de v3, le contexte accumule les iterations precedentes + les corrections + les spec/plan/tests. On est en train de frôler les limites.
Memento resout techniquement ces trois problemes en compressant in-session, sans perdre les conclusions. C'est exactement ce dont on a besoin.
Pourquoi ce n'est pas pour aujourd'hui¶
Notre stack est : - Claude Opus via subprocess claude -p (modele hoste Anthropic, pas fine-tunable par nous) - ChatGPT via Codex plugin (idem, hoste OpenAI) - Ollama sur IA-Server (llama3.3:70b, qwen3.5:35b) — fine-tunable theoriquement
Les deux premiers sont hors scope Memento. Seul Ollama est candidat. Mais aujourd'hui on utilise Ollama pour les taches sensibles RGPD / juges adversariaux, pas pour l'orchestration principale du workflow. Investir dans un fine-tuning Memento sur Qwen3-8B local pour une utilisation de niche ne vaut probablement pas le cout d'ingenierie.
Quand ca deviendra pertinent :
- Si Anthropic integre nativement un mecanisme equivalent dans le Claude Platform (et rien n'empeche Anthropic de publier "autodreams" ou assimile d'ici quelques mois — c'est dans l'air du temps, cf. TODO #10 Compaction awareness).
- Si on bascule massivement sur Ollama pour le workflow principal (scenario TODO "self-host full" actuellement Q3+ 2026).
- Si le vLLM patch Memento arrive upstream et qu'Ollama herite du support natif.
Action recommandee¶
Pas d'action immediate. Trois items de veille a ajouter au TODO.md sous "Compaction awareness (TODO #10)" :
-
Watch OpenMementos + vLLM patch : verifier dans 2 mois si le patch est upstream, si des modeles "mementified" sont publies sur HuggingFace, et si les temps d'inference benchent vraiment 2x en production.
-
Watch autodreams Anthropic : la mention dans le thread iamsupersocks est a suivre. Si Anthropic publie, ca peut s'integrer directement dans notre stack via Claude Platform sans fine-tuning de notre cote.
-
Tester le pipeline data gen sur nos specs : c'est le seul morceau immediatement reutilisable. Leur pipeline (atomic sentences + LLM scoring + DP segmentation + iterative compression avec judge feedback) peut compresser nos specs longues en resumes denses a injecter en step 0. C'est un use case independant du KV cache, purement sur le corpus statique. Potentiel gain : reduire le contexte charge en step 0 de 10-20% sans perte d'info critique. POC 1 journee si l'envie vient.