Le 26 mai, Skyler Miao, responsable R&D chez MiniMax, a publié un diagramme sur X — une palette sobre, mais riche en informations. Le titre indique MiniMax Sparse Attention, et les deux courbes sur la droite affichent une paire de chiffres saisissante : 9,7× d'accélération pour le prefill et 15,6× pour le décodage à 1M de tokens.
La communauté a presque unanimement interprété cela comme un teaser du M3. Mais la portée dépasse largement le cadre d'un « énième modèle à contexte long ».
En octobre dernier, MiniMax publiait un article intitulé Pourquoi le M2 a fini en modèle Full Attention ?. Le ton était inhabituellement direct : le M2 n'a pas hérité de la Lightning Attention du M1 car « l'attention efficace n'était pas encore prête pour la production ». Six mois plus tard, le M3 apparaît, et le sous-texte tient en une phrase : cette fois, elle l'est.
Alors, à quoi ressemble concrètement « cette fois » ? Cet article analyse le diagramme et le compare aux trois axes suivis par DeepSeek — NSA, DSA et CSA — pour déterminer quelle voie MiniMax a choisie.

1. Ce que montre réellement le diagramme : deux étapes, choisir avant de calculer
Le diagramme représente essentiellement le déploiement interne d'un bloc d'attention unique. La manœuvre effectuée — et qui mérite toute notre attention — consiste à séparer « quels KV regarder » et « comment calculer l'attention » en deux étapes distinctes.
Étape 1 : Branche d'indexation — tout évaluer à moindre coût
La moitié supérieure constitue la branche d'indexation. Elle s'exécute indépendamment du chemin principal avec une mission unique : indiquer aux étapes suivantes quels blocs regarder.
Chaque groupe GQA partage un index query (six têtes réelles couplées à deux Idx Q dans le diagramme, une par groupe GQA). Côté KV, la dimension de la branche d'indexation est délibérément réduite :

Notez que K_idx n'a qu'une seule tête — toutes les têtes partagent la même clé d'index. Par conséquent, le calcul Q_idx · K_idxᵀ ne coûte quasiment rien.
Le Block Max Pool compresse ensuite les scores au niveau du token en scores au niveau du bloc :

Enfin, l'opération TopK décide quels blocs KV conserver pour cette couche et ce groupe GQA ; le résultat est I₁, I₂.
Étape 2 : Branche creuse (Sparse) — là où l'attention s'exécute réellement
La moitié inférieure est le siège du calcul d'attention proprement dit. Q ∈ ℝ^{n×H×d}, K, V ∈ ℝ^{n×h×d}, toujours sous forme GQA standard. En utilisant I₁, I₂ issus de l'étape 1 comme indices, nous extrayons les sous-ensembles de blocs correspondants des K/V originaux et exécutons :

