MiniMax torna-se esparso: decodificando a atenção do M3 a partir de um único diagrama

Decifrando a atenção esparsa do MiniMax M3 a partir de um único diagrama: seleção de bloco GQA, aceleração de 9,7x no prefill e 15,6x no decode com 1M de contexto, comparado ao NSA da DeepSeek.

MiniMax torna-se esparso: decodificando a atenção do M3 a partir de um único diagrama

Em 26 de maio, Skyler Miao, líder de P&D da MiniMax, publicou um diagrama no X — paleta contida, mas com uma densidade informativa impressionante. O título diz MiniMax Sparse Attention, e as duas curvas à direita exibem um par de números notável: 9.7× de aceleração no prefill e 15.6× no decode em 1M de tokens.

A comunidade interpretou quase unanimemente isso como o teaser do M3. Mas o significado vai muito além de "apenas mais um modelo de contexto longo".

Em outubro passado, a MiniMax publicou um post intitulado Por que o M2 acabou como um modelo de Full Attention?. O texto foi incomumente direto: o M2 não herdou a Lightning Attention do M1 porque "a atenção eficiente ainda não estava pronta para produção". Seis meses depois, o M3 surge, e o subtexto é essencialmente uma frase — desta vez, está pronta.

Então, o que exatamente significa "desta vez, está pronta"? Este artigo analisa o diagrama e o compara com as três vertentes estabelecidas pela DeepSeek — NSA, DSA e CSA — para determinar qual caminho a MiniMax escolheu.

Figura 1 · Um redesenho fiel do diagrama original: o bloco de atenção externo baseado em GQA contém o Passo 1 e o Passo 2; o caminho roxo converge na saída final de Sparse Attn.

1. O que o diagrama mostra: dois estágios, selecione antes de calcular

O diagrama é, essencialmente, a estrutura interna de um único bloco de atenção. O movimento que ele faz — e que merece atenção — é separar "quais KV observar" e "como calcular a atenção" em duas etapas claramente distintas.

Passo 1: Ramo de Índice — avalie tudo de forma barata

A metade superior é o ramo de índice. Ele roda independentemente do caminho principal com uma única função: dizer ao fluxo posterior quais blocos observar.

Cada grupo GQA compartilha um índice de query (seis heads reais pareadas com duas Idx Q no diagrama, uma por grupo GQA). O lado KV do ramo de índice tem sua dimensão reduzida deliberadamente:

function1.png

Note que K_idx possui apenas uma head — todas as heads compartilham a mesma chave de índice. Como resultado, Q_idx · K_idxᵀ não tem praticamente custo computacional.

O Block Max Pool então comprime as pontuações ao nível de token em pontuações ao nível de bloco:

function2.png

Por fim, o TopK decide quais blocos KV manter para esta camada e este grupo GQA; o resultado é I₁, I₂.

Passo 2: Ramo Esparso — onde a atenção realmente é calculada

A metade inferior é onde o cálculo real da atenção ocorre. Q ∈ ℝ^{n×H×d}, K, V ∈ ℝ^{n×h×d}, ainda na forma GQA padrão. Usando I₁, I₂ do Passo 1 como índices, extraímos os subconjuntos de blocos correspondentes do K/V original e executamos:

function3.png

Uma escolha de design fundamental: heads de query dentro do mesmo grupo GQA compartilham uma única seleção top-k. No diagrama, Q1/Q2/Q3 usam I₁, Q4/Q5/Q6 usam I₂. Este é o princípio alinhado ao hardware que o paper da NSA enfatiza — um grupo de queries carrega um conjunto de blocos KV, ajusta-se à SRAM em uma única passagem, e kernels no estilo FlashAttention podem ser reutilizados sem alterações.

2. Três subtrações deliberadas em relação à família DeepSeek

A comunidade imediatamente comparou este design com a NSA / DSA / CSA da DeepSeek. O resumo de @eliebakouch cabe em uma linha: "GQA, não MLA; seleção em nível de bloco como na CSA, mas a atenção é calculada no K/V real". Expandindo para uma tabela:

DimensãoDeepSeek V3.2 DSADeepSeek NSADeepSeek V4 CSAMiniMax M3 (inferido)
Substrato KVMLA (latente)GQAMLAGQA
Granularidade de seleçãotokenblocoblocobloco
Ramos paralelos1 (indexador + select)3 (compress + select + sliding)11 (apenas select)
Onde a atenção rodaK/V realfusão triplaKV comprimidoK/V real
Custo do indexadorIndexador Lightningramo de compressãoresumos de blocoK de head única + Block Max Pool
Gatingnenhumgate aprendidonenhumnenhum

Três compensações (trade-offs) se destacam:

Primeira subtração: GQA como substrato, não MLA. Isso significa que os kernels do vLLM, SGLang e FlashAttention podem ser reutilizados com pouca ou nenhuma modificação — sem a necessidade de engenharia complexa para contornar o KV latente da MLA. Para um laboratório que busca "prontidão para produção", é o caminho de menor risco.

