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.
Redes recorrentes liam palavra por palavra. O transformer processa a frase inteira em paralelo, o que permite treinar com volumes enormes de texto.
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.
Os mesmos blocos servem para entender texto (BERT), gerar texto (GPT, Claude) e transformar um texto em outro (tradução, resumo).
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.
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.
Clique numa palavra para ver para onde ela olha. A espessura de cada arco é o peso de atenção.
Resultado = vetor original + mistura dos valores (conexão residual). É assim que "banco" puxa o sentido de "dinheiro" ou de "praça".
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.
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.
Escolha uma família para ver quais blocos ela usa.
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.
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.