Como funcionam os Transformers e o mecanismo de Self-Attention
Entenda a arquitetura por trás dos grandes modelos de linguagem (LLMs). Conheça o mecanismo de Self-Attention e o fim do gargalo das redes recorrentes.
Cajuina Code
A Inteligência Artificial generativa e os Grandes Modelos de Linguagem (LLMs) como o ChatGPT revolucionaram a indústria de software. No entanto, por trás da aparente mágica de gerar respostas humanizadas, existe uma mudança de paradigma estrutural na forma como computadores processam a linguagem humana.
Essa revolução aconteceu graças ao surgimento da arquitetura Transformer e de seu componente central, o mecanismo de Self-Attention (Autoatenção). Neste artigo, vamos desmistificar o funcionamento dessas tecnologias utilizando analogias familiares a programadores.
TL;DR: Diferente de arquiteturas antigas que liam textos de forma sequencial (palavra por palavra), os Transformers analisam toda a frase de uma vez e calculam o peso de contexto entre as palavras usando vetores matemáticos chamados Query, Key e Value.
O Gargalo do NLP Antigo: Por que as RNNs falharam?
Antes de 2017, o processamento de linguagem natural (NLP) dependia de redes recorrentes chamadas de RNNs e LSTMs (TUNSTALL; VON WERRA; WOLF, 2022).
Para um desenvolvedor, o funcionamento de uma RNN é idêntico a um loop for clássico. O modelo lê a primeira palavra da frase, calcula um estado oculto (hidden state), passa esse resultado para ler a segunda palavra e assim por diante. Esse processamento puramente sequencial gerava dois problemas graves de engenharia:
- Falta de Paralelismo: Como a palavra
[i]depende obrigatoriamente do cálculo da palavra anterior[i-1], era impossível treinar esses modelos paralelizando o processo em múltiplas GPUs. O hardware de alta performance ficava subutilizado. - Esquecimento de Longo Prazo: Em textos grandes, quando a rede chegava ao fim do parágrafo, ela já havia sobrescrito ou "esquecido" os dados das primeiras frases da entrada, limitando a coerência do texto.
A Revolução da Arquitetura Transformer
Apresentada no histórico artigo acadêmico "Attention Is All You Need" da equipe do Google, a arquitetura Transformer jogou fora o processamento sequencial (FOSTER, 2023). Em vez de loops de repetição, ela processa todas as palavras da frase de entrada de forma simultânea.
Estruturalmente, o Transformer original é dividido em dois blocos:
- Encoder (Codificador): Processa os dados de entrada (como o texto em português) e os converte em uma matriz rica de representações matemáticas de contexto (embeddings).
- Decoder (Decodificador): Consome a representation criada pelo Encoder e gera novos dados (como a tradução ou a resposta) de forma iterativa, um token de cada vez.
Como funciona o Self-Attention (Autoatenção)?
Se o modelo recebe todas as palavras do texto de uma vez só, como ele sabe qual palavra se relaciona com qual? É aí que entra o **Self-Attention**.
O mecanismo calcula um score de relevância entre todas as palavras do texto ao mesmo tempo (ALAMMAR; GROOTENDORST, 2024). Considere a frase: "O menino olhou para o cachorro e sorriu". Quando o modelo está calculando o contexto do verbo "sorriu", o mecanismo de autoatenção atribui um peso matemático muito maior para o termo "menino" (o sujeito da ação) do que para "olhou" ou "cachorro".
A Analogia com Banco de Dados (Query, Key, Value)
Para quem programa, a melhor forma de entender o cálculo matemático da atenção é fazer uma analogia com a busca em um banco de dados do tipo Chave-Valor (Key-Value Store) (ALAMMAR; GROOTENDORST, 2024):
| Elemento Vetorial | Conceito da Analogia | Papel no Processamento de Contexto |
|---|---|---|
| Query (Consulta) | A busca que você faz | Representa a palavra atual que estamos processando (ex: "Quem praticou a ação do verbo sorriu?"). |
| Key (Chave) | Os rótulos das tabelas | Representações descritivas de cada palavra na frase. Servem para combinar com a consulta. |
| Value (Valor) | O dado bruto da linha | O conteúdo semântico real da palavra. Se a Key der match com a Query, esse valor é retornado. |
Matematicamente, o mecanismo multiplica a Query da palavra ativa pelas Keys de todas as outras palavras do texto usando produto escalar. A similaridade desse cálculo gera uma pontuação de relevância (score). Os valores (Values) das palavras que tiveram maior match são somados de forma ponderada, gerando o vetor de contexto perfeito.
Para extrair diferentes relações gramaticais ao mesmo tempo (como perceber que uma palavra é um verbo em uma parte e que é um substantivo em outra), os Transformers rodam esse processo em paralelo várias vezes. Isso é chamado de Multi-Head Attention (Atenção Multi-Cabeças).
Por que isso mudou o desenvolvimento de software?
O impacto prático na engenharia de software foi imenso por dois fatores de escala (HUYEN, 2024):
- Escalabilidade em Hardware: Sem as amarras do processamento sequencial das RNNs, o treinamento pôde ser distribuído em clusters de milhares de GPUs modernas, permitindo o nascimento de modelos gigantescos.
- Relacionamentos Distantes: Como o cruzamento é vetorial, a distância entre duas palavras no texto não importa. A atenção conecta a primeira palavra à última na mesma velocidade e com a mesma eficiência que conecta termos vizinhos.
Perguntas Frequentes
Qual a diferença de modelos Encoder-only e Decoder-only?
Modelos focados apenas em compreender ou classificar textos (como o BERT) usam apenas a parte do Encoder. Já modelos voltados à geração de conteúdo de forma iterativa (como a família GPT) são focados apenas no Decoder.
Os Transformers usam muita memória RAM?
Sim. Como o Self-Attention calcula a relação de cada palavra com todas as outras palavras da frase, a complexidade computacional é quadrática em relação ao tamanho da frase. É por isso que modelos possuem limites de "tamanho de contexto" (context window).
Referências Bibliográficas
ALAMMAR, Jay; GROOTENDORST, Maarten. Hands-On Large Language Models: Language Understanding and Generation. Sebastopol, CA: O'Reilly Media, 2024.
FOSTER, David. Generative Deep Learning. 2. ed. Sebastopol, CA: O'Reilly Media, 2023.
HUYEN, Chip. AI Engineering: Building Applications with Foundation Models. Sebastopol, CA: O'Reilly Media, 2024.
PROSISE, Jeff. Applied Machine Learning and AI for Engineers: Solve Business Problems That Can’t Be Solved Algorithmically. Sebastopol, CA: O'Reilly Media, 2022.
TUNSTALL, Lewis; VON WERRA, Leandro; WOLF, Thomas. Natural Language Processing with Transformers: Building Language Applications with Hugging Face. Sebastopol, CA: O'Reilly Media, 2022.