Capítulo 04 · Atenção · 12 min
Atenção é tudo que você precisa
O mecanismo que muda tudo. Como cada token olha para todos os outros para entender o contexto.
O pronome e o medico
Voltemos a esta frase:
"O medico mandou a enfermeira para casa dela porque ela..."
Para uma pessoa, "ela" se conecta naturalmente a enfermeira. Para um LLM isso nao e obvio: quando ele processa o token ela, a palavra enfermeira esta varias posicoes atras. Como ele as conecta?
Esse e o papel da atencao.
Por que a atencao existe
Antes de 2017, modelos de linguagem eram em grande parte recorrentes (RNN, LSTM): liam o texto token por token, propagando um "estado oculto" que resumia tudo o que tinham visto ate ali.
Problema: esse estado oculto e um gargalo. Tudo precisa passar por ele. Conforme a frase cresce, informacoes antigas se diluem. E o aprendizado e sequencial: para tratar a centesima palavra, e preciso ter tratado as 99 anteriores, o que dificulta a paralelizacao.
O paper Attention Is All You Need (Vaswani et al., 2017) propoe uma ruptura:
Sem recorrencia. Cada token olha diretamente para todos os outros, em paralelo.
E o mecanismo que torna possiveis os modelos modernos.
A intuicao
Em cada camada do modelo, cada token faz tres operacoes:
- Faz uma pergunta ao resto da frase (o vetor Query).
- Cada outro token mostra uma etiqueta que resume o que ele e (o vetor Key).
- O token compara sua pergunta com cada etiqueta: onde ha correspondencia, recupera um pouco de conteudo (o vetor Value).
Resultado: uma nova representacao para cada token, uma soma ponderada dos outros, em que os pesos vem das correspondencias Q-K.
Nao e preciso decorar a formula: guarde a ideia. Cada token olha para os outros e mistura o que acha relevante.
De onde saem Q, K e V exatamente?
Nao saem do nada. Para cada token, pegamos seu vetor de embedding x e multiplicamos por tres matrizes aprendidas durante o treinamento:
Q = x · W_Q
K = x · W_K
V = x · W_V
Essas tres matrizes W_Q, W_K, W_V sao os parametros da atencao. Elas sao as mesmas para todos os tokens de uma mesma camada — e o que o modelo ajusta, a cada passo de gradiente, para que as "perguntas" certas encontrem as "etiquetas" certas.
O fator √d_k na formula serve para evitar que os produtos escalares explodam quando a dimensao e grande. Sem ele, os valores antes do softmax ficam enormes, o softmax satura e o gradiente morre. Detalhe tecnico, mas necessario.
Varias perguntas ao mesmo tempo
Um unico conjunto de perguntas nao basta. Um token pode precisar olhar para seu sujeito sintatico e para sua coreferencia e para o verbo principal ao mesmo tempo.
Dai a multi-head attention: em vez de um unico sistema Q-K-V, rodamos varios em paralelo (tipicamente 8, 16, 32). Cada um aprende a se especializar em um tipo de relacao. Em modelos treinados, vemos heads dedicadas a:
- atencao local (cada token olha para si mesmo ou para vizinhos imediatos)
- ligacao sujeito-verbo
- coreferencias (pronomes em direcao ao referente)
- delimitadores (pontuacao, inicio/fim de frase)
- rima ou estrutura poetica
- coisas que ainda nao sabemos nomear
Manipule
A visualizacao abaixo mostra, em duas frases, como a atencao de diferentes heads pode parecer. Os padroes sao estilizados (pesos reais viriam de um modelo treinado), mas cada head corresponde a um comportamento observado em modelos atuais.
Cada linha mostra como um token olha para todos os outros. Algumas heads seguem a sintaxe (sujeito ↔ verbo), outras captam a semântica (referentes, antecedentes). Nenhuma destas é programada manualmente: estes padrões emergem do treinamento.
Tres coisas para testar:
- Em O gato dorme com a head "Sujeito ↔ verbo", observe a linha
dorme. O peso mais forte vai paragato. O verbo "encontrou" seu sujeito. - Em Coreferencia com a head "Coreferencia", observe a linha
ele. O peso mais forte volta paramenino. E exatamente o mecanismo que resolve o enigma do pronome. - Em qualquer head, olhe o triangulo superior direito: ele e cinza. E a mascara causal — um token so pode olhar para tokens anteriores. E isso que obriga o modelo a prever, nao a copiar.
Causal ou bidirecional?
Nem toda atencao e igual. Existem dois regimes.
Bidirecional. Cada token enxerga todos os outros, para tras e para frente. E o que o BERT (Google, 2018) e o lado encoder do T5 usam. Esses modelos sao otimos para entender uma frase — classificacao, perguntas e respostas extrativas, busca semantica — mas nao geram texto token por token.
Causal. Cada token so enxerga os anteriores. E a mascara triangular vista acima. Essa restricao e o que torna possivel a geracao autoregressiva: para prever a proxima palavra, o modelo precisa trabalhar so com o passado.
GPT, Claude, Llama, Gemini, Mistral — todos os LLMs voltados ao publico usam atencao causal. E essa mascara que os torna capazes de prever, nao apenas de descrever.
A atencao custa
Essa elegancia tem um preco. Para uma sequencia de comprimento n, calcular a matriz de atencao exige O(n²) operacoes. Dobrar o tamanho do contexto quadruplica o custo.
Por isso as janelas de contexto eram limitadas a 2.048 tokens no GPT-2, a 8.192 tokens no GPT-3.5, e foram necessarios truques algoritmicos (FlashAttention, sliding window, sparse attention) para chegar aos 200.000 tokens atuais. Voltamos a essas tecnicas no capitulo 18, onde elas se conectam a memoria do KV cache.
A atencao e poderosa; tambem e o principal gargalo dos LLMs modernos.
O proximo passo
A atencao sozinha nao faz um modelo de linguagem. E preciso empilha-la em blocos sucessivos, adicionar camadas de calculo "feed-forward", normalizacoes, conexoes residuais. Essa e a arquitetura Transformer completa: o tema do proximo capitulo.
Atualizado em