{"notes":[{"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":""}]},{"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/mamba-2-hybrid","category":"mamba","legacyPath":"","legacySlug":"","legacyPaths":[],"title":"Mamba-2-Hybrid","subtitle":"Une mémoire floue","author":"Z. Yuan","paperDate":"2024-06-12","publishedOn":"2026-01-22","paperTitle":"An Empirical Study of Mamba-based Language Models","paperUrl":"https://arxiv.org/abs/2406.07887","bibliography":{"title":"An Empirical Study of Mamba-based Language Models","authors":["Roger Waleffe","Wonmin Byeon","Duncan Riach","Brandon Norick","Vijay Korthikanti","Tri Dao","Albert Gu","Ali Hatamizadeh","Sudhakar Singh","Deepak Narayanan","Garvit Kulshreshtha","Vartika Singh","Jared Casper","Jan Kautz","Mohammad Shoeybi","Bryan Catanzaro"],"url":"https://arxiv.org/abs/2406.07887","pdfUrl":"https://arxiv.org/pdf/2406.07887v1","codeUrl":"https://github.com/NVIDIA/Megatron-LM","preprint":{"id":"2406.07887","submittedOn":"2024-06-12","url":"https://arxiv.org/abs/2406.07887"},"publication":null,"citation":"@misc{mambamamba2hybrid2024,\n  title = {{An Empirical Study of Mamba-based Language Models}},\n  author = {Roger Waleffe and Wonmin Byeon and Duncan Riach and Brandon Norick and Vijay Korthikanti and Tri Dao and Albert Gu and Ali Hatamizadeh and Sudhakar Singh and Deepak Narayanan and Garvit Kulshreshtha and Vartika Singh and Jared Casper and Jan Kautz and Mohammad Shoeybi and Bryan Catanzaro},\n  year = {2024},\n  eprint = {2406.07887},\n  archivePrefix = {arXiv},\n  url = {https://arxiv.org/abs/2406.07887}\n}\n","citationPath":"/content/papers/citations/mamba/mamba-2-hybrid.2add9f814f3a.bib"},"thumbnail":{"src":"/content/papers/assets/f2e0e285e0d5337a787c2e32537b37089640a036c9339c3574c147a3cbaad4eb.png","width":1245,"height":322},"locale":"fr","path":"/content/papers/fr/mamba/mamba-2-hybrid.11d049be2f70.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":"dabord-les-ssm-purs","text":"D'abord, les SSM purs","depth":3},{"id":"lannuaire-et-la-mémoire-floue","text":"L'annuaire et la mémoire floue","depth":3},{"id":"combien-dattention-réintroduire","text":"Combien d'attention réintroduire ?","depth":3},{"id":"calculer-la-mémoire-à-la-main","text":"Calculer la mémoire à la main","depth":3},{"id":"discussion","text":"Discussion","depth":2},{"id":"12-tâches-standards","text":"12 tâches standards","depth":3},{"id":"contexte-long-souvent-à-la-hauteur-en-retrait-sur-le-multi-documents","text":"Contexte long : souvent à la hauteur, en retrait sur le multi-documents","depth":3},{"id":"conclusion","text":"Conclusion","depth":2}],"anchorAliases":{},"guide":null,"relatedReading":[{"id":"mamba/repeat-after-me","relation":"referenced","topic":""},{"id":"mamba/mamba-2","relation":"referenced","topic":""}]}],"text":"En décembre 2023, Mamba égalait en modélisation du langage les Transformers de même taille, avec un modèle à espace d'état sélectif en temps linéaire. Mais le plus grand modèle de l'article plafonnait à 2,8B, et tout le monde se posait la même question : à l'échelle d'un produit, tiendrait-il le coup ?\n\nTrois mois plus tard, la société israélienne AI21 Labs livre un modèle de 52B paramètres sous licence Apache 2.0, baptisé Jamba. Il fait bien la part belle aux couches Mamba, mais garde une couche d'attention sur huit.\n\nDans le fil Hacker News consacré à sa sortie, quelqu'un demande sans détour : puisqu'on a Mamba, pourquoi garder des couches d'attention ? La réponse, juste en dessous, est brève : Mamba est mauvais avec les longs contextes, il ne retient pas les numéros de téléphone. [Hacker News, 2024-03-28](https://news.ycombinator.com/item?id=39853958)\n\nCette réponse renvoyait à une étude sur des tâches qui exigent de recopier le texte exactement, comme un long annuaire ; nous lui avons consacré une note à part, et cette étude recense aussi les situations où les modèles à état excellent. L'article de Jamba, lui, tire de ses propres ablations une autre raison, plus concrète.\n\n## Définition du problème\n\nImaginons d'abord les deux factures que doit régler un modèle chargé de longs documents.\n\nLa première est la mémoire. Une couche d'attention conserve une clé (*key*) et une valeur (*value*) pour chaque token lu ; plus le document est long, plus ce cache grossit, et c'est finalement lui qui fixe la longueur de contexte qu'un GPU peut accueillir. La seconde est le temps : chaque nouveau token généré doit être comparé à tout le contexte, ce qui freine le débit sur les textes longs.\n\nLes modèles de type Mamba paient moins sur les deux tableaux, puisqu'ils se contentent de mettre à jour un état de taille fixe. Mais dans les évaluations d'AI21, à taille égale, un modèle de langage entièrement Mamba reste un peu en deçà du Transformer.\n\nRéunir les deux types de couches dans un même modèle avait déjà été tenté, mais à petite échelle : les expériences qui alternaient Mamba et attention s'arrêtaient vers 1,3B, et StripedHyena, poussé jusqu'à 7B, restait derrière Mistral-7B, purement attentionnel.\n\nLes vraies questions de cet article ne trouvent donc de réponse qu'à grande échelle : dans quelle proportion mélanger les deux types de couches ? Un MoE vient-il les perturber ? À plusieurs dizaines de milliards de paramètres, l'entraînement reste-t-il stable ?\n\n## Résolution du problème\n\n### Le bloc Jamba\n\n[![Schéma de l'architecture Jamba. À gauche, un bloc Jamba de huit couches, de bas en haut : Mamba, Mamba MoE, Mamba, Mamba MoE, Transformer, Mamba MoE, Mamba, Mamba MoE. À droite, la structure interne des quatre types de couches : chacune enchaîne un RMSNorm suivi d'Attention ou de Mamba, puis un RMSNorm suivi d'un MLP ou d'un MoE, chaque partie ayant sa connexion résiduelle](/content/papers/assets/fa186580641946194f81adf74136e29431c3f6dd3fa63e2ecf8a1c0c29d3e5a0.png)](/content/papers/assets/fa186580641946194f81adf74136e29431c3f6dd3fa63e2ecf8a1c0c29d3e5a0.png)\n\n*Figure 1 de l'article, extraite de la [**page 3 du PDF v2**](https://arxiv.org/pdf/2403.19887v2#page=3), CC BY-SA 4.0. À gauche, un bloc Jamba ; à droite, la structure interne des quatre types de couches.*\n\nCommençons par la droite. Chaque couche comporte deux parties : la première mélange l'information le long de la séquence, avec Attention ou Mamba ; la seconde transforme les caractéristiques token par token, avec un MLP classique ou un MoE. Chaque partie est précédée d'un RMSNorm et entourée d'une connexion résiduelle.\n\nEn combinant ces options deux à deux, on obtient les quatre types de couches de la figure. Jamba n'utilise en fait jamais le type Attention MoE.\n\nPassons à gauche. Un bloc Jamba compte huit couches ; en partant du bas, la cinquième est la seule couche Transformer, les sept autres sont des couches Mamba ; un MoE apparaît une couche sur deux.\n\nLes auteurs décrivent cet espace de conception par cinq paramètres :\n\n- $l$ : le nombre de couches par bloc.\n- $a:m$ : le rapport entre couches d'attention et couches Mamba.\n- $e$ : l'intervalle, en couches, entre deux remplacements du MLP par un MoE.\n- $n$ : le nombre d'experts par couche MoE.\n- $K$ : le nombre d'experts choisis pour chaque token.\n\nLa version publiée utilise $l=8$, $a:m=1:7$, $e=2$, $n=16$ et $K=2$ : quatre blocs empilés donnent 32 couches, dont 4 seulement sont des couches d'attention. Le modèle compte 52B paramètres au total, dont 12B actifs par token. Avec des poids int8, il tient sur un seul GPU de 80GB.\n\nLe reste suit pour l'essentiel la recette standard de l'époque : GQA pour l'attention, SwiGLU comme activation, un vocabulaire de 64K, chaque chiffre découpé en un token distinct. Deux points sortent de l'ordinaire, et la discussion y reviendra : un RMSNorm ajouté à l'intérieur des couches Mamba, et l'absence, dans tout le modèle, d'encodage positionnel de type RoPE.\n\n### Calculer le cache KV à la main\n\nAvec seulement 4 couches d'attention, combien économise-t-on vraiment ? La Table 1 de l'article donne le cache KV pour un contexte de 256K en 16 bits :\n\n| Modèle | Paramètres totaux | Paramètres actifs | Cache KV (256K) |\n| --- | ---: | ---: | ---: |\n| Llama-2 | 6,7B | 6,7B | 128GB |\n| Mistral | 7,2B | 7,2B | 32GB |\n| Mixtral | 46,7B | 12,9B | 32GB |\n| Jamba | 52B | 12B | 4GB |\n\n*Tableau : Table 1 de l'article.*\n\nRefaisons le calcul. Chaque couche d'attention stocke, pour chaque token, une clé et une valeur ; Mixtral comme Jamba ont 8 têtes KV de 128 dimensions (d'après leurs fichiers de configuration sur Hugging Face), et en bf16 chaque nombre occupe 2 octets :\n\n```python\ndef kv_bytes(attn_layers, kv_heads, head_dim, tokens, bytes_per=2):\n    return 2 * attn_layers * kv_heads * head_dim * bytes_per * tokens\n\nGiB = 2**30\nfor name, layers in [(\"Mixtral (32 couches d'attention)\", 32), (\"Jamba (4 couches d'attention)\", 4)]:\n    per_token = kv_bytes(layers, 8, 128, 1)\n    print(f\"{name} : {per_token // 1024} KiB par token ; 256K tokens : {kv_bytes(layers, 8, 128, 262144) / GiB:.0f} GiB au total\")\n\n# Les 28 couches Mamba de Jamba : largeur interne 2×4096, dimension d'état 16 par canal\nmamba_layers, d_inner, d_state = 28, 2 * 4096, 16\nssm = mamba_layers * d_inner * d_state\nprint(f\"État SSM des 28 couches Mamba : {ssm:,} valeurs, en bf16 environ {ssm * 2 / 2**20:.0f} MiB\")\n```\n\n```text\nMixtral (32 couches d'attention) : 128 KiB par token ; 256K tokens : 32 GiB au total\nJamba (4 couches d'attention) : 16 KiB par token ; 256K tokens : 4 GiB au total\nÉtat SSM des 28 couches Mamba : 3,670,016 valeurs, en bf16 environ 7 MiB\n```\n\nLes deux chiffres correspondent à la Table 1 (le tableau original indique des GB ; nous utilisons ici partout des GiB, comptés en puissances de 2). Le facteur huit vient tout simplement de l'écart entre 32 et 4 couches d'attention.\n\nLa dernière ligne correspond à l'état que la partie Mamba doit transporter. Que le contexte fasse 1K ou 256K, sa taille ne change pas. (Seul l'état SSM est compté ici ; le tampon de la convolution s'y ajoute, lui aussi minuscule.)\n\n\n> [!NOTE]\n> \n> La ligne Llama-2 est quatre fois plus grande parce que sa version 7B n'utilise pas GQA : chacune des 32 têtes d'attention a ses propres clés et valeurs. Mistral passe à 8 groupes de têtes KV, ce qui divise le cache KV par quatre.\n\n\n## Discussion\n\n### Face à Mixtral\n\nCommençons par les benchmarks standards. Les auteurs se comparent surtout à Mixtral 8x7B, dont les nombres de paramètres totaux et actifs sont très proches de ceux de Jamba. Quelques résultats :\n\n| Benchmark | Mixtral | Jamba |\n| --- | ---: | ---: |\n| HellaSwag (10-shot) | 86,7 | 87,1 |\n| WinoGrande (5-shot) | 81,2 | 82,5 |\n| GSM8K (3-shot CoT) | 60,4 | 59,9 |\n| HumanEval (pass@1) | 34,8 | 29,3 |\n| MMLU (5-shot) | 70,6 | 67,4 |\n| BBH (3-shot) | 50,3 | 45,4 |\n\n*Tableau : extrait de la Table 2 de l'article.*\n\nLes auteurs parlent de résultats « comparables sur la plupart des tâches ». Dans le détail, Jamba est légèrement devant sur HellaSwag et WinoGrande dans ce tableau ; dans le tableau complet, il accuse quelques points de retard sur ARC-E et ARC-C, ainsi que sur MMLU, BBH et HumanEval.\n\nL'avantage de Jamba tient surtout au coût du contexte long. D'après la Figure 2 de l'article, sur un seul A100 80GB, Jamba loge un contexte environ deux fois plus long que Mixtral et sept fois plus long que Llama-2-70B, soit environ 140K tokens. La Figure 3 mesure le débit de bout en bout, encodage et décodage compris, avec 512 tokens générés dans les deux configurations : sur un seul A100, en int8, avec un contexte de 8K, Jamba accepte un lot de 16 là où Mixtral ne passe pas, et l'écart de débit atteint environ un facteur trois ; sur quatre A100, sans quantification, avec un lot de 1 et un contexte de 128K, Jamba est là aussi environ trois fois plus rapide.\n\nLes auteurs préviennent que ces débits ne valent qu'en comparaison relative : la communauté optimise depuis six ans l'inférence des Transformers purs, ce dont Jamba ne bénéficiait pas encore.\n\nPour le contexte long, les auteurs font deux tests. Dans celui de l'aiguille dans une botte de foin (*needle-in-a-haystack*), Jamba retrouve presque toujours l'aiguille jusqu'à 256K ; ils soulignent que cela ne repose que sur 4 couches d'attention. Ils reprennent aussi les cinq plus longs jeux de données de L-Eval au format 3-shot : F1 moyen de 0,44, contre 0,43 pour Mixtral.\n\n### Un pour trois ou un pour sept ?\n\nPour choisir le rapport, les auteurs testent de petits modèles de 1,3B paramètres entraînés sur 250B tokens :\n\n| Modèle | OLLM | HellaSwag | WinoGrande | NQ |\n| --- | ---: | ---: | ---: | ---: |\n| Attention pure | 36,4 | 62,4 | 59,6 | 14,5 |\n| Mamba pur | 36,1 | 62,6 | 59,4 | 14,5 |\n| Hybride 1:3 | 37,2 | 65,1 | 61,7 | 16,5 |\n| Hybride 1:7 | 37,2 | 65,1 | 61,7 | 16,0 |\n\n*Tableau : extrait de la Table 4 de l'article, sans MoE. OLLM est le score agrégé du classement Open LLM de Hugging Face, reproduit par les auteurs.*\n\nLes deux rapports donnent des résultats presque identiques, tous deux meilleurs qu'une architecture unique. Les auteurs retiennent 1:7, plus économe en calcul. Refaite à 7B et 50B tokens, la comparaison donne un OLLM de 35,3 pour Mamba pur, un peu sous les 36,1 de l'attention pure ; l'hybride arrive en tête avec 36,6 et garde aussi, du début à la fin, la perte d'entraînement la plus basse.\n\nUne précaution : les deux ablations portent respectivement sur 250B et 50B tokens, et l'article ne publie pas le volume d'entraînement total du modèle diffusé. La conclusion sur le rapport se limite donc, pour l'instant, à ces réglages d'ablation.\n\n### Où Mamba pur bloque-t-il ?\n\nC'est le passage le plus intéressant de l'article.\n\nMamba pur s'en sort bien en perplexité et sur les benchmarks généraux, mais chute nettement sur trois jeux de données :\n\n| Modèle | IMDB | QuAC | NarrativeQA |\n| --- | ---: | ---: | ---: |\n| Attention pure | 84,1 | 27,9 | 45,8 |\n| Mamba pur | 48,8 | 20,2 | 27,7 |\n| Hybride | 90,9 | 26,6 | 43,7 |\n\n*Tableau : Table 6 de l'article, modèles de 1,3B entraînés sur 250B tokens.*\n\nIMDB est une tâche de classification de sentiment sur des critiques de films, avec deux réponses possibles : Positive ou Negative. En examinant les sorties de Mamba pur, les auteurs constatent qu'il ignore souvent le format et répond « Very Good », « Funny », « Bad », voire « 3/10 ».\n\nPour certaines, le sentiment est peut-être le bon ; elles ne suivent simplement pas le format des exemples précédents.\n\nDans le prompt few-shot, chaque exemple prend la forme « critique + Sentiment: étiquette ». Pour reprendre ce format, une façon de faire consiste, arrivé au dernier deux-points, à regarder comment les étiquettes des exemples précédents étaient écrites. Cette capacité à « chercher en arrière, puis recopier », des travaux antérieurs l'ont rattachée aux **induction heads** des Transformers : des têtes d'attention qui retrouvent plus haut un motif identique, puis copient le token qui le suivait.\n\nLes auteurs supposent que, sans attention, ce mécanisme a du mal à émerger de lui-même pendant l'entraînement de Mamba pur. Avec l'hybride 1:7 (trois couches d'attention au total dans ce modèle de 1,3B), le problème disparaît. (Le « Mamba pur » alterne ici couches Mamba et MLP ; seule l'attention lui manque.)\n\n[![Extrait d'un prompt few-shot IMDB : trois exemples, chacun suivi d'une étiquette Sentiment, Negative, Negative et Positive, surlignées dans des bleus plus ou moins foncés ; le prompt s'arrête sur Sentiment suivi d'un deux-points](/content/papers/assets/ab6a0dbf1cacc4a6045d01ccebacef40614338c0765fdb2052bd1fa19ffcd408.png)](/content/papers/assets/ab6a0dbf1cacc4a6045d01ccebacef40614338c0765fdb2052bd1fa19ffcd408.png)\n\n*Figure 8 de l'article, extraite de la [**page 12 du PDF v2**](https://arxiv.org/pdf/2403.19887v2#page=12), CC BY-SA 4.0. Une tête de la première couche d'attention du modèle hybride, vue depuis le dernier deux-points ; plus la couleur est foncée, plus l'attention est forte.*\n\nCet extrait est un cas où Mamba pur se trompe et où l'hybride répond juste. Depuis le dernier deux-points, l'attention se porte presque entièrement sur les étiquettes des exemples précédents : Negative, Negative, Positive. Dans les trois couches d'attention de l'hybride de 1,3B, les auteurs trouvent 12 têtes de ce genre.\n\nLes auteurs le reconnaissent eux-mêmes : c'est une preuve anecdotique. Elle montre que des têtes proches des induction heads apparaissent dans le modèle hybride ; elle ne suffit pas à établir qu'un SSM ne pourra jamais apprendre en contexte (*in-context learning*). Pour l'ingénieur, la conclusion est pourtant déjà très utile : **quelques couches d'attention suffisent à combler cette lacune**.\n\n\n> [!TIP]\n> \n> La formule « Mamba ne retient pas les numéros de téléphone » vient d'une autre étude, parue en février de la même année. Ses auteurs expliquent, par la théorie comme par l'expérience, pourquoi un état de taille fixe ne parvient pas à recopier une longue chaîne jusqu'au bout :\n> \n> - **[[24.02] Repeat After Me : le test de l'annuaire](/blog/papers/mamba/repeat-after-me)**\n\n\n### Trois autres résultats\n\n1. **Le MoE aide.** Ajouter un MoE (2 experts choisis sur 16, une couche sur deux) à l'hybride de 7B entraîné sur 50B tokens fait passer l'OLLM de 36,6 à 38,1 et NQ de 15,4 à 18,9.\n2. **À grande échelle, Mamba a besoin d'une normalisation supplémentaire.** Jusqu'à 1,3B, l'entraînement est très stable ; au passage à la taille du modèle final apparaissent d'énormes pics de perte (*loss spikes*), dus à des activations trop grandes à l'intérieur des couches Mamba. Un RMSNorm interne suffit à stabiliser l'ensemble.\n3. **On peut se passer d'encodage positionnel.** Avec ou sans RoPE dans les couches d'attention, les résultats sont proches (1,3B, 250B tokens). Les auteurs supposent que les couches Mamba, placées avant les couches d'attention, fournissent déjà au modèle une information de position implicite.\n\n## Conclusion\n\nAI21 présente Jamba comme le premier modèle hybride attention-Mamba à l'échelle d'un produit ; la version publiée en mars 2024 est un modèle de base préentraîné, sans affinage sur instructions ni alignement. Voici, pour l'essentiel, ce qu'on peut retenir de l'article :\n\n1. **Le rapport peut être très bas.** Les hybrides 1:3 et 1:7 font presque jeu égal et battent tous deux l'attention pure et Mamba pur ; avec 4 couches d'attention sur 32, le cache KV pour 256K de contexte passe de 32GB à 4GB.\n2. **La faiblesse de Mamba pur tient au format et à la copie.** Les benchmarks généraux la révèlent à peine ; elle apparaît sur des tâches comme IMDB, où il faut répondre au format des exemples few-shot. L'hybride 1:7 suffit à la corriger.\n3. **Des performances proches de Mixtral, pour un coût bien moindre sur les textes longs.** Jamba reste derrière Mixtral sur une partie des benchmarks, et son avantage de débit se manifeste surtout en contexte long.\n\nRevenons à la question de départ : Mamba est arrivé, alors pourquoi garder l'attention ? La réponse de l'article est pragmatique : ce qui donne les meilleurs résultats, pour un coût acceptable, c'est de confier la plupart des couches à Mamba et d'en réserver quelques-unes à l'attention. Trois mois plus tard, NVIDIA mène une comparaison à plus grande échelle avec des modèles de 8B et arrive à peu près à la même conclusion.\n\n\n> [!TIP]\n> \n> L'étude de NVIDIA qui compare Mamba, Mamba-2 et Transformer sur les mêmes données est présentée ici :\n> \n> - **[[24.06] Mamba-2-Hybrid : une mémoire floue](/blog/papers/mamba/mamba-2-hybrid)**\n","imageSizes":{"/content/papers/assets/fa186580641946194f81adf74136e29431c3f6dd3fa63e2ecf8a1c0c29d3e5a0.png":{"width":1056,"height":1000},"/content/papers/assets/ab6a0dbf1cacc4a6045d01ccebacef40614338c0765fdb2052bd1fa19ffcd408.png":{"width":1128,"height":778}}}
