Um novo “Attention Sink Detector” identifica tokens que acumulam a maior parte da massa de atenção durante o estágio de prefill da inferência de modelos de linguagem de grande escala (LLM). A ferramenta mostra que remover esses tokens de sumidouro (sink tokens) do cache de chave-valor (KV cache) prejudica o desempenho do modelo, tornando-os âncoras essenciais para uma geração estável.
Por que o estágio de prefill é importante
A maioria das pesquisas em LLM foca no loop de geração token por token, mas o trabalho que ocorre antes do primeiro token — o prefill — define o tom para tudo o que se segue. Durante o prefill, o modelo processa todo o prompt, constrói o cache KV e distribui a atenção por todas as posições. Como o softmax que produz os pesos de atenção deve somar 1, o modelo não pode dizer que “nada é relevante”. Ele despeja a massa de probabilidade restante em um token que seja fácil de endereçar, geralmente o primeiro token da sequência. Esse token torna-se um attention sink (sumidouro de atenção).
O que é um attention sink, em termos simples
Em um Transformer, cada cabeça computa um peso para cada par de tokens. Quando a distribuição é muito enviesada, um único token pode receber uma parcela desproporcional do peso de atenção. O fenômeno não é um erro; ele decorre da restrição do softmax. O primeiro token (frequentemente um marcador de início de frase) atua como uma “válvula de escape” para a probabilidade residual que não pode ser atribuída a outro lugar.
Implicações para o gerenciamento do cache KV
Os caches KV armazenam os vetores de chave e valor para cada token que foi processado, permitindo buscas rápidas durante a geração. Em cenários de contexto longo, os profissionais realizam o pruning (poda) do cache para permanecer dentro dos limites de memória da GPU. O novo detector mostra que deletar indiscriminadamente tokens que parecem “irrelevantes” também deleta os próprios sumidouros nos quais o modelo confia, fazendo o desempenho despencar. Fixar os tokens de sumidouro no cache preserva o equilíbrio interno do modelo e mantém a geração estável.
Como o detector funciona
- Atenção eager: A implementação ignora kernels rápidos como o FlashAttention, que colapsam a matriz de atenção completa, e em vez disso registra os scores de atenção brutos para cada cabeça.
- Agregação em nível de camada: Os scores são calculados pela média de todas as camadas e cabeças para produzir um único perfil de massa de atenção por token.
- Desvio absoluto da mediana logarítmica (MAD): Como os pesos de atenção são fortemente enviesados para a direita, um teste simples de média-desvio padrão classifica incorretamente a variância normal como outliers. A transformação logarítmica dos pesos normaliza a distribuição; a aplicação do MAD então sinaliza tokens cuja massa de atenção excede a dispersão típica.
Duas classes de sumidouros descobertas
- Sumidouros reais (True sinks) – O token de início de frase (BOS) absorve consistentemente uma parte massiva da atenção, independentemente do conteúdo do prompt.
- Sumidouros estruturais (Structural sinks) – Tokens que pertencem a prompts de nível de sistema, como os marcadores usados em ChatML (
<im_start>,<im_end>), formam pequenos clusters que também atraem atenção. Eles atuam como fronteiras lógicas, ajudando o modelo a separar mensagens do usuário de instruções do sistema.
Contraponto: Precisamos realmente da matriz bruta?
O autor aponta que, sem os números brutos, o fenômeno do sumidouro permanece oculto, e qualquer política de poda de cache baseada em dados incompletos corre o risco de desestabilizar o modelo.
O que observar a seguir
O detector é a segunda parte de uma série de quatro partes que começou com um rastreador de entropia para qualidade de geração. A próxima parte integrará a detecção de sumidouros com decodificação especulativa guiada por entropia. O estudo final será um estudo empírico.
Conclusão: Attention sinks não são uma peculiaridade obscura; são pilares estruturais que mantêm a distribuição de atenção de um Transformer comportada durante o prefill. Qualquer estratégia de poda de cache KV que os ignore comprometerá a estabilidade do modelo. Detectar e preservar esses tokens é uma salvaguarda de baixo custo que pode tornar a inferência de contexto longo confiável e eficiente.
