Duração estimada deste módulo: 2 - 2.5 horas
Objetivo: Entender como os blocos do Transformer são montados em arquiteturas completas e por que modelos como BERT e GPT — embora compartilhem a mesma base — são usados para tarefas radicalmente diferentes.
O artigo "Attention Is All You Need" (2017) não introduziu apenas um mecanismo de atenção. Apresentou uma arquitetura completa originalmente projetada para tarefas de tradução automática.
Essa arquitetura tem dois componentes principais:
🔹 Analogia útil:
Imagine um intérprete simultâneo em uma conferência.
- O encoder é como seu ouvido e cérebro: ouve e compreende completamente a frase do orador.
- O decoder é como sua boca: gera a tradução palavra por palavra, baseando-se no que foi compreendido — e até se corrige se cometer um erro!
O encoder é uma pilha de camadas idênticas (por exemplo, 6 ou 8 camadas no Transformer original). Cada camada tem duas subcamadas principais:
Multi-Head Self-Attention:
Cada palavra atende a todas as outras palavras da mesma frase. Isso permite que cada palavra se "redefina" no contexto da frase inteira.
Feed-Forward Neural Network (FFN):
Uma rede neural simples (mas poderosa) aplicada independentemente a cada palavra. Serve para transformar não linearmente a representação de cada palavra.
Além disso, cada subcamada é envolvida em:
🔹 Saída final do Encoder:
Uma representação contextualizada de cada palavra na frase de entrada. Essa representação captura não apenas o significado da palavra, mas também sua relação com todas as outras.
O decoder também é uma pilha de camadas idênticas, mas com três subcamadas em vez de duas:
Masked Multi-Head Self-Attention:
Aqui está a grande diferença. O decoder também aplica auto-atenção, mas com uma máscara que impede cada palavra de "olhar para o futuro".
Ao gerar a palavra 3, só pode atender às palavras 1 e 2. Não pode trapacear olhando a palavra 4!
Isso é essencial para geração de texto, porque no mundo real — quando você escreve ou fala — não sabe qual palavra vem a seguir.
Multi-Head Cross-Attention:
Aqui, o decoder "olha" para a saída do encoder. As Queries vêm do decoder; as Keys e Values vêm do encoder.
Isso permite que cada palavra que o decoder está gerando "pergunte" ao encoder: "Qual parte da frase original é relevante para o que quero dizer agora?"
Feed-Forward Neural Network (FFN):
Igual ao do encoder.
Ele também usa conexões residuais e normalização de camada.
Imagine que você esteja cozinhando um novo prato (gerando texto).
O encoder é como um crítico gastronômico que já provou todos os ingredientes (palavras de entrada) e lhe dá um relatório detalhado: "O alho está bom, mas falta acidez; o tomate é doce — combine-o com algo azedo."
O decoder é como você, o chef, adicionando ingredientes um por um (palavra por palavra).
E assim, passo a passo, você gera um prato coerente e delicioso!
Com o tempo, os pesquisadores perceberam que nem sempre precisavam de ambas as partes.
BERT (Bidirectional Encoder Representations from Transformers), lançado pelo Google em 2018, causou uma revolução.
🔹 Inovação chave:
Treinamento bidirecional. Ao contrário das RNNs ou GPT (que só olham para trás), o BERT pode ver o contexto completo simultaneamente.
🔹 Tarefa de treinamento:
"Masked Language Modeling" — mascara palavras aleatórias em uma frase e pede ao modelo para predizê-las usando o contexto da esquerda e da direita.
Exemplo:
"O [MASK] pulou sobre o cercado." → O modelo aprende que "gato", "cachorro", "coelho" são boas predições.
🔹 Resultado:
Representações linguísticas extremamente ricas, ideais para tarefas de compreensão.
GPT (Generative Pre-trained Transformer), lançado pela OpenAI, toma o caminho oposto.
🔹 Inovação chave:
Treinamento autorregressivo. Prediz a próxima palavra em uma sequência, usando apenas o contexto anterior.
Exemplo:
"O gato pulou sobre o..." → prediz "cercado", "mesa", "cama", etc.
🔹 Tarefa de treinamento:
"Language Modeling" — simplesmente prediz a próxima palavra, repetidamente, em bilhões de textos.
🔹 Resultado:
Modelos incrivelmente fluentes para geração de texto, mantendo coerência de longo prazo e seguindo instruções.
BERT (Encoder-only):
Entrada: [O] [gato] [pulou] [sobre] [o] [cercado]
Processamento: TODAS as palavras são processadas juntas.
Atenção: Cada palavra pode ver TODAS as outras (bidirecional).
Saída: Vetor contextualizado para CADA palavra → ideal para classificação ou extração.
GPT (Decoder-only):
Geração: Começa com <start>, depois gera uma palavra de cada vez.
Passo 1: <start> → gera "O"
Passo 2: <start> + "O" → gera "gato"
Passo 3: <start> + "O" + "gato" → gera "pulou"
...
Atenção: Em cada passo, só pode ver palavras anteriores (causal/mascarada).
Saída: Uma sequência gerada → ideal para criar novo texto.
Porque nem sempre é necessário... e é mais caro!
É como escolher ferramentas:
Pense em três tarefas diferentes de PLN. Para cada uma, decida se usaria um modelo tipo BERT (encoder-only), GPT (decoder-only) ou T5 (encoder-decoder). Justifique sua escolha.
Exemplo:
Tarefa: "Extrair o nome da pessoa mencionada em um artigo de notícias."
Escolha: BERT → porque é uma tarefa de extração/compreensão, não de geração.
Transformer Original (Tradução):
[Entrada: "Hello world"] → ENCODER → [Representações] → DECODER → [Saída: "Hola mundo"]
BERT (Classificação de Sentimento):
[Entrada: "Eu amei o filme"] → ENCODER → [Vetor CLS] → Classificador → "POSITIVO"
GPT (Geração de Texto):
<start> → DECODER → "Hoje" → DECODER → "é" → DECODER → "um" → DECODER → "grande" → ... → "dia."
O Transformer não é um único modelo, mas uma família de arquiteturas.
- O encoder é o "analista": compreende profundamente o texto de entrada.
- O decoder é o "criador": gera novo texto passo a passo, ciente do passado.
- Juntos, são um "tradutor perfeito".
BERT e GPT são dois lados da mesma moeda: um para compreensão, outro para criação. Sua popularidade não é por acaso — cada um é otimizado para seu propósito.
Agora que entendemos a arquitetura, é hora de colocar a mão na massa com código! No próximo módulo, aprenderemos a usar modelos Transformer reais com Hugging Face — sem necessidade de entender cada peso ou neurônio. Carregaremos um modelo, daremos texto a ele e obteremos respostas... como mágica (mas sabemos que não é)!