Tendências recentes em arquiteturas de LLM: compartilhamento de KV, mHC e atenção comprimida
(magazine.sebastianraschka.com)- Com os LLMs open-weight lançados recentemente focando em eficiência em contextos longos, os truques de arquitetura para reduzir tamanho do cache KV, tráfego de memória e custo de atenção estão aumentando rapidamente
- O Gemma 4 melhora ao mesmo tempo a eficiência do cache KV e dos parâmetros com compartilhamento de KV entre camadas (cross-layer attention) e per-layer embeddings (PLE)
- O Laguna XS.2 introduz layer-wise attention budgeting, que atribui quantidades diferentes de cabeças de consulta por camada
- O ZAYA1-8B executa a atenção diretamente em um espaço latente comprimido com Compressed Convolutional Attention (CCA), reduzindo não só o cache KV como também os FLOPs de atenção
- O DeepSeek V4 expande o caminho residual com mHC (Manifold-Constrained Hyper-Connections) e comprime o comprimento da sequência com CSA/HCA, reduzindo drasticamente FLOPs e cache KV em contexto de 1M tokens em comparação com o V3.2
Visão geral: arquiteturas recentes focadas em eficiência para contextos longos
- À medida que modelos de raciocínio e fluxos de agentes mantêm mais tokens por mais tempo, tamanho do cache KV, tráfego de memória e custo de atenção surgem como restrições principais
- Pontos de projeto que apareceram nos principais modelos open-weight lançados entre abril e maio
- Gemma 4: KV sharing e per-layer embeddings
- Laguna XS.2: layer-wise attention budgeting
- ZAYA1-8B: compressed convolutional attention
- DeepSeek V4: mHC + atenção comprimida
- O texto foca nas mudanças internas de blocos transformer, fluxo residual, cache KV e operações de atenção, sem tratar de mistura de dados, cronograma de treinamento, post-training, receita de RL ou benchmarks
1. Gemma 4: redução do cache com compartilhamento de KV entre camadas
- A família Gemma 4, lançada pelo Google no início de abril, é composta por 3 categorias
- Gemma 4 E2B/E4B: modelos pequenos para dispositivos móveis e embarcados (IoT)
- Gemma 4 26B MoE: modelo MoE otimizado para inferência local eficiente
- Gemma 4 31B dense: modelo denso para máxima qualidade e facilidade em post-training
-
Introdução do compartilhamento de KV (cross-layer attention)
- As camadas da parte final não calculam suas próprias projeções K/V; em vez disso, reutilizam os tensores KV da camada anterior mais próxima não compartilhada do mesmo tipo de atenção
- Camadas de janela deslizante compartilham KV com a camada anterior de janela deslizante, e camadas de full-attention compartilham com a camada anterior de full-attention
- As projeções de consulta continuam sendo calculadas por cada camada, preservando os padrões de atenção específicos por camada
- No Gemma 4 E2B, entre 35 camadas transformer, apenas as 15 primeiras calculam seu próprio KV; as 20 últimas reutilizam
- No Gemma 4 E4B, entre 42 camadas, apenas 24 calculam seu próprio KV, e as 18 últimas reutilizam
-
Efeito de redução
- Cerca de metade dos KV é compartilhada, com redução de aproximadamente metade no tamanho do cache KV
- Em contexto longo de 128K (bfloat16), o E2B economiza 2.7 GB e o E4B cerca de 6 GB
-
Limitações
- O compartilhamento de KV é um tipo de aproximação e reduz a capacity do modelo
- Segundo o artigo sobre cross-layer attention, o impacto foi mínimo (nos modelos pequenos testados)
- O conceito em si é baseado em Brandon et al., "Reducing Transformer Key-Value Cache Size with Cross-Layer Attention" (NeurIPS 2024), e o Gemma 4 é o primeiro caso de aplicação em uma arquitetura amplamente conhecida
2. Per-Layer Embeddings (PLE) e o tamanho "Effective" no Gemma 4 E2B/E4B
- O PLE é um projeto de eficiência separado do compartilhamento de KV, com foco em eficiência de parâmetros
-
O "E" significa effective
- Gemma 4 E2B: 2.3B effective parameters, 5.1B incluindo embeddings
- Gemma 4 E4B: 4.5B effective parameters, 8B incluindo embeddings
- O stack transformer principal opera mais próximo dos números menores, enquanto os maiores incluem camadas adicionais de tabelas de embedding
-
Estrutura do PLE
- Os vetores PLE são preparados fora do bloco transformer repetido
- Os IDs de token passam por um lookup de embedding por camada, e os embeddings normais de token são projetados linearmente para o mesmo espaço PLE
- Os dois resultados são somados, escalados e reformatados para criar um tensor com um slice por camada
- Cada camada
lrecebe apenas o seu próprio slice (ple_l)
-
Funcionamento dentro do bloco transformer
- As atualizações residuais de atenção e feedforward são executadas normalmente
- Após o segundo residual add, o hidden state
zfaz o gating do vetor PLE específico da camada - O vetor PLE com gating é então reprojetado para o hidden size do modelo, normalizado e somado como uma atualização residual adicional
-
Objetivo do PLE
- Manter os caros blocos transformer próximos de um tamanho "effective" menor
- Armazenar capacity adicional em tabelas de embedding por camada, que são muito mais baratas por serem baseadas em lookup do que adicionar pesos de atenção ou FFN
- Diferentemente de simplesmente reduzir um modelo denso, isso não sacrifica a capacity da parte principal de computação
- Em princípio, o PLE não se limita apenas a modelos pequenos, mas modelos grandes já tendem a ter capacity suficiente e podem expandi-la com MoE
3. Laguna XS.2: Layer-Wise Attention Budgeting
- Laguna é o primeiro modelo open-weight da Poolside, empresa europeia focada em LLMs para aplicações de programação
-
Configuração básica
- Total de 40 camadas, das quais 30 usam atenção com janela deslizante e 10 usam global/full attention
- Tamanho da janela nas camadas de janela deslizante: 512 tokens
- O padrão misto de janela deslizante + global também é usado em outras arquiteturas, como o Gemma 4
-
O que há de novo: diferenciação do número de cabeças de consulta por camada
- A configuração
num_attention_heads_per_layernoconfig.jsondo Hugging Face permite definir números diferentes de cabeças de consulta por camada, mantendo compatibilidade no formato do cache KV - Camadas de janela deslizante: 8 cabeças de consulta por cabeça KV
- Camadas de full attention: 6 cabeças de consulta por cabeça KV
- As cabeças KV permanecem fixas em 8
- A configuração
-
Intenção de projeto
- Em vez de dar o mesmo orçamento de atenção para todas as camadas, a ideia é concentrar a capacity de atenção onde ela é mais útil
- Como as camadas de full-attention enxergam todo o contexto e custam mais caro, recebem menos cabeças de consulta
- A ideia de diferenciar a capacity por camada remonta pelo menos ao OpenELM da Apple em 2024, e o Laguna XS.2 é o caso recente mais marcante entre modelos open de nível de produção
- Como detalhe adicional, o Laguna também aplica per-head attention-output gating (semelhante ao Qwen3-Next etc.)
4. ZAYA1-8B: Compressed Convolutional Attention (CCA)
- Modelo open-weight desenvolvido pela Zyphra, com a característica de ter sido treinado em GPUs AMD, e não em GPUs NVIDIA nem TPUs do Google
-
Estrutura
- No
config.json, há 80 entradas de camadas alternadas, com atenção CCA/GQA e feedforward MoE aparecendo alternadamente (visualizadas como 40 pares de atenção+MoE) - Usa CCA junto com um layout GQA 4:1
- O MoE é configurado de forma extremamente esparsa, com apenas 1 expert de roteamento ativado por token
- No
-
O núcleo do CCA
- Assim como o MLA, ele introduz uma representação latente comprimida no bloco de atenção
- A diferença é que o MLA usa essa representação latente principalmente para reduzir o cache KV, e a atenção real é executada após reprojeção para o espaço das cabeças de atenção
- O CCA comprime Q, K e V e depois executa a operação de atenção diretamente no espaço latente comprimido, fazendo up-projection do vetor de atenção resultante
- Como resultado, reduz não apenas o cache KV, mas também os FLOPs de atenção em prefill e treinamento
-
Convolutional Mixing
- O nome "Convolutional" vem do fato de que há mistura convolucional adicional nas representações comprimidas de K e Q
- A compressão estreita Q, K e V para reduzir computação e cache, mas pode diminuir a expressividade da atenção
- A convolução é um meio barato de adicionar contexto local a Q e K comprimidos
- Ela não é aplicada a V — Q e K determinam os scores de atenção, enquanto V é o conteúdo que será combinado por média com base nesses scores
- Além da mistura ao longo da sequência, também existe um componente de channel mixing
-
Desempenho
- O CCA foi introduzido em um artigo separado, anterior ao relatório técnico do ZAYA1-8B: "Compressed Convolutional Attention: Efficient Attention in a Compressed Latent Space" (outubro de 2025)
- Nos experimentos desse artigo, o CCA reportou resultados superiores ao MLA na mesma configuração de compressão
5. DeepSeek V4: CSA/HCA, mHC e cache de atenção comprimida
-
O DeepSeek V4 foi o lançamento de maior repercussão e escala de modelo neste ano, e o DeepSeek V4-Pro é o MoE mais esparso em termos de proporção de parâmetros ativos
-
O texto foca em dois pontos centrais novos em relação à arquitetura anterior
- mHC: caminho residual mais amplo
- CSA/HCA: compressão e esparsificação da atenção em contextos longos
-
5.1 Manifold-Constrained Hyper-Connections (mHC)
- Baseado no artigo da equipe DeepSeek de 31 de dezembro de 2025, "mHC: Manifold-Constrained Hyper-Connections", que na época só havia sido testado em escala 27B, mas agora foi aplicado de fato no flagship
- O objetivo é modernizar o design das conexões residuais dentro do bloco transformer — algo diferente das mudanças que vinham se concentrando em atenção/normalização/MoE
-
Contexto de Hyper-Connections (HC)
- Baseado em Zhu et al. (2024), "Hyper-connections"
- Substitui um único fluxo residual por vários fluxos residuais paralelos e mapeamentos aprendidos
- Para que camadas de atenção e MoE operem no hidden size normal, adiciona-se Pre Mapping (fluxos paralelos → um vetor hidden) e Post Mapping (saída da camada → distribuição entre fluxos paralelos)
- Isso torna o caminho residual mais expressivo sem alargar a própria atenção ou o MoE
- Em experimentos com o OLMo MoE 7B, os FLOPs por token praticamente não mudaram, de 13.36G → 13.38G, e o desempenho de baseline foi alcançado com cerca de metade dos tokens de treinamento
-
Mudanças de HC → mHC
- No HC comum, o Res Mapping é uma matriz aprendível, e a amplificação ou redução de sinal ao longo de várias camadas é imprevisível
- O mHC projeta o mapeamento residual no manifold de matrizes duplamente estocásticas — todas as entradas não negativas, e soma de cada linha e coluna igual a 1
- A mistura residual passa a funcionar como uma redistribuição estável de informação entre fluxos
- Pre Mapping e Post Mapping também são restringidos a serem não negativos e limitados, evitando cancelamento ao ler e escrever no estado residual ampliado
- Isso garante estabilidade de escalonamento, algo que se torna mais importante em modelos mais profundos
-
Custo
- Nos experimentos com o modelo 27B, a implementação otimizada da equipe DeepSeek (fusion, recomputation, pipeline scheduling) teve overhead de 6.7% no tempo de treinamento ao usar n=4 fluxos residuais
-
5.2 Atenção comprimida com CSA e HCA
- O objetivo é resolver, em contextos muito longos, não só o custo do cálculo dos scores de atenção, mas também o problema de o cache KV crescer proporcionalmente ao comprimento da sequência
- O DeepSeek V4 usa uma combinação híbrida de duas atenções comprimidas: Compressed Sparse Attention (CSA) e Heavily Compressed Attention (HCA)
-
Diferença em relação ao MLA
- O MLA do DeepSeek V2/V3 comprime a representação KV por token, mas ainda mantém uma entrada KV latente por token
- CSA/HCA comprime ao longo da dimensão da sequência, resumindo vários grupos de tokens em menos entradas KV comprimidas — ou seja, o cache em si fica mais curto
- Em troca de abrir mão de parte da informação por token, o custo em contextos longos é drasticamente reduzido
-
CSA vs HCA
- CSA: taxa de compressão leve (
m=4) + seleção top-k no estilo DeepSeek Sparse Attention (DSA) - HCA: compressão forte (
m'=128, ou seja, 128 tokens viram 1 entrada KV comprimida) + dense attention sobre o cache encurtado - Ambos mantêm também um ramo de janela deslizante de 128 tokens para tokens recentes não comprimidos
- O CSA preserva mais detalhes, mas usa seleção esparsa; o HCA reduz fortemente o número de entradas, permitindo dense attention — como são complementares, o DeepSeek V4 alterna os dois tipos de camada
- CSA: taxa de compressão leve (
-
Resultados de eficiência (contexto de 1M tokens, versus DeepSeek V3.2)
- DeepSeek V4-Pro: FLOPs de inferência por token em 27%, tamanho do cache KV em 10%
- DeepSeek V4-Flash: FLOPs em 10%, tamanho do cache KV em 7%
-
Pontos de cautela na avaliação
- É difícil afirmar de forma categórica que CSA/HCA é "melhor" que MLA em geral; trata-se de um projeto mais agressivo e mais complexo para contexto longo
- O artigo não traz ablation study
- Embora o DeepSeek V4-Flash-Base supere o V3.2-Base em vários benchmarks base e tenha mostrado bons resultados em retrieval com 1M tokens, isso reflete a receita completa, incluindo dados melhores, otimização baseada em Muon, mHC, otimizações de precisão/armazenamento e mudanças no sistema de treinamento/inferência
6. Conclusão
- O padrão comum entre os novos modelos open-weight deste ano é reduzir o custo da inferência em contextos longos sem diminuir o número total de parâmetros
- Gemma 4: reduz o cache KV com cross-layer KV sharing e adiciona capacity com per-layer embeddings
- Laguna XS.2: diferencia a capacity de atenção por camada
- ZAYA1-8B: move a atenção para um espaço latente comprimido
- DeepSeek V4: mistura residual restrita + atenção comprimida para contextos longos
- Os blocos transformer continuam evoluindo, mas com modificações direcionadas a alvos claros, mantendo a estrutura básica da arquitetura GPT decoder-only
- O desempenho qualitativo de modelagem continua sendo impulsionado principalmente por qualidade/quantidade dos dados e receita de treinamento
- Até agora, o transformer permanece como o status quo das arquiteturas SOTA, embora existam alternativas como modelos de difusão
- Antes, um bloco transformer básico podia ser implementado em 50~100 linhas de PyTorch, mas recentemente, com variantes de atenção e afins, a complexidade do código aumentou cerca de 10x
- Esse aumento de complexidade não é necessariamente negativo, já que reduz custos de runtime, mas torna cada vez mais difícil ter uma compreensão clara dos componentes individuais e de suas interações
- Abordagem recomendada de estudo: começar pelos LLMs originais no estilo decoder (GPT/GPT-2) e ir adicionando os novos componentes um a um
Ainda não há comentários.