MiniMax passe au parcimonieux : décodage de l'attention de M3 à partir d'un seul diagramme

Décryptage de l'attention parcimonieuse du M3 de MiniMax à partir d'un seul diagramme : sélection de blocs GQA, accélération du pré-remplissage par 9,7x et du décodage par 15,6x sur un contexte de 1M, comparé au NSA de DeepSeek.

MiniMax passe au parcimonieux : décodage de l'attention de M3 à partir d'un seul diagramme

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.

Figure 1 · Une redessination fidèle du diagramme original : le bloc d'attention externe basé sur GQA contient l'étape 1 et l'étape 2 ; le chemin violet converge vers la sortie Sparse Attn finale.

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 :

function1.png

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 :

function2.png

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 :

function3.png

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 :

DimensionDeepSeek V3.2 DSADeepSeek NSADeepSeek V4 CSAMiniMax M3 (inféré)
Substrat KVMLA (latent)GQAMLAGQA
Granularité sélectionniveau tokenniveau blocniveau blocniveau bloc
Branches parallèles1 (indexeur + select)3 (compress + select + glissant)11 (select uniquement)
Calcul attentionvrais K/Vfusion tripleKV compressésvrais K/V
Coût indexeurindexeur Lightningbranche compressionrésumés de blocsK tête unique + Block Max Pool
Gatingaucunporte appriseaucunaucun

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

ÉtapeAccélération @ 1MSignification
Prefill9,7×Traite 1M de tokens en un seul passage
Décodage15,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

Modèles récents

Commencez avec Plus de 300 Modèles,

Explorer tous les modèles

Join our Discord community

Join the Discord community for the latest model updates, prompts, and support.