Linear Attention
A atenção linear substitui o softmax por um mapa de características, fazendo com que o custo cresça linearmente com o comprimento e a descodificação mantenha um estado de tamanho fixo. Aborda DeltaNet e arquiteturas híbridas.
A atenção linear é uma família de mecanismos de atenção cujo custo cresce linearmente com o comprimento da sequência, em vez do custo quadrático da autoatenção softmax padrão. A atenção softmax pontua cada consulta em relação a cada chave, então N tokens produzem uma matriz de pontuação N × N por cabeça, e um Transformer que gera texto mantém um cache KV que cresce a cada token. A atenção linear substitui a similaridade softmax por um produto escalar de mapas de características, φ(q)·φ(k), o que permite ao modelo reagrupar os produtos de matrizes e resumir todas as chaves e valores anteriores em um estado de tamanho fixo. Um artigo de 2020 de Katharopoulos et al., Transformers são RNNs, apresentou a forma mais comum do método, e variantes com portas agora são executadas em modelos de linguagem grandes (LLMs) de produção, junto com camadas de atenção padrão.
Como funciona a atenção linear#
A atenção softmax calcula softmax(QKᵀ)V e, como exp(q·k) não se fatoriza em uma parte da consulta e outra da chave, é preciso pontuar cada par consulta-chave. Com um mapa de características φ, como elu(x) + 1, a saída se torna φ(Q)(φ(K)ᵀV), normalizada por φ(Q) multiplicado pela soma das linhas de φ(K). A multiplicação de matrizes é associativa, então φ(K)ᵀV pode ser calculado primeiro, produzindo uma matriz d × d, em que d é a dimensão da cabeça, independentemente do número de tokens. O tempo cai de O(N²d) para O(Nd²), o que compensa quando as sequências são muito mais longas que a dimensão da cabeça.
Para modelos causais, a mesma álgebra transforma a atenção em uma rede neural recorrente (RNN) com um estado matricial. Cada novo token adiciona o produto externo φ(k)vᵀ ao estado, e sua consulta lê esse estado; assim, a geração de texto usa memória constante e tempo constante por token. O treinamento usa a forma paralela ou kernels por blocos, como os da biblioteca flash-linear-attention, para que uma GPU ainda processe sequências inteiras de uma só vez. No PyTorch, as duas formas produzem as mesmas saídas:
import torch
import torch.nn.functional as F
torch.manual_seed(0)
n, d = 2048, 64
q, k, v = torch.randn(3, n, d).unbind(0)
phi_q, phi_k = F.elu(q) + 1, F.elu(k) + 1 # positive feature map in place of softmax
# Parallel form: an n x n causal score matrix, as in softmax attention
scores = torch.tril(phi_q @ phi_k.T)
parallel = (scores @ v) / scores.sum(dim=-1, keepdim=True)
# Recurrent form: a fixed d x d state that each new token updates
state, norm, outputs = torch.zeros(d, d), torch.zeros(d), []
for t in range(n):
state += torch.outer(phi_k[t], v[t])
norm += phi_k[t]
outputs.append(phi_q[t] @ state / (phi_q[t] @ norm))
recurrent = torch.stack(outputs)
print("Same outputs:", torch.allclose(parallel, recurrent, atol=1e-4))
print(f"Recurrent state: {state.numel():,} numbers; KV cache after {n:,} tokens: {2 * n * d:,} numbers")A saída é Same outputs: True. O estado 64 × 64 contém 4.096 números, independentemente do crescimento da sequência, enquanto o cache KV de uma cabeça, após 2.048 tokens, contém 262.144 números e cresce em 128 a cada novo token.
DeltaNet, portas e modelos híbridos#
Um estado de tamanho fixo é uma memória com perdas. A atenção linear simples apenas adiciona informações ao estado, então associações antigas se acumulam e interferem umas nas outras, e a recuperação de fatos específicos de uma janela de contexto longa fica atrás da atenção softmax. Duas soluções predominam atualmente. As portas multiplicam o estado por um decaimento aprendido antes de cada atualização, permitindo que o modelo esqueça; é um mecanismo compartilhado com os modelos de espaço de estados (SSMs), como o Mamba-2, cujos autores mostraram que as duas famílias são formas duais uma da outra. A regra delta, derivada de trabalhos que relacionam Transformers lineares a programadores de pesos rápidos, lê o valor armazenado atualmente para uma chave e grava apenas a diferença entre o novo valor e a previsão armazenada. O DeltaNet tornou o treinamento pela regra delta paralelo ao longo da sequência em 2024; o Gated DeltaNet (ICLR 2025) adicionou uma porta de decaimento, e o Kimi Linear da Moonshot AI aprimora essa porta para atuar separadamente em cada canal.
Modelos de produção intercalam essas camadas com atenção completa, para que algumas camadas softmax mantenham a recuperação exata. O Qwen3-Next e a família Qwen3.5 repetem um bloco de três camadas Gated DeltaNet seguidas por uma camada de atenção softmax com porta, e o Kimi Linear usa uma combinação 3:1 semelhante de Kimi Delta Attention e atenção latente multi-cabeça:
Atenção linear em comparação com métodos relacionados#
- Autoatenção: a forma softmax exata que pontua todos os pares de tokens, com tempo quadrático e um cache KV que cresce com a sequência.
- Atenção flash: um kernel de GPU que calcula a atenção softmax exata em blocos mantidos na memória integrada do chip. Reduz o tráfego de memória, mas o número de operações continua quadrático.
- Atenção esparsa: mantém o softmax e pontua apenas pares selecionados, como uma faixa local de tokens recentes.
- Atenção de consulta agrupada (GQA): compartilha chaves e valores entre cabeças de consulta para reduzir o cache KV por um fator constante, mantendo a atenção softmax completa.
Onde a atenção linear é usada#
Modelos de linguagem com contexto longo são a maior aplicação, porque as camadas lineares de um modelo híbrido mantêm um estado de tamanho constante durante a decodificação, e apenas as poucas camadas softmax carregam um cache KV crescente. A visão é a segunda maior aplicação, já que o número de tokens aumenta com a resolução da imagem. O EfficientViT usa atenção linear baseada em ReLU para segmentação semântica de alta resolução, e o SANA da NVIDIA cria um Transformer de difusão linear que gera imagens de até 4096 × 4096 pixels. Na detecção de objetos, a atenção costuma ser executada somente onde os mapas de características são menores. O YOLO26 mantém a atenção softmax padrão e a executa somente no bloco C2PSA e em um bloco C3k2 com atenção ativada, ambos no mapa de características de stride 32, com resolução 20 × 20, de uma imagem de 640 pixels; assim, cada camada de atenção vê 400 tokens e uma matriz de pontuação completa com 160.000 entradas por cabeça.










