Na arquitetura dos grandes modelos de linguagem baseados em transformadores (Transformers), o mecanismo de atenção é o componente central que permite ao modelo ponderar quais palavras anteriores são relevantes para determinar a próxima palavra gerada. No entanto, à medida que as janelas de contexto se expandiram de alguns milhares para dezenas ou centenas de milhares de tokens, o cálculo tradicional de atenção tornou-se o principal gargalo de velocidade de inferência e de consumo de memória de vídeo (VRAM) nos servidores.
Para contornar essa barreira física de hardware sem sacrificar a capacidade de raciocínio da inteligência artificial, pesquisadores criaram variações arquiteturais do mecanismo de atenção: Multi-Head Attention (MHA), Multi-Query Attention (MQA) e Grouped-Query Attention (GQA). Compreender como essas abordagens gerenciam a memória temporária de chaves e valores (o chamado KV-cache) é fundamental para engenheiros de inteligência artificial, desenvolvedores de sistemas de alta escala e empresas que pretendem otimizar seus custos de infraestrutura e reduzir a latência de suas aplicações no Brasil.
Resumo rápido
- O mecanismo de atenção original (MHA) aloca pares de chaves e valores independentes para cada cabeça de consulta.
- Com janelas de contexto longas, o MHA gera uma explosão de consumo de memória de vídeo (KV-cache) na GPU.
- O Multi-Query Attention (MQA) compartilha uma única chave e valor para todas as consultas, economizando memória mas perdendo nuances.
- O Grouped-Query Attention (GQA) agrupa consultas em blocos, equilibrando economia drástica de memória com qualidade máxima.
- Modelos modernos como Llama 3, Mistral, Gemma 2 e Claude utilizam GQA como padrão para suportar contextos de até 128k tokens.
- A otimização de atenção reduz o tempo até o primeiro token (TTFT) e permite atender mais usuários simultâneos no mesmo servidor.
A mecânica da atenção e o papel do KV-Cache
Para entender por que novas variantes de atenção foram necessárias, é preciso examinar a matemática por trás da geração de texto autorregressiva. Em um modelo Transformer, cada token de entrada é transformado em três vetores principais: a Consulta (Query ou Q), a Chave (Key ou K) e o Valor (Value ou V). A Consulta representa o que o token atual está procurando; a Chave indica o que os outros tokens contêm; e o Valor carrega o conteúdo semântico real da informação.
A cada novo token gerado em uma resposta, o modelo precisa calcular o produto escalar entre a consulta do token atual e as chaves de todos os tokens anteriores na conversa. Para não ter que recalcular as chaves e valores de todo o histórico a cada milissegundo, os sistemas salvam esses vetores intermediários na memória ultra rápida da GPU (SRAM e HBM), criando uma estrutura conhecida como KV-cache (Key-Value Cache).
Durante diálogos curtos de quinhentas palavras, o tamanho do KV-cache é praticamente insignificante. No entanto, quando uma aplicação processa livros inteiros, relatórios financeiros de duzentas páginas ou códigos de programas com mais de 30 mil tokens, o tamanho do KV-cache cresce linearmente com o comprimento da sequência e com o tamanho do lote de requisições simultâneas (batch size). Em muitos casos corporativos, o KV-cache consome muito mais memória de vídeo do que os próprios parâmetros congelados do modelo de linguagem, impedindo a máquina de processar múltiplos usuários concorrentes.
Para entender como a extensão da memória de trabalho dos modelos afeta o custo e a qualidade de respostas, consulte nosso guia sobre janela de contexto em inteligência artificial e por que ela importa.
Multi-Head Attention (MHA): a fórmula clássica e suas limitações
A arquitetura original apresentada no célebre artigo “Attention Is All You Need”, em 2017, utilizava o Multi-Head Attention (MHA). No MHA, em vez de realizar um único cálculo de atenção sobre todo o vetor de dados, o modelo divide as dimensões em múltiplas cabeças de atenção independentes (por exemplo, 32 ou 64 cabeças). Cada cabeça possui seu próprio conjunto dedicado de vetores de Consulta, Chave e Valor.
Essa multiplicidade de cabeças permite que a rede neural atente para diferentes facetas gramaticais e semânticas ao mesmo tempo. Enquanto uma cabeça rastreia a concordância de gênero entre substantivo e adjetivo, outra cabeça analisa a relação de tempo verbal e uma terceira mapeia a referência a pronomes distantes no texto.
O problema estrutural do MHA reside na sua voracidade por memória de vídeo durante a inferência. Como cada cabeça precisa armazenar sua própria chave e seu próprio valor no KV-cache para cada token da janela de contexto, a largura de banda de memória (memory bandwidth) da GPU fica saturada. O chip gráfico gasta mais tempo lendo e gravando dados na memória do que realizando cálculos matemáticos úteis nos núcleos tensores, desacelerando a velocidade de digitação da inteligência artificial.
Multi-Query Attention (MQA) e Grouped-Query Attention (GQA)
Para sanar o estrangulamento de largura de banda de memória, surgiram duas inovações na estrutura dos transformadores:
Multi-Query Attention (MQA)
Introduzido em 2019 pelo pesquisador Noam Shazeer, o Multi-Query Attention propôs uma simplificação drástica: manter múltiplas cabeças para a Consulta (Queries), mas compartilhar exatamente uma única cabeça de Chave (K) e uma única cabeça de Valor (V) entre todas as consultas do bloco. Isso reduziu o tamanho do KV-cache em até 95% em comparação com o MHA tradicional, acelerando drasticamente o rendimento de tokens por segundo.
No entanto, essa compressão extrema cobrou um preço em tarefas intelectuais sutis. Modelos treinados com MQA puro apresentavam maior tendência a esquecer detalhes intermediários em textos longos e demonstravam menor flexibilidade de raciocínio em comparação com o MHA original.
Grouped-Query Attention (GQA): o ponto de equilíbrio
Em 2023, pesquisadores introduziram o Grouped-Query Attention (GQA) como a solução definitiva para unificar o melhor dos dois mundos. Em vez de uma única cabeça de chave e valor para todo o modelo (MQA) ou uma para cada consulta (MHA), o GQA particiona as cabeças de consulta em grupos proporcionais (geralmente de 4 ou 8 cabeças). Cada grupo de consultas compartilha um único par de chave e valor.
Por exemplo, em um modelo com 32 cabeças de consulta configurado com 8 grupos de GQA, existem apenas 8 pares de chave e valor no KV-cache em vez de 32. Isso reduz o consumo de memória em 75% em relação ao MHA clássico, mantendo praticamente 100% da precisão e capacidade de raciocínio da rede. Por esse motivo, modelos contemporâneos líderes como Llama 2 (nas versões 70B), Llama 3, Mistral 7B, Mistral Nemo e Gemma 2 adotaram o GQA como padrão industrial indiscutível.
Comparativo técnico: MHA vs MQA vs GQA
A tabela comparativa a seguir sintetiza as principais diferenças operacionais, consumo de memória e casos de aplicação para as três estratégias de atenção:
| Característica | Multi-Head Attention (MHA) | Multi-Query Attention (MQA) | Grouped-Query Attention (GQA) |
|---|---|---|---|
| Número de cabeças Q | N (ex.: 32) | N (ex.: 32) | N (ex.: 32) |
| Número de cabeças K e V | N (ex.: 32) | 1 (única compartilhada) | G grupos (ex.: 8) |
| Consumo relativo de KV-cache | 100% (Base de referência pesada) | ~3% a ~5% (Extremamente baixo) | ~12% a ~25% (Altamente otimizado) |
| Uso de largura de banda de memória | Muito Alto (gargalo crítico) | Mínimo | Equilibrado e veloz |
| Capacidade de retenção semântica | Excelente em todas as tarefas | Razoável com perda em sutilezas | Quase idêntica ao MHA clássico |
| Suporte a contextos longos (128k+) | Inviável em GPUs de consumo | Viável com limitações de precisão | Padrão do mercado contemporâneo |
| Exemplos de modelos conhecidos | GPT-3, GPT-4 original, BERT | Falcon 40B, PaLM inicial | Llama 3, Mistral, Gemma 2, Qwen 2.5 |
Para entender como combinar técnicas de compressão de memória de pesos com otimizações de atenção na inferência, veja nosso guia prático sobre quantização de modelos com GGUF, AWQ e EXL2.
Impacto prático nos custos de infraestrutura e latência
Para quem gerencia infraestrutura de inteligência artificial em servidores próprios ou contrata instâncias em provedores de nuvem como AWS, Google Cloud ou Azure, a presença do GQA no modelo escolhido altera radicalmente a economia unitária do serviço:
- Maior concorrência de usuários simultâneos: Como o KV-cache de cada sessão ocupa uma fração do espaço na VRAM, o mesmo servidor com uma única placa GPU de 24 GB consegue manter 16 ou 32 conversas simultâneas de clientes abertas, contra apenas 2 ou 3 sessões que seriam possíveis com MHA puro.
- Redução drástica do Time-to-First-Token (TTFT): O tempo que o modelo leva para digerir o prompt inicial e começar a cuspir a primeira palavra é diretamente influenciado pela velocidade com que o chip gráfico consegue alocar o KV-cache na memória. O GQA reduz a sobrecarga de escrita, acelerando o retorno inicial.
- Viabilização de Prompt Caching avançado: Estruturas de GQA facilitam o reaproveitamento de blocos fixos de cache na memória entre requisições de diferentes usuários, barateando custos em faturas de API.
Para se aprofundar nas técnicas de reutilização de memória em provedores comerciais, leia nosso artigo sobre prompt caching na OpenAI e no Claude para economizar até 90% em APIs.
Exemplo: fintech de crédito e pagamentos em São Paulo
Para compreender como essas diferenças de baixo nível de arquitetura impactam uma operação comercial no Brasil, considere o caso de uma fintech de análise de crédito consignado e financiamentos para pequenas empresas sediada na Avenida Faria Lima, em São Paulo.
A fintech opera um assistente de atendimento automatizado no WhatsApp que recebe holerites, extratos bancários de múltiplos bancos e contratos sociais de clientes, analisando o risco de inadimplência em tempo real para liberar empréstimos em menos de dez minutos. No desenho inicial de infraestrutura, a equipe técnica utilizava um modelo aberto antigo baseado em Multi-Head Attention (MHA) hospedado em instâncias de nuvem com quatro placas Nvidia A100 de 80 GB cada.
O problema enfrentado pela empresa era crítico: nos horários de pico comercial (entre 10h e 15h), centenas de clientes enviavam extratos bancários longos simultaneamente. O KV-cache do MHA lotava a memória de vídeo das GPUs em poucos minutos, forçando os servidores a enfileirar as requisições e elevando o tempo de resposta do robô de WhatsApp de 3 segundos para mais de 45 segundos, gerando frustração nos clientes e perda de conversão de empréstimos.
A equipe realizou a migração para um modelo contemporâneo baseado em Grouped-Query Attention (GQA):
- Redução de 75% na memória de sessão: Cada cliente conectado com extratos extensos passou a ocupar apenas um quarto da VRAM necessária anteriormente para manter o histórico de dados contábeis.
- Consolidação de hardware: A fintech desativou três das quatro instâncias caras com GPUs profissionais de ponta, mantendo todo o fluxo operacional estável em uma única máquina otimizada com vLLM e suporte nativo a GQA e PagedAttention.
- Estabilidade de latência no pico: O tempo médio de resposta no WhatsApp permaneceu estável em 2,5 segundos mesmo durante o pico de milhares de mensagens simultâneas ao meio-dia.
A alteração arquitetural gerou uma economia mensal recorrente de mais de quarenta mil reais em infraestrutura de nuvem, mantendo a qualidade de análise de risco plenamente calibrada.
Erros comuns
- Ignorar o tipo de atenção ao dimensionar servidores de inferência: Calcular o dimensionamento de GPUs baseado apenas no peso estático dos parâmetros do modelo e esquecer de somar o tamanho dinâmico do KV-cache por usuário conectado.
- Assumir que modelos menores sempre consomem menos VRAM em contexto longo: Um modelo menor de 7B com MHA tradicional pode consumir mais memória em 64k tokens do que um modelo de 14B otimizado com GQA bem calibrado.
- Tentar desativar o KV-cache para economizar memória: Desativar o cache de chaves e valores obriga o modelo a recalcular toda a história a cada token gerado, multiplicando a latência por cem vezes.
- Usar frameworks de inferência desatualizados: Utilizar versões antigas de bibliotecas de execução que não contam com kernels compilados com suporte a FlashAttention-2 ou FlashDecoding para GQA.
- Confundir parâmetros de treinamento com parâmetros de inferência: A escolha entre MHA, MQA e GQA é uma decisão de arquitetura tomada durante a fase de pré-treinamento da rede neural; ela não pode ser alterada em tempo de execução sem retreinar o modelo.
- Não configurar PagedAttention em servidores de produção: Rodar servidores em lote sem técnicas de paginação de memória de atenção causa fragmentação de VRAM e desperdício de recursos computacionais.
Perguntas frequentes
O usuário final consegue perceber a diferença visual entre textos gerados por MHA e GQA?
Não. Em termos de qualidade de redação, fluência estilística, gramática e capacidade de seguir instruções, o GQA atinge níveis estatisticamente indistinguíveis do MHA clássico nos principais benchmarks da indústria de inteligência artificial.
Por que o MQA puro não é mais tão utilizado quanto o GQA nos modelos modernos?
O MQA comprime demais a informação de contexto ao deixar apenas uma cabeça de chave e valor para toda a rede, o que provoca pequenas quedas de desempenho em tarefas de raciocínio matemático complexo e recuperação de fatos em documentos longos.
O que é FlashAttention e como ele se relaciona com o GQA?
O FlashAttention é um algoritmo de aceleração de baixo nível que reorganiza a computação da atenção para utilizar a memória rápida (SRAM) da GPU com eficiência. Quando combinado com GQA, ele multiplica a velocidade de inferência e reduz drasticamente a latência de resposta.
Modelos comerciais fechados como ChatGPT e Claude usam GQA?
Embora as empresas proprietárias como OpenAI e Anthropic não divulguem todos os detalhes de suas arquiteturas internas por segredo de negócio, relatórios técnicos e patentes indicam que versões contemporâneas dessas redes utilizam variantes avançadas de GQA e compressão de atenção.
O GQA afeta a precisão de modelos de linguagem para código de programação?
Não. Os benchmarks especializados em código (como o HumanEval) demonstram que modelos com GQA mantêm a mesma assertividade em geração e depuração de algoritmos que modelos com MHA convencional.
Para conhecer todas as integrações de ferramentas e plataformas inteligentes da empresa, consulte nosso índice detalhado de integrações do Google Gemini.
Fontes e leitura recomendada
- Artigo acadêmico original no arXiv: GQA – Training Generalized Multi-Query Transformer Models from Multi-Head Checkpoints
- Artigo seminal de pesquisa: Attention Is All You Need (Vaswani et al., arquitetura Transformer)
- Hugging Face Engineering: métodos de otimização de atenção e memória para modelos de linguagem
- Publicação de pesquisa da Meta AI: relatório técnico sobre arquitetura e adoção de GQA na família Llama