🏗️ MÓDULO 4: Arquitetura Completa — Codificador, Decodificador, BERT, GPT e Variantes

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.


Lição 4.1 — O Transformer Original: Uma Arquitetura de Duas Partes

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:

  • Encoder (Codificador): Processa a sequência de entrada (por exemplo, uma frase em inglês).
  • Decoder (Decodificador): Gera a sequência de saída (por exemplo, a tradução em espanhol), uma palavra de cada vez.

🔹 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!

Lição 4.2 — O Que o Encoder Faz?

O encoder é uma pilha de camadas idênticas (por exemplo, 6 ou 8 camadas no Transformer original). Cada camada tem duas subcamadas principais:

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

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

  • Residual Connection ("skip connection"): Adiciona a entrada original à saída. Isso ajuda os gradientes a fluírem melhor durante o treinamento.
  • Layer Normalization: Normaliza as ativações para estabilizar e acelerar o treinamento.

🔹 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.


Lição 4.3 — O Que o Decoder Faz?

O decoder também é uma pilha de camadas idênticas, mas com três subcamadas em vez de duas:

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

  2. 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?"

  3. Feed-Forward Neural Network (FFN):
    Igual ao do encoder.

Ele também usa conexões residuais e normalização de camada.


Lição 4.4 — A Analogia do "Chefe e Crítico Gastronômico"

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).

    • Em cada passo, consulta sua própria receita até então (auto-atenção mascarada).
    • Depois, consulta o crítico: "Que ingrediente devo usar agora, com base no que tenho e em suas recomendações?" (atenção cruzada).
    • Por fim, ajusta o sabor (FFN).

E assim, passo a passo, você gera um prato coerente e delicioso!


Lição 4.5 — A Evolução: De Encoder-Decoder para Encoder-only e Decoder-only

Com o tempo, os pesquisadores perceberam que nem sempre precisavam de ambas as partes.

1. Arquitetura Encoder-only → BERT, RoBERTa, etc.

  • Usa apenas o encoder.
  • Ideal para tarefas onde o texto não é gerado, mas entendido ou classificado.
  • Exemplos: análise de sentimento, classificação de texto, question answering (extração), NER.
  • Vantagem: pode ver o contexto completo (passado e futuro) de cada palavra.

2. Arquitetura Decoder-only → GPT, Llama, Mistral, etc.

  • Usa apenas o decoder (sem atenção cruzada, já que não há encoder).
  • Ideal para tarefas de geração de texto autorregressiva.
  • Exemplo: chatbots, geração de histórias, resumos, código.
  • Característica chave: atenção mascarada causal — só pode olhar para trás.

3. Arquitetura Encoder-Decoder → T5, BART, etc.

  • Usa ambas as partes.
  • Ideal para tarefas de transformação de sequências: tradução, resumo, paráfrase.
  • O encoder entende a entrada; o decoder gera a saída.

Lição 4.6 — BERT: O Rei do Entendimento (Encoder-only)

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.


Lição 4.7 — GPT: O Mestre da Geração (Decoder-only)

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.


Lição 4.8 — Comparação Visual (descrita): BERT vs GPT

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.

Lição 4.9 — Por Que Nem Sempre Usar o Modelo Completo (Encoder-Decoder)?

Porque nem sempre é necessário... e é mais caro!

  • Se você só quer entender texto (ex: "Esse tweet é positivo ou negativo?"), BERT é mais eficiente.
  • Se você só quer gerar texto (ex: "Escreva um poema sobre o mar"), GPT é mais direto.
  • Se você quer transformar texto em outro (ex: "Traduza isso para francês" ou "Resuma este artigo"), então precisa de encoder-decoder.

É como escolher ferramentas:

  • Só precisa de uma chave de fenda? Não compre uma caixa de ferramentas completa.
  • Está construindo uma casa? Então precisa do conjunto completo.

✍️ Exercício de Reflexão 4.1

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.


📊 Diagrama Conceitual 4.1 — Arquiteturas Transformer (descrito)

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."

🧠 Conclusão do Módulo 4

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 é)!


Course Info

Course: AI-course2

Language: PT

Lesson: Module4