← Blog

O que um transformer faz

Um modelo de linguagem parece conversar. Por baixo, completa sequência. Recebe tokens — pedaços de palavra, pontuação, espaço — e aposta no próximo. O transformer é a arquitetura que tornou essa aposta boa o suficiente para virar produto.

A peça que importa não é o nome. É a atenção: cada posição da sequência olha as outras e monta uma mistura ponderada. Quem já viu redes como funções empilhadas pode guardar a mesma imagem. O transformer é essa função, desenhada para sequência, com um tipo de mistura que as redes recorrentes não tinham.

A memória das RNNs era um funil

Antes, o caminho padrão para texto era a rede recorrente. Ela lia um token por vez e atualizava um estado oculto. Esse estado era a memória da frase. Em tese, o último estado continha o começo. Na prática, o começo chegava esmagado.

Duas frases longas com um “não” no início punham um peso enorme naquele vetor único. O gradiente tinha de atravessar dezenas de passos para ensinar o início a importar no fim. Traduzir uma sentença era comprimir tudo num vetor e depois descomprimir. Funcionava em frases curtas. Envelhecia mal.

Houve consertos: portas, estados de célula, atenção colada no fim do encoder. O diagnóstico já estava lá. Sequência precisa de um jeito de consultar o passado sem obrigar o passado a caber num único resumo.

flowchart TD
  A[Tokens] --> B[Escores]
  B --> C[Pesos]
  C --> D[Mistura]
  D --> E[Próximo token]
  classDef ouro fill:#FBF5E4,stroke:#C9A227,color:#0B1F18,stroke-width:1.4px
  classDef verde fill:#F3FAF7,stroke:#1E7A57,color:#0B1F18,stroke-width:1.4px
  classDef fim fill:#14513B,stroke:#0F3328,color:#FBFAF6,stroke-width:1.4px
  class A ouro
  class B,C,D verde
  class E fim

Atenção é uma combinação ponderada

Pegue uma palavra no meio da frase: “banco”. Sem contexto, oscila entre dinheiro e assento. A atenção não consulta um dicionário. Compara essa posição com as outras da janela — “sentou”, “praça”, “agência”, “juros” — e atribui pesos. A representação nova de “banco” é a soma das representações vizinhas, cada uma multiplicada pelo seu peso.

Os pesos são positivos e somam um, como uma média que escolhe em quem prestar contas. Se “praça” e “sentou” ganham peso, a mistura puxa para assento. Se “juros” ganha, puxa para dinheiro. Nada disso é compreensão no sentido humano. É geometria: vetores próximos colaboram mais.

Na implementação, cada token produz três papéis. Uma consulta: o que estou procurando. Uma chave: o que ofereço para ser encontrado. Um valor: o que entrego se for escolhido. A pontuação entre consulta e chave vira peso. O valor entra na mistura. Várias cabeças fazem isso em paralelo, como se cada uma pudesse especializar um tipo de relação: concordância, referência, vizinhança próxima.

O palpite ousado do artigo de 2017 foi que essa mistura, empilhada, bastava. Sem recorrência obrigatória. A sequência entra de uma vez. As posições se falam com atenção, não através de um estado que viaja token a token.

O que o bloco acrescenta além da atenção

Atenção sozinha mistura. Não transforma bastante. Entre um bloco e outro há uma rede pequena, a mesma em cada posição, que dobra e reconta o vetor. Há conexões residuais, para o sinal e o gradiente não se perderem no empilhamento. Há normalização, para a escala não explodir.

A ordem dos tokens não vem de graça. Sem uma marca de posição, a mistura é um saco de palavras sofisticado. A marca — somada ou concatenada ao token — devolve o “onde”. Modelos recentes variam o jeito dessa marca. A necessidade permanece: sequência não é conjunto.

Na geração, a atenção para a frente se mascara. O token atual não pode olhar o futuro que ainda será escrito, senão o treino cola a resposta. No uso, o futuro não existe: o modelo escreve, acrescenta o que escreveu ao contexto, e repete. Completar sequência, um token após o outro.

Janela de contexto é restrição de produto

Atenção compara pares de posições. Crescendo a janela, o custo cresce rápido. Memória também. Por isso “quantos tokens o modelo lê” não é um detalhe de ficha técnica. É teto de produto.

A janela limita o que o usuário pode colar, o tamanho do contrato que o assistente “lembra”, o trecho de código que entra na revisão, o capítulo que cabe na pergunta. Estender a janela custa latência, dinheiro e, muitas vezes, qualidade nas pontas: o meio da janela recebe menos uso efetivo do que o marketing sugere.

Há atalhos — recortar, resumir, buscar trechos e só então gerar. Não são traição à arquitetura. São admissão de que a memória da atenção é cara e finita. Um transformer não tem, por padrão, arquivo morto. Tem a janela. O que ficou fora não entra na mistura.

Isso vale para quem desenha produto. Prometer “lê o seu drive inteiro” sem dizer o recorte é prometer um sistema de busca mais um gerador, não uma janela infinita. A restrição deve aparecer na interface: o que foi considerado, o que foi cortado, o que é citação e o que é continuação.

O que um transformer não faz

Não verifica fatos. A aposta no próximo token reproduz padrões do treino. Padrões incluem verdades, clichês e invenções fluentes. Fluência não é critério de verdade.

Não substitui recuperação. Se a informação não está na janela nem foi absorvida como regularidade estatística, a mistura não a inventa com confiabilidade. Inventa mesmo assim, com sintaxe correta.

Não lê “como um humano lê”. Lê como um empilhamento de misturas ponderadas. A metáfora da atenção ajuda. A metáfora da mente atrapalha. O modelo não decide prestar atenção no sentido de interesse. Calcula pesos que, no treino, reduziram a perda de prever o próximo token.

Também não é a única arquitetura possível para sequência. É a que, neste período, melhor equilibrou treino paralelo, alcance e escala. Entender o que ela faz evita dois erros simétricos: tratar o modelo como oráculo, e tratar a atenção como detalhe de implementação que o produto pode ignorar.

Uma frase para levar

Um transformer recebe uma janela de tokens, deixa cada posição misturar as outras segundo pesos aprendidos, e usa essa representação para continuar o texto — ou classificar, traduzir, transcrever, conforme a cabeça de saída. A inovação não foi “mais camadas”. Foi trocar o funil da memória recorrente por uma consulta direta ao contexto. O contexto, porém, continua tendo tamanho. Esse tamanho é uma decisão de engenharia e de produto, não um detalhe que o usuário não precisa saber.

Se a frase seguinte parece inteligente, pergunte antes: o que estava na janela, o que foi misturado, e o que a aposta do próximo token não poderia saber.

Atenção e transformers, no degrau em que a série AI One chega depois de sequências e memória, são o próximo passo natural desta conversa.

Leia também: Redes neurais: o que está sendo aprendido e Backpropagation em linguagem humana.

#Transformers#Atenção#LLM#NLP

Thiago Nogueira

Autor de A Caixa Mágica e das séries Programming One e AI One na Editora Pensar Bem.

Capa de AI One

AI One · Volume 8

Do self-attention ao GPT pequeno, lendo o diário oficial que ninguém lê.