Segunda subtração: seleção em nível de bloco, mas atenção calculada no K/V real. Diferente da CSA, que executa a atenção sobre KV comprimido, o M3 mantém todo o poder expressivo da atenção softmax. O custo é que o KV cache não diminui proporcionalmente à esparsificação da atenção — mas trocar economia de tokens por qualidade é uma negociação sensata.

Terceira subtração: os outros dois ramos da NSA foram removidos. A NSA originalmente possui três caminhos paralelos (compressão + seleção + janela deslizante) além de um gate aprendido. O M3 mantém apenas a seleção. @teortaxesTex descreveu de forma sucinta — NSA simplificada e otimizada. Em uma frase: a engenharia em primeiro lugar.

Dos dois ramos eliminados, a janela deslizante é provavelmente substituída por RoPE + attention sink, ou simplesmente por atenção densa como fallback por camada (Gemma 3 e Qwen3-Next fazem isso). O ramo de compressão foi absorvido pelo minimalista "K de head única + Block Max Pool".

3. Como ler os números

EstágioAceleração @ 1MO que significa
Prefill9.7×Processa 1M de tokens de entrada em uma passagem
Decode15.6×Gera token por token

A aceleração do decode exceder o prefill é razoável. Durante o prefill, o ramo de índice ainda precisa escanear toda a extensão, então a economia ocorre apenas na atenção principal. Durante o decode, cada query interage apenas com os blocos KV selecionados, e a pressão sobre a largura de banda de memória do KV cache cai em cerca de uma ordem de magnitude.

Estimando a taxa de seleção: assumindo tamanho de bloco = 64, 1M de tokens correspondem a ~16 mil blocos. Uma aceleração de 15.6× no decode implica que cada query toca apenas cerca de 6–7% dos blocos, resultando em um campo receptivo efetivo entre 60k–70k tokens. Essa proporção situa-se exatamente na taxa de esparsidade relatada no paper da NSA (6–10%) — não é coincidência, mas o ponto ideal desse tipo de design na escala de 1M.

4. Inferindo o restante do M3

Extrapolando este bloco de atenção para o modelo completo:

A espinha dorsal MoE provavelmente permanece. O M2 foi lançado como 230B total / ~10B ativos / roteamento Top-2 / dimensão oculta ~4096; o M2.7 já elevou a contagem de especialistas para 256. Não há razão para o M3 abandonar isso, então a mudança mais provável é aumentar a profundidade e a largura.

A pilha de atenção full é substituída por GQA bloco-esparsa. É improvável que a Lightning Attention do M1 retorne — o M3 não aposta novamente em atenção linear, mas segue o caminho "expressividade softmax + seleção top-k de blocos", alcançando complexidade sub-quadrática enquanto preserva a qualidade.

Esparsidade provavelmente treinada nativamente. Esta é a mensagem central do paper da NSA — o padrão esparso deve ser introduzido durante os gradientes do pré-treino, ou as heads de recuperação ficarão desorganizadas. A MiniMax possui sua própria linha de pesquisa sobre heads de recuperação, então eles não devem cair nessa armadilha.

O campo de batalha é o contexto 1M+. O M1 foi treinado em 1M e extrapola para 4M na inferência; o M3 está consolidando isso e reduzindo drasticamente o custo de inferência — um ciclo de produto muito natural.

5. Posicionando o M3 no espaço de design de 2026

Entre 2025–2026, os designs de atenção esparsa divergiram rapidamente:

  • DeepSeek V3.2 DSA: MLA + top-k em nível de token, indexador muito leve, qualidade mais estável, mas engenharia de kernel pesada
  • DeepSeek NSA: GQA, três ramos + gate, teto de qualidade mais alto, mas implementação complexa
  • Qwen3-Next: mix por camada, alternância entre denso / linear, robusto, mas relativamente conservador
  • MiniMax M3: GQA + seleção de bloco de ramo único, minimalista, aproveitando o avanço do hardware

O subtexto do design do M3 é inequívoco — "não persiga a atenção teoricamente ideal; persiga aquela que roda imediatamente, roda rápido e permite que kernels existentes sejam reutilizados". Está em sintonia com a decisão deles de voltar à atenção total no M2: estabilizar a qualidade com métodos mainstream primeiro e, em seguida, substituir de forma limpa quando a tecnologia estiver genuinamente madura.

Considerações finais

Muitos detalhes não podem ser confirmados a partir de um único diagrama: se o padrão esparso é misturado por camada, se há um fallback denso, se o ramo de índice compartilha embeddings com a rede principal, se o top-k no treino é hard ou soft, como a perda do ramo de índice é formulada... Tudo isso precisará aguardar o artigo oficial ou a liberação dos pesos.

Mas uma coisa já está definida: seguindo a DeepSeek, outro laboratório chinês reuniu "atenção esparsa + contexto longo + pesos abertos" como uma pilha funcional. No segundo semestre de 2026, 1M de contexto no espaço open-source provavelmente deixará de ser um diferencial de venda para se tornar o padrão — e isso, por si só, importa mais do que qualquer benchmark isolado.

Referências

Modelos recentes

Mais de 300 Modelos, Comece Agora,

Explorar Todos os Modelos

Join our Discord community

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

MiniMax torna-se esparso: decodificando a atenção do M3 a partir de um único diagrama