Avançado

MQA, GQA e MLA

Variantes de attention reduzem bandwidth do KV cache compartilhando ou comprimindo keys e values, sem abrir mão de muitas query heads.

Atualizada em

1

Conceito

Em multi-head attention (MHA), cada head possui projeções próprias de query, key e value. Durante serving autorregressivo, cada posição anterior contribui com key e value para toda head. Cache e bandwidth viram custo importante. MQA, GQA e MLA alteram a representação K/V sem remover a multiplicidade de queries.

Considere HqH_q query heads e HkvH_{kv} key/value heads. Ignorando outras dimensões, o tamanho do KV cache é proporcional a HkvH_{kv}. MHA usa Hkv=HqH_{kv}=H_q. Multi-Query Attention (MQA) usa Hkv=1H_{kv}=1: todas as queries atendem às mesmas keys e values. Query heads ainda aprendem perguntas distintas, mas leem uma representação compartilhada de endereço e conteúdo.

Isso reduz tensores em cache e bytes lidos no decode. A troca é capacidade. K/V independentes representam subespaços diferentes; obrigar todas as queries a uma única visão pode degradar qualidade para certo modelo e receita. O efeito deve ser medido.

Grouped-Query Attention (GQA) escolhe 1<Hkv<Hq1<H_{kv}<H_q. Query heads são divididas em grupos, e cada grupo compartilha uma K/V head. Se várias queries exprimem padrões de leitura relacionados, o compartilhamento preserva parte do benefício com cache menor. GQA pode ser treinada do zero; o paper de 2023 também estudou converter checkpoints multi-head agrupando heads K/V e executando treino adicional.

O mapeamento dos grupos é estrutural. Kernels precisam saber quais queries usam cada K/V; checkpoints codificam formatos das projeções. Trocar um campo de configuração sem converter pesos não é otimização, é modelo quebrado. Tensor parallelism também exige divisibilidade compatível ou regras explícitas.

Multi-head Latent Attention (MLA), descrita no DeepSeek-V2 em 2024, usa outra rota. Comprime informação de key/value em representações latentes menores e usa projeções aprendidas para recuperar componentes de attention. O tratamento da informação posicional, incluindo partes desacopladas associadas a RoPE, integra o design. MLA não é “GQA com mais compressão”; seu cache e sua álgebra diferem.

A questão de deploy é suporte ponta a ponta. Um cache teoricamente menor só ajuda quando kernels, quantização, paralelismo e loaders implementam a arquitetura com eficiência. Fallback genérico apaga ganhos. Converter pesos para uma variante sem suporte não é lossless sem um procedimento validado de conversão e adaptação.

Compare bytes de cache por token, bandwidth de decode, throughput na concorrência relevante, TTFT, qualidade e long context. Informe precisão e dtype do cache. Uma arquitetura compacta pode permitir batches maiores, gerando ganho sistêmico invisível num benchmark de uma requisição.

Também teste tarefas que exigem recuperar detalhes distantes e combinar relações diferentes no mesmo contexto. A média curta pode permanecer estável enquanto o compartilhamento perde sinais raros. Faça ablations com a mesma receita de treino sempre que possível; comparar checkpoints de famílias distintas não isola o efeito da arquitetura de attention.

O espectro é simples. MHA preserva uma visão K/V por query. MQA compartilha uma visão global. GQA compartilha dentro de grupos. MLA guarda uma visão latente comprimida e reconstrói o necessário conforme sua arquitetura. Cada uma reduz estado repetido impondo restrições mais fortes e exigindo implementação especializada.

2

Como explicar para uma criança de cinco anos

Uma conferência tem várias jornalistas com perguntas especializadas. Multi-head attention dá a cada uma intérprete e transcrição particulares. MQA faz todas compartilharem uma única intérprete e transcrição. GQA atribui uma intérprete a cada mesa. MLA guarda uma taquigrafia multilíngue compacta e reconstrói o conteúdo necessário. Compartilhar economiza transcrição, mas precisa preservar distinções suficientes para uma boa reportagem.

3

Ensine de volta

Explique como MHA, MQA, GQA e MLA diferem no armazenamento K/V e descreva a troca entre qualidade e eficiência sem reduzir MLA a GQA.

Mínimo: 80 caracteres e 15 palavras. Seu texto fica somente neste navegador.

Salvo somente neste dispositivo.

Ver uma resposta-modelo

MHA guarda keys e values separados para cada query head. MQA compartilha uma K/V head entre todas, minimizando cache com compartilhamento forte. GQA divide query heads em grupos, cada um com uma K/V head, oferecendo meio-termo. MLA, descrita no DeepSeek-V2, comprime informação K/V em representações latentes com projeções e componentes posicionais específicos; não é apenas outra quantidade de grupos. Menos tráfego ajuda serving, mas compressão excessiva reduz capacidade.

4

Teste seu entendimento

1. Qual variante compartilha uma K/V head entre todas as query heads?
Resposta e explicação

MQA — Multi-query attention mantém queries múltiplas e compartilha um conjunto de keys e values.

2. Por que GQA pode ser um bom compromisso?
Resposta e explicação

Reduz KV heads e preserva mais grupos distintos que MQA — O agrupamento reduz cache e bandwidth sem limitar toda leitura a uma única representação.

Conclua o teach-back e acerte o quiz para finalizar a aula.

Fontes

  1. Joshua Ainslie et al. (2023). GQA: Training Generalized Multi-Query Transformer Models from Multi-Head Checkpoints.
  2. DeepSeek-AI (2024). DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language Model.