Transformers, da palavra à atenção

O transformer é a arquitetura por trás dos grandes modelos de linguagem, dos tradutores automáticos e de modelos que leem notas clínicas. A ideia central cabe numa frase: cada palavra olha para todas as outras e decide em quais prestar atenção. Aqui você acompanha isso com frases curtas e números que dá para conferir.

Olha tudo de uma vez

Redes recorrentes liam palavra por palavra. O transformer processa a frase inteira em paralelo, o que permite treinar com volumes enormes de texto.

Liga palavras distantes

O pronome no fim da frase encontra o substantivo do começo em um único passo, sem depender de uma memória que se desgasta.

Uma peça, muitos usos

Os mesmos blocos servem para entender texto (BERT), gerar texto (GPT, Claude) e transformar um texto em outro (tradução, resumo).

Recorrente × transformer

1Palavras viram vetores, e a posição entra na conta

Primeiro, cada palavra vira uma lista de números, o embedding. Aqui usamos seis traços legíveis (pessoa, finanças, lugar, saúde, ação, função gramatical); num modelo real são centenas ou milhares de números aprendidos. A atenção, sozinha, não sabe a ordem das palavras. Por isso somamos um vetor de posição.

valor positivovalor negativoquanto mais forte a cor, maior o valor

2Atenção: cada palavra consulta as outras

Cada palavra gera três vetores. A consulta (Q) diz o que ela procura; a chave (K), o que ela oferece; o valor (V), a informação que ela passa adiante. A semelhança entre a consulta de uma palavra e as chaves das outras vira um peso, e a palavra recebe a mistura dos valores, ponderada por esses pesos.

  1. 1. CompararProduto escalar entre a consulta da palavra e a chave de cada palavra: q · k.
  2. 2. EscalarDividir por √d (d = tamanho do vetor) para os números não explodirem.
  3. 3. NormalizarSoftmax: os pesos ficam positivos e somam 100%.
  4. 4. MisturarSomar os valores, cada um multiplicado pelo seu peso.
Atenção(Q, K, V) = softmax( Q·Kᵀ / √d ) · V

Clique numa palavra para ver para onde ela olha. A espessura de cada arco é o peso de atenção.

O cálculo, passo a passo

O que a palavra carrega depois da atenção

Resultado = vetor original + mistura dos valores (conexão residual). É assim que "banco" puxa o sentido de "dinheiro" ou de "praça".

Todos os pesos de uma vez

Cada linha é uma palavra consultando as demais; cada linha soma 100%. Todas as linhas são calculadas ao mesmo tempo, como multiplicações de matrizes. Por isso o transformer é tão rápido em GPU. Clique numa linha para selecioná-la.

Um modelo real roda várias cabeças como estas em paralelo (multi-head attention), cada uma aprendendo a olhar para um tipo de relação, e junta os resultados.

3Codificador e decodificador

A atenção é empilhada em blocos. O codificador lê a frase de entrada inteira e produz um vetor com contexto para cada palavra. O decodificador gera a saída uma palavra por vez: olha para o que já escreveu e, pela atenção cruzada, consulta o que o codificador entendeu. Clique em qualquer bloco.

Três famílias de modelos

Escolha uma família para ver quais blocos ela usa.

4O decodificador em ação: uma tradução, palavra por palavra

O codificador lê "O paciente tem febre alta" de uma vez. O decodificador começa com um marcador de início e, a cada passo, calcula a probabilidade de cada palavra do vocabulário ser a próxima. A escolhida volta como entrada, e o ciclo se repete até o marcador de fim.

Atenção cruzada: onde o decodificador olha na frase original

Máscara: ninguém espia o futuro

Na autoatenção do decodificador, cada posição só enxerga as anteriores (quadrados coloridos). As posições futuras (×) são bloqueadas; no treino, elas contêm a resposta.

Probabilidade da próxima palavra

Temperatura

Para experimentar em aula

  1. Na seção 1, compare "médico" nas duas frases com e sem o vetor de posição. Sem ele, o modelo não saberia quem examinou quem.
  2. Na seção 2, selecione "banco" nas duas frases. As mesmas letras terminam com sentidos diferentes, conforme a vizinhança.
  3. Na frase do paciente, clique em "ele". Para onde vai a maior parte da atenção?
  4. Desligue a divisão por √d. Os pesos ficam mais concentrados. Em vetores com milhares de números, sem essa divisão o softmax ficaria quase todo em uma palavra.
  5. Troque para a cabeça 2. Ela ignora o significado e olha para os vizinhos. Por que valeria a pena ter as duas?
  6. Na seção 4, observe a atenção cruzada ao gerar "high" e "fever". A ordem em inglês é invertida em relação a "febre alta".
  7. Suba a temperatura para 2. As alternativas ganham probabilidade: é assim que um assistente pode variar as respostas.