{"notes":[{"id":"mamba/repeat-after-me","category":"mamba","legacyPath":"","legacySlug":"","legacyPaths":[],"title":"Repeat After Me","subtitle":"Le test de l'annuaire","author":"Z. Yuan","paperDate":"2024-02-01","publishedOn":"2025-12-23","paperTitle":"Repeat After Me: Transformers are Better than State Space Models at Copying","paperUrl":"https://arxiv.org/abs/2402.01032","bibliography":{"title":"Repeat After Me: Transformers are Better than State Space Models at Copying","authors":["Samy Jelassi","David Brandfonbrener","Sham M. Kakade","Eran Malach"],"url":"https://arxiv.org/abs/2402.01032","pdfUrl":"https://arxiv.org/pdf/2402.01032v2","codeUrl":"https://github.com/sjelassi/transformers_ssm_copy","preprint":{"id":"2402.01032","submittedOn":"2024-02-01","url":"https://arxiv.org/abs/2402.01032"},"publication":{"venue":"ICML","year":2024,"kind":"conference","url":"https://proceedings.mlr.press/v235/jelassi24a.html"},"citation":"@misc{mambarepeatafterme2024,\n  title = {{Repeat After Me: Transformers are Better than State Space Models at Copying}},\n  author = {Samy Jelassi and David Brandfonbrener and Sham M. Kakade and Eran Malach},\n  year = {2024},\n  eprint = {2402.01032},\n  archivePrefix = {arXiv},\n  url = {https://arxiv.org/abs/2402.01032}\n}\n","citationPath":"/content/papers/citations/mamba/repeat-after-me.6f1018ade730.bib"},"thumbnail":{"src":"/content/papers/assets/6d45fd8ab61191e1263c400e01bf76bdd9ef3534ecc4485835332074ea553443.png","width":1378,"height":416},"locale":"fr","path":"/content/papers/fr/mamba/repeat-after-me.55d6d5e637f7.md","headings":[{"id":"définition-du-problème","text":"Définition du problème","depth":2},{"id":"résolution-du-problème","text":"Résolution du problème","depth":2},{"id":"la-tâche-de-copie","text":"La tâche de copie","depth":3},{"id":"un-état-trop-petit-ne-peut-pas-tout-recopier","text":"Un état trop petit ne peut pas tout recopier","depth":3},{"id":"le-transformer-se-repère-par-n-grammes","text":"Le Transformer se repère par n-grammes","depth":3},{"id":"discussion","text":"Discussion","depth":2},{"id":"données-synthétiques-apprendre-vite-généraliser-loin","text":"Données synthétiques : apprendre vite, généraliser loin","depth":3},{"id":"dites-moi-dabord-quoi-chercher-et-tout-ira-bien","text":"Dites-moi d'abord quoi chercher, et tout ira bien","depth":3},{"id":"modèles-préentraînés-lannuaire","text":"Modèles préentraînés : l'annuaire","depth":3},{"id":"ce-que-larticle-laisse-ouvert","text":"Ce que l'article laisse ouvert","depth":3},{"id":"conclusion","text":"Conclusion","depth":2}],"anchorAliases":{},"guide":null,"relatedReading":[{"id":"mamba/jamba","relation":"referenced","topic":""}]},{"id":"mamba/jamba","category":"mamba","legacyPath":"","legacySlug":"","legacyPaths":[],"title":"Jamba","subtitle":"Un huitième d'attention","author":"Z. Yuan","paperDate":"2024-03-28","publishedOn":"2026-01-10","world":"external/jamba","paperTitle":"Jamba: A Hybrid Transformer-Mamba Language Model","paperUrl":"https://arxiv.org/abs/2403.19887","bibliography":{"title":"Jamba: A Hybrid Transformer-Mamba Language Model","authors":["Opher Lieber","Barak Lenz","Hofit Bata","Gal Cohen","Jhonathan Osin","Itay Dalmedigos","Erez Safahi","Shaked Meirom","Yonatan Belinkov","Shai Shalev-Shwartz","Omri Abend","Raz Alon","Tomer Asida","Amir Bergman","Roman Glozman","Michael Gokhman","Avashalom Manevich","Nir Ratner","Noam Rozen","Erez Shwartz","Mor Zusman","Yoav Shoham"],"url":"https://arxiv.org/abs/2403.19887","pdfUrl":"https://arxiv.org/pdf/2403.19887v2","codeUrl":null,"preprint":{"id":"2403.19887","submittedOn":"2024-03-28","url":"https://arxiv.org/abs/2403.19887"},"publication":null,"citation":"@misc{mambajamba2024,\n  title = {{Jamba: A Hybrid Transformer-Mamba Language Model}},\n  author = {Opher Lieber and Barak Lenz and Hofit Bata and Gal Cohen and Jhonathan Osin and Itay Dalmedigos and Erez Safahi and Shaked Meirom and Yonatan Belinkov and Shai Shalev-Shwartz and Omri Abend and Raz Alon and Tomer Asida and Amir Bergman and Roman Glozman and Michael Gokhman and Avashalom Manevich and Nir Ratner and Noam Rozen and Erez Shwartz and Mor Zusman and Yoav Shoham},\n  year = {2024},\n  eprint = {2403.19887},\n  archivePrefix = {arXiv},\n  url = {https://arxiv.org/abs/2403.19887}\n}\n","citationPath":"/content/papers/citations/mamba/jamba.11fef67c0c54.bib"},"thumbnail":{"src":"/content/papers/assets/fa186580641946194f81adf74136e29431c3f6dd3fa63e2ecf8a1c0c29d3e5a0.png","width":1056,"height":1000},"locale":"fr","path":"/content/papers/fr/mamba/jamba.37b948811e3b.md","headings":[{"id":"définition-du-problème","text":"Définition du problème","depth":2},{"id":"résolution-du-problème","text":"Résolution du problème","depth":2},{"id":"le-bloc-jamba","text":"Le bloc Jamba","depth":3},{"id":"calculer-le-cache-kv-à-la-main","text":"Calculer le cache KV à la main","depth":3},{"id":"discussion","text":"Discussion","depth":2},{"id":"face-à-mixtral","text":"Face à Mixtral","depth":3},{"id":"un-pour-trois-ou-un-pour-sept","text":"Un pour trois ou un pour sept ?","depth":3},{"id":"où-mamba-pur-bloque-t-il","text":"Où Mamba pur bloque-t-il ?","depth":3},{"id":"trois-autres-résultats","text":"Trois autres résultats","depth":3},{"id":"conclusion","text":"Conclusion","depth":2}],"anchorAliases":{},"guide":null,"relatedReading":[{"id":"mamba/repeat-after-me","relation":"referenced","topic":""},{"id":"mamba/mamba-2-hybrid","relation":"referenced","topic":""}]}],"text":"Deux mois après la sortie de Mamba, Samy Jelassi, David Brandfonbrener, Sham M. Kakade et Eran Malach, de l'université Harvard, mettent en ligne cet article, publié ensuite à ICML 2024. Le titre livre directement la conclusion : pour recopier, les Transformers font mieux que les modèles à espace d'état.\n\nRecopier, voilà une capacité qui semble bien ennuyeuse. Pourtant, quand vous confiez un document à un modèle pour qu'il y retrouve une date, un nom ou une ligne de code, il ne fait rien d'autre qu'extraire tel quel un court passage du contexte. S'il n'y arrive pas, une perplexité aussi basse soit-elle ne sert à rien.\n\n## Définition du problème\n\nLes auteurs regroupent une grande famille de modèles : S4, Mamba, les RNN classiques, l'attention linéaire et les RNN parallèles, qui s'entraînent en parallèle. Leur point commun : quel que soit le token atteint, ils ne s'appuient que sur un état de **taille fixe, indépendante de la longueur de la séquence**. Les auteurs désignent cette classe sous le nom de **GSSM** (*generalized state space models*, modèles à espace d'état généralisés).\n\nL'argument de vente des GSSM est clair : prédire chaque token ne demande que $O(1)$ de mémoire. Le Transformer, lui, doit garder tous les tokens déjà vus dans son cache KV, qui grossit avec la longueur.\n\nLa question des auteurs : économiser cette mémoire a-t-il un prix ? Et si oui, lequel ?\n\nPour le savoir, ils choisissent la tâche la plus simple qui soit : recopier.\n\n## Résolution du problème\n\n### La tâche de copie\n\nLe format de la tâche est le suivant :\n\n```text\n<BOS> x1 x2 ... xL <COPY>\n```\n\nAprès avoir vu `<COPY>`, le modèle doit reproduire $x_1$ à $x_L$ sans la moindre faute. La précision est mesurée au niveau de la chaîne : seule une chaîne entièrement exacte compte comme réussie.\n\n### Un état trop petit ne peut pas tout recopier\n\nCommençons par le côté des GSSM. L'intuition est simple : pour reproduire toute la chaîne telle quelle, il faut d'abord l'avoir mémorisée en entier. Mais où ? Uniquement dans cet état de taille fixe.\n\nLes auteurs notent $|\\mathcal{S}|$ le nombre de valeurs distinctes que l'état peut prendre ; sa capacité mémoire en bits est $\\text{mem}(\\mathcal{S})=\\log|\\mathcal{S}|$. Si les caractères sont tirés uniformément parmi $D$ symboles et que la chaîne est de longueur $L$, il existe $D^L$ entrées possibles, alors que l'état peut en distinguer au plus $|\\mathcal{S}|$. Le taux d'erreur désigne ici la probabilité de ne pas recopier toute la chaîne à l'identique. Le théorème 2.7 donne la borne inférieure suivante :\n\n$$\n\\text{err}(H) \\ge 1-\\frac{|\\mathcal{S}|}{D^L}\n$$\n\n(Le corps de l'article imprime une inégalité stricte, mais la preuve par dénombrement de l'annexe D aboutit à une inégalité large ; nous suivons ici la preuve.)\n\nSous une forme plus facile à retenir (corollaire 2.8) : dès que l'état compte moins de $L\\log_2 D-1$ bits, le taux d'erreur dépasse la moitié.\n\nCalculons quelques valeurs pour fixer les idées :\n\n```python\nimport math\n\nfor D, L in [(26, 300), (26, 1000), (50_000, 2_000)]:\n    print(f\"Vocabulaire {D:>6}, longueur {L:>5} : environ {L * math.log2(D):,.0f} bits d'information\")\n\nstate_bits = 1000 * 32           # 1,000 nombres fp32\nprint(f\"1,000 fp32 = {state_bits:,} bits, soit au plus environ {state_bits / math.log2(50_000):,.0f} tokens d'un vocabulaire de 50,000\")\n```\n\n```text\nVocabulaire     26, longueur   300 : environ 1,410 bits d'information\nVocabulaire     26, longueur  1000 : environ 4,700 bits d'information\nVocabulaire  50000, longueur  2000 : environ 31,219 bits d'information\n1,000 fp32 = 32,000 bits, soit au plus environ 2,050 tokens d'un vocabulaire de 50,000\n```\n\nL'exemple de la dernière ligne vient des auteurs eux-mêmes : 1 000 nombres flottants de 32 bits contiennent assez d'information pour stocker au moins 2 000 tokens.\n\nCette borne théorique est donc très lâche. L'état réel de Mamba dépasse de loin 1 000 nombres, et les 1 410 bits nécessaires pour recopier 300 lettres ne posent aucun problème. Les auteurs le reconnaissent : la théorie établit seulement que « si l'information ne tient pas dans l'état, la copie échoue forcément » ; quant à savoir si un modèle dont l'état « peut la contenir » apprendra effectivement à y ranger la chaîne, seule l'expérience peut le dire.\n\n### Le Transformer se repère par n-grammes\n\nDe l'autre côté, les auteurs construisent un Transformer à deux blocs et prouvent que la longueur des chaînes qu'il sait recopier peut **croître exponentiellement** avec la dimension du modèle (théorème 2.3 ; l'introduction parle plutôt du nombre de têtes d'attention). L'erreur, elle, est contrôlée par la probabilité qu'un n-gramme se répète dans la chaîne, probabilité faible pour une chaîne aléatoire uniforme.\n\nLa méthode ressemble beaucoup à la façon dont une personne recopie un long texte :\n\n1. Regarder les derniers caractères qu'elle vient d'écrire, par exemple les 3 derniers.\n2. Retrouver dans l'original l'endroit où apparaissent ces 3 caractères.\n3. Écrire le caractère qui suit cet endroit.\n\nC'est une recherche dans une table de n-grammes. L'attention se prête naturellement à « comparer le fragment courant à chaque position précédente » ; pour qu'une tête d'attention ne regarde que les $m$ derniers tokens et compose ainsi le hachage d'un n-gramme, les auteurs conçoivent une variante d'ALiBi à coupure franche, baptisée **Hard-ALiBi** : au-delà de $m$ positions, le biais vaut $-\\infty$ ; en deçà, il vaut 0.\n\nLe cas d'échec est tout aussi clair : si l'original contient deux n-grammes identiques suivis de caractères différents, le modèle ne sait plus à partir duquel poursuivre la copie. Dans une chaîne aléatoire uniforme, la probabilité d'une telle répétition décroît exponentiellement avec $n$ (lemme 2.4).\n\n## Discussion\n\n### Données synthétiques : apprendre vite, généraliser loin\n\n[![Trois graphiques en courbes. (a) En abscisse, le nombre d'exemples d'entraînement (échelle logarithmique) ; en ordonnée, la précision de copie : les Transformers dotés de quatre encodages positionnels différents approchent 100 % en moins de cent mille exemples, Mamba a besoin d'environ 2 millions d'exemples, le LSTM reste proche de 0. (b) En abscisse, la longueur de la chaîne : tous les modèles sont à 100 % jusqu'à la longueur d'entraînement de 50 ; au-delà, le LSTM et le Transformer avec RoPE tombent aussitôt à 0, Mamba tient jusqu'à environ 70, NoPE jusqu'à environ 90, ALiBi jusqu'à environ 130, et Hard-ALiBi reste proche de 100 % jusqu'à 1 000. (c) En abscisse, le nombre d'entrées de l'annuaire : Pythia 1.4B et 2.8B gardent environ 90 % à 200 entrées, 410M descend à environ 50 %, les trois modèles Mamba passent tous sous 20 % à 100 entrées et approchent 0 à 200](/content/papers/assets/6d45fd8ab61191e1263c400e01bf76bdd9ef3534ecc4485835332074ea553443.png)](/content/papers/assets/6d45fd8ab61191e1263c400e01bf76bdd9ef3534ecc4485835332074ea553443.png)\n\n*Figure 1 de l'article, extraite de la [**page 2 du PDF v2**](https://arxiv.org/pdf/2402.01032v2#page=2), CC BY 4.0. (a) et (b) : modèles entraînés à partir de zéro, environ 160 millions de paramètres pour le Transformer et Mamba, environ 40 millions pour le LSTM ; (c) : modèles préentraînés existants.*\n\nCommençons par le graphique de gauche. Tous les modèles sont entraînés à partir de zéro : environ 160 millions de paramètres pour le Transformer et Mamba ; le LSTM, instable à cette taille, n'en a qu'environ 40 millions. Les chaînes comptent au plus 300 caractères, tirés parmi les 26 lettres de l'alphabet anglais.\n\nLes quatre Transformers apprennent la tâche en moins de cent mille exemples ; Mamba en demande environ deux millions. Selon les auteurs, le Transformer a besoin d'environ 100 fois moins d'exemples. Le LSTM, lui, n'apprend rien avec ce nombre d'exemples.\n\nLe graphique du milieu mesure la généralisation en longueur : entraînement sur des chaînes d'au plus 50 caractères, test sur des chaînes plus longues. Mamba et le LSTM tombent vite à 0 dès qu'ils dépassent la longueur d'entraînement. Pour le Transformer, tout dépend de l'encodage positionnel : la version RoPE chute elle aussi rapidement, NoPE et ALiBi tiennent plus loin, et la version Hard-ALiBi reste presque parfaite jusqu'à 1 000.\n\nLes auteurs vérifient aussi que le Transformer utilise réellement une table de n-grammes : en insérant volontairement deux n-grammes identiques dans la chaîne, ils constatent qu'une répétition de longueur 4 ou moins n'a presque aucun effet, et que la précision commence à baisser à partir de 5, comme le ferait un modèle 5-gramme parfait.\n\n### Dites-moi d'abord quoi chercher, et tout ira bien\n\nUne expérience comparative mérite le détour. La tâche : on fournit une chaîne, puis l'un de ses n-grammes comme clé, et le modèle doit produire les $k$ tokens qui suivent cette clé. Les auteurs en proposent deux versions.\n\nLes deux versions sont entraînées sur des chaînes d'au plus 30 caractères, puis testées jusqu'à une longueur de 100 :\n\n- **Clé à la fin** (*suffix key*) : le modèle ne sait ce qu'il doit chercher qu'après avoir lu toute la chaîne. Le Transformer s'en sort encore bien jusqu'à 100 ; les GSSM échouent dès qu'ils quittent la longueur d'entraînement.\n- **Clé au début** (*prefix key*) : le modèle sait dès le départ ce qu'il cherche. Pendant la lecture, il lui suffit de guetter cette clé et, quand elle apparaît, de noter les quelques caractères qui suivent. Cette fois, les GSSM restent parfaits sur toute la plage et battent même les Transformers NoPE et ALiBi.\n\nSeul change le moment où la question arrive.\n\nUn état de taille fixe excelle à « résumer au fil de la lecture ». S'il sait d'avance quoi garder, il peut jeter le reste ; si la question n'arrive qu'après la lecture, il doit d'abord conserver tout ce qui pourrait servir. Dès que l'information dépasse la capacité de l'état, plus rien ne garantit qu'on pourra la retrouver en entier.\n\n### Modèles préentraînés : l'annuaire\n\nLes expériences précédentes portaient sur de petits modèles entraînés à partir de zéro. Les auteurs comparent ensuite des modèles préentraînés existants : Pythia (Transformer) de 410M à 2.8B, face à Mamba de 360M à 2.8B. Les deux familles sont entraînées sur Pile avec le même tokenizer ; la principale différence est donc l'architecture. Détail important : à taille égale, Mamba a même une perplexité légèrement plus basse sur Pile.\n\nLe test le plus célèbre est celui de l'annuaire, sur le graphique de droite. Le prompt contient un annuaire généré aléatoirement, avec des lignes comme celle-ci :\n\n```text\nJohn Powell: 609-323-7777\n```\n\nSuivent deux exemples de questions-réponses, puis on demande le numéro d'une personne. Plus l'annuaire s'allonge, plus Mamba décroche vite ; vers 70 entrées, le plus petit Pythia 410M bat déjà le plus grand Mamba 2.8B.\n\n[![Trois graphiques en courbes. (a) Copie de chaînes en langage naturel tirées de C4 : les trois Pythia gardent entre environ 80 % et près de 100 % à 500 tokens, les trois Mamba baissent avec la longueur, et le 2.8B est déjà sous 10 % à 500 tokens. (b) Copie après mélange de l'ordre des mots : Pythia 1.4B et 2.8B reculent légèrement, 410M descend à environ 50 %, les trois Mamba tombent à 0 avant 300 tokens au plus tard. (c) F1 en questions-réponses SQuAD : les deux familles sont proches sur les passages courts, et plus le passage s'allonge, plus Mamba recule](/content/papers/assets/8d14006fc09d6d17409ad80cc3ab8e3574c16a5a2b26e22539149dda61ed153d.png)](/content/papers/assets/8d14006fc09d6d17409ad80cc3ab8e3574c16a5a2b26e22539149dda61ed153d.png)\n\n*Figure 7 de l'article, extraite de la [**page 8 du PDF v2**](https://arxiv.org/pdf/2402.01032v2#page=8), CC BY 4.0.*\n\nTrois autres tests vont dans le même sens :\n\n1. **Recopier du langage naturel** : on extrait un passage de C4, on le place deux fois dans le prompt, puis on ajoute le premier mot d'une troisième copie et on demande au modèle de poursuivre. Même le plus petit Pythia bat largement le plus grand Mamba.\n2. **Recopier après mélange des mots** : le langage naturel se compresse ; une fois l'ordre des mots mélangé, la tâche devient plus difficile. Les deux familles reculent, Mamba davantage : à 300 tokens, le plus grand Mamba est déjà à 0. Cela concorde avec l'idée qu'« un état fixe ne tient que grâce à la compression ».\n3. **Questions-réponses SQuAD** : à 2,8B contre 2,8B, les deux modèles se valent sur les passages courts ; plus le passage s'allonge, plus le F1 de Mamba chute vite.\n\n### Ce que l'article laisse ouvert\n\nDans la section consacrée aux travaux connexes, les auteurs citent aussi des exemples en sens inverse : certaines tâches ne demandent de suivre qu'un état minuscule, comme la modélisation du langage flip-flop, où le LSTM généralise sans peine tandis que le Transformer échoue ; pour des séquences très longues comme l'ADN, un état fixe est aussi plus réaliste.\n\nL'article porte donc sur les tâches **gourmandes en mémoire**. Il n'affirme pas que les GSSM sont forcément moins bons sur les autres tâches, et il ne teste pas ce que donnerait un mélange des deux types de couches.\n\n## Conclusion\n\nAvec cet article, l'idée qu'« un état de taille fixe a un prix » passe de l'intuition au résultat mesurable :\n\n1. **En théorie**, la longueur qu'un Transformer à deux blocs peut recopier croît exponentiellement avec la dimension du modèle ; dès que l'état d'un GSSM compte moins de $L\\log_2 D-1$ bits, la probabilité de mal recopier une chaîne aléatoire uniforme dépasse la moitié.\n2. **En pratique**, la limite apparaît souvent plus tôt. Même avec un état assez grand, Mamba a du mal à apprendre à y ranger toute la chaîne : il lui faut 100 fois plus d'exemples d'entraînement, et il échoue dès que la longueur change.\n3. **Les modèles préentraînés n'y échappent pas.** Malgré une perplexité légèrement plus basse, Mamba s'incline face à des Pythia de même taille, voire bien plus petits, sur l'annuaire, la copie et les questions-réponses sur passages longs.\n\nLa comparaison « savoir d'avance quoi chercher, et tout va bien » est sans doute la leçon principale de cet article. Elle montre à quoi sert un état fixe et dans quels cas il est désavantagé, et elle donne une raison très directe d'associer les modèles à état à une attention capable de revenir chercher en arrière.\n\n\n> [!TIP]\n> \n> Jamba, publié par AI21 deux mois plus tard, conserve justement quelques couches d'attention entre les couches Mamba ; dans ses ablations, l'équipe observe elle aussi qu'un Mamba pur s'écarte souvent du format de réponse fixé par les exemples few-shot :\n> \n> - **[[24.03] Jamba : un huitième d'attention](/blog/papers/mamba/jamba)**\n","imageSizes":{"/content/papers/assets/6d45fd8ab61191e1263c400e01bf76bdd9ef3534ecc4485835332074ea553443.png":{"width":1378,"height":416},"/content/papers/assets/8d14006fc09d6d17409ad80cc3ab8e3574c16a5a2b26e22539149dda61ed153d.png":{"width":1378,"height":389}}}
