CajuínaCode
Voltar ao blog
Inteligência ArtificialProgramaçãoTecnologiaTutorial

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.

CC

Cajuina Code

·4 min de leitura

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 VetorialConceito da AnalogiaPapel no Processamento de Contexto
Query (Consulta)A busca que você fazRepresenta a palavra atual que estamos processando (ex: "Quem praticou a ação do verbo sorriu?").
Key (Chave)Os rótulos das tabelasRepresentações descritivas de cada palavra na frase. Servem para combinar com a consulta.
Value (Valor)O dado bruto da linhaO 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):

  1. 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.
  2. 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.

Newsletter

Receba as notas de desenvolvimento

Enviamos atualizações técnicas e bastidores de código sem spam direto no seu e-mail.

Leia também

·3 min

Pensamento Computacional (Parte 4): Algoritmos

O que você aprenderá hoje: * Conceito de Algoritmos: Entender a definição formal de sequências lineares e finitas de instruções. * Analogias do cotidiano: Analisar como o GPS funciona e a receita de bolo de chocolate da Maria. * Criação prática: Rascunhar o seu primeiro pseudo-código (Portugol) de aprovação de notas. --- Chegamos ao final da nossa trilha de Pensamento Computacional! Ao longo dos posts anteriores, aprendemos a dividir grandes problemas em partes menores (Parte 1), a identif

·3 min

Pensamento Computacional (Parte 3): Abstração

O que você aprenderá hoje: * Definição de Abstração: Compreender como ignorar detalhes e focar apenas no essencial. * Analogias cotidianas: Analisar o funcionamento prático do mapa do metrô e do painel do carro do João. * Abstração no software: Ver como as linguagens ocultam a complexidade eletrônica em comandos amigáveis. --- Nas duas primeiras partes da nossa trilha, aprendemos a fatiar grandes problemas em pequenas partes (Parte 1) e a buscar semelhanças e tendências entre eles para pou