Un choix de conception clé : les têtes de requête au sein d'un même groupe GQA partagent une sélection top-k unique. Dans le diagramme, Q1/Q2/Q3 utilisent tous I₁, et Q4/Q5/Q6 utilisent I₂. C'est le principe d'alignement matériel sur lequel insiste l'article NSA — un groupe de requêtes charge un ensemble de blocs KV, s'ajuste dans la SRAM en un seul passage, et des noyaux (kernels) de type FlashAttention peuvent être réutilisés sans modification.
2. Trois soustractions délibérées par rapport à la famille DeepSeek
La communauté a immédiatement comparé cette conception avec les modèles NSA / DSA / CSA de DeepSeek. Le résumé de @eliebakouch tient en une ligne : « GQA et non MLA, sélection au niveau du bloc comme CSA mais attention calculée sur les vrais K/V ». Voici le tableau récapitulatif :
| Dimension | DeepSeek V3.2 DSA | DeepSeek NSA | DeepSeek V4 CSA | MiniMax M3 (inféré) |
|---|---|---|---|---|
| Substrat KV | MLA (latent) | GQA | MLA | GQA |
| Granularité sélection | niveau token | niveau bloc | niveau bloc | niveau bloc |
| Branches parallèles | 1 (indexeur + select) | 3 (compress + select + glissant) | 1 | 1 (select uniquement) |
| Calcul attention | vrais K/V | fusion triple | KV compressés | vrais K/V |
| Coût indexeur | indexeur Lightning | branche compression | résumés de blocs | K tête unique + Block Max Pool |
| Gating | aucun | porte apprise | aucun | aucun |
Trois arbitrages se dessinent :
Première soustraction : le GQA comme substrat, pas le MLA. Cela signifie que les noyaux vLLM, SGLang et FlashAttention peuvent être réutilisés avec peu ou pas de modifications — nul besoin de l'ingénierie complexe requise pour contourner les KV latents du MLA. Pour un laboratoire visant la « mise en production », c'est la voie la moins risquée.
Deuxième soustraction : sélection par bloc, mais attention calculée sur les vrais K/V. Contrairement au CSA, qui exécute l'attention sur des KV compressés, le M3 conserve toute la puissance expressive de l'attention softmax. Le coût est que le cache KV ne diminue pas autant que la sparsification de l'attention — mais troquer l'économie de tokens contre la qualité est un compromis judicieux.
Troisième soustraction : les deux autres branches du NSA ont disparu. Le NSA original comporte trois chemins parallèles (compression + sélection + fenêtre glissante) ainsi qu'une porte apprise. Le M3 ne conserve que la sélection. @teortaxesTex l'a décrit succinctement : un NSA simplifié et rationalisé. En un mot : l'ingénierie d'abord.
Parmi les deux branches supprimées, la fenêtre glissante est probablement remplacée par RoPE + attention sink, ou simplement par une attention dense en secours par couche (ce que font Gemma 3 et Qwen3-Next). La branche de compression est absorbée dans le minimaliste « K tête unique + Block Max Pool ».
3. Comment interpréter les chiffres
| Étape | Accélération @ 1M | Signification |
|---|---|---|
| Prefill | 9,7× | Traite 1M de tokens en un seul passage |
| Décodage | 15,6× | Génère token par token |
Une accélération du décodage supérieure à celle du prefill est logique. Pendant le prefill, la branche d'indexation doit scanner toute la longueur, donc l'économie ne porte que sur l'attention principale. Pendant le décodage, chaque requête n'interagit qu'avec les blocs KV sélectionnés, et la pression de la bande passante mémoire sur le cache KV chute d'environ un ordre de grandeur.
En estimant le ratio de sélection : supposons une taille de bloc = 64, soit 1M de tokens correspondant à ~16k blocs. Une accélération de 15,6× au décodage implique que chaque requête ne touche qu'environ 6 à 7 % des blocs, offrant un champ récepteur effectif d'environ 60k à 70k tokens. Ce ratio se situe presque exactement au niveau du taux de sparsité rapporté par l'article NSA (6-10%) — pas une coïncidence, mais le « point idéal » de ce type de conception à l'échelle du million de tokens.
4. Déduire le reste du M3
En extrapolant ce bloc d'attention au modèle complet :
L'ossature MoE devrait rester. Le M2 a été lancé avec 230B de paramètres au total / ~10B actifs / routage Top-2 / dimension cachée ~4096 ; le M2.7 a déjà porté le nombre d'experts à 256. Il n'y a aucune raison pour que le M3 abandonne cela ; le changement le plus probable est une augmentation de la profondeur et de la largeur.
La pile d'attention complète est remplacée par du GQA creux par bloc. Il est peu probable que la Lightning Attention du M1 revienne — le M3 ne mise plus sur l'attention linéaire, mais suit la voie « expressivité softmax + sélection de blocs top-k », atteignant une complexité sous-quadratique tout en préservant la qualité.
Sparsité nativement entraînée, très probablement. C'est le message central de l'article NSA — le motif creux doit intégrer les gradients lors du pré-entraînement, sous peine de voir les têtes de récupération se dégrader. MiniMax possède sa propre ligne de recherche sur les têtes de récupération, ils ne devraient donc pas tomber dans ce piège.
Le champ de bataille est le contexte de 1M+. Le M1 a été entraîné à 1M et extrapole à 4M en inférence ; le M3 verrouille ce cap et réduit les coûts d'inférence — un cycle de produit très naturel.
5. Positionnement du M3 dans l'espace de conception 2026
Sur la période 2025-2026, les conceptions d'attention creuse ont rapidement divergé :
- DeepSeek V3.2 DSA : MLA + top-k au niveau token, indexeur très léger, qualité très stable mais ingénierie noyau complexe.
- DeepSeek NSA : GQA, trois branches + porte, plafond de qualité le plus élevé mais implémentation complexe.
- Qwen3-Next : mélange par couche, alternance dense / linéaire, robuste mais relativement conservateur.
- MiniMax M3 : GQA + sélection de blocs par branche unique, minimaliste, tirant parti de l'optimisation matérielle.
Le sous-texte de la conception du M3 est sans ambiguïté : « ne poursuivez pas l'attention théoriquement optimale ; poursuivez celle qui tourne immédiatement, rapidement, et qui permet de réutiliser les noyaux existants. » Cela rejoint leur décision de revenir à la full attention sur le M2 : stabiliser d'abord la qualité avec des méthodes traditionnelles, puis remplacer proprement une fois la technologie réellement mature.
Réflexions finales
De nombreux détails ne peuvent être confirmés par un seul diagramme : si le motif creux est mélangé par couche, s'il existe une alternative dense, si la branche d'indexation partage des embeddings avec le réseau principal, si le top-k lors de l'entraînement est strict ou souple, ou encore comment la perte de la branche d'indexation est formulée… Tout cela devra attendre la publication du rapport officiel ou la libération des poids.
Mais une chose est déjà actée : à la suite de DeepSeek, un autre laboratoire chinois a assemblé une pile fonctionnelle « attention creuse + contexte long + poids ouverts ». Au second semestre 2026, le contexte de 1M tokens dans l'espace open source passera probablement du statut d'argument commercial à celui de base de référence — et cela, en soi, compte plus que n'importe quel benchmark.
Références
- Skyler Miao (responsable R&D MiniMax), tweet original : Something BIG is coming
- Synthèse communautaire : MiniMax details its M3 sparse attention architecture
- Blog MiniMax : Why Did M2 End Up as a Full Attention Model?
- Article DeepSeek NSA : Native Sparse Attention:Hardware-Aligned and Natively Trainable Sparse Attention
- Analyse DeepSeek V3.2 DSA : Architectural Efficiency in LLMs: DeepSeek-V3.2-Exp and DSA
- Sebastian Raschka : A Technical Tour of the DeepSeek Models from V3 to V3.2
- Rapport technique MiniMax-01 : Scaling Foundation Models with Lightning Attention







