Zubnet AIAprenderWiki › GQA
Fundamentos

GQA

Também conhecido como: Grouped Query Attention, Atenção de Consulta Agrupada
Uma variante de atenção onde múltiplas cabeças de query compartilham uma única cabeça key-value, reduzindo o tamanho do KV cache sem reduzir significativamente a qualidade. Em vez de cada cabeça de query ter suas próprias projeções K e V (MHA padrão), grupos de cabeças de query compartilham projeções K e V. Llama 2 70B, Mistral, Gemma e a maioria dos LLMs modernos usam GQA.

Por que isso importa

GQA é a solução prática para o problema de memória do KV cache. Multi-head attention padrão com 64 cabeças precisa de 64 conjuntos de tensores K e V por camada no cache. GQA com 8 cabeças KV reduz isso para 8 conjuntos — uma redução de 8x na memória. Isso se traduz diretamente em servir mais usuários simultâneos ou lidar com contextos mais longos no mesmo hardware.

Em profundidade

O espectro: Multi-Head Attention (MHA) tem números iguais de cabeças Q, K, V — máxima qualidade, máxima memória. Multi-Query Attention (MQA) tem muitas cabeças Q mas apenas uma cabeça K e uma V — mínima memória, alguma perda de qualidade. GQA é o meio-termo: divida as cabeças Q em grupos, cada grupo compartilhando uma cabeça K e uma V. Um modelo com 32 cabeças Q e 8 grupos KV tem cada cabeça KV servindo 4 cabeças Q.

Qualidade vs. Memória

Pesquisas mostram que GQA com 8 cabeças KV iguala a qualidade do MHA para a maioria das tarefas enquanto usa 4–8x menos memória de KV cache. A preservação de qualidade é um tanto surpreendente: sugere que muitas cabeças de atenção estão aprendendo padrões key-value similares, então compartilhá-los é eficiente em vez de limitante. Converter um modelo MHA existente para GQA através de "uptraining" (uma fase curta de fine-tuning) também é eficaz, evitando a necessidade de retreinar do zero.

Impacto na Inferência

As economias de memória de KV cache do GQA se traduzem diretamente em: janelas de contexto mais longas na mesma GPU, mais requisições simultâneas (maior throughput) e computação de atenção mais rápida (menos tensores K e V para ler). Para um modelo 70B com contexto de 128K, a diferença entre MHA e GQA pode ser centenas de gigabytes de KV cache — a diferença entre precisar de 8 GPUs e precisar de 4.

Conceitos relacionados

← Todos os termos
← GPU Gradient Checkpointing →