01-03-02 — Self-Supervised Learning e Por Que Importa para LLMs

⏱ 10 min Fontes validadas em: 2026-04-29

O Problema que Self-Supervised Resolve

No aprendizado supervisionado, você precisa de labels — e labels custam caro. Para treinar um modelo de linguagem em todo o texto da internet, você precisaria de humanos lendo e rotulando bilhões de frases. Impossível.

Self-supervised learning é uma jogada elegante: o próprio dado gera o label. Você não rotula nada — você esconde parte do dado e usa o resto como supervisão.

💡
Insight: Self-supervised não é "sem supervisão" — é supervisão gerada automaticamente pelo dado. O "self" é o dado gerando seu próprio label. É supervisionado em termos de mecanismo, mas não requer anotação humana.

Dois Sabores de Self-Supervised para Texto

1. Masked Language Modeling (MLM) — Como o BERT Aprende

Você pega uma frase, esconde algumas palavras aleatoriamente (15% delas), e pede ao modelo para prever as palavras escondidas usando o contexto ao redor.

flowchart LR A["Frase original:\nO banco aprovou o empréstimo"] -->|"Mascara 15%"| B["O [MASK] aprovou o empréstimo"] B -->|"Modelo prediz"| C["Predição: 'banco'\nLabel real: 'banco'\nLoss calculado"] style A fill:#1a3a5c style B fill:#3a2a1a style C fill:#1a4a1a

Para prever a palavra mascarada, o modelo precisa entender o contexto antes e depois. Treinar em bilhões de exemplos assim força o modelo a aprender gramática, semântica, fatos do mundo — qualquer coisa que ajude a completar lacunas.

BERT foi treinado com MLM em 3,3 bilhões de palavras. Zero anotação humana no pré-treino.

2. Causal Language Modeling (CLM) — Como o GPT Aprende

Diferente do BERT que olha para os dois lados, o GPT usa uma abordagem autoregressiva: dado o que veio antes, prediz o próximo token.

flowchart LR A["'O banco'"] -->|"prediz"| B["'aprovou'\n✓ correto"] A2["'O banco aprovou'"] -->|"prediz"| C["'o'\n✓ correto"] A3["'O banco aprovou o'"] -->|"prediz"| D["'empréstimo'\n✓ correto"] style A fill:#1a2a4a style A2 fill:#1a2a4a style A3 fill:#1a2a4a style B fill:#1a4a1a style C fill:#1a4a1a style D fill:#1a4a1a

A cada passo, o label é simplesmente "a próxima palavra no texto". Todo texto existente vira dado de treino — blogs, livros, código, Wikipedia, Reddit, papers científicos.

Por que Isso Viabilizou os LLMs

Com self-supervised learning, o gargalo de dados desaparece. A internet tem estimados 4,5 bilhões de páginas web. Livros digitalizados. GitHub. Wikipedia em 300 idiomas. Tudo isso vira dado de treino sem custo de anotação.

GPT-3 foi treinado em ~300 bilhões de tokens — texto suficiente para um humano ler 24 horas por dia durante 2.700 anos. Isso só é possível com self-supervised learning.

⚠️
Pegadinha — Garbage in, garbage out (em escala): Self-supervised em texto da internet significa que o modelo aprende o que está na internet — incluindo vieses, informações erradas, conteúdo tóxico. Todo o esforço de RLHF e safety training pós-pré-treino existe para corrigir o que foi aprendido nessa fase inicial.

Self-Supervised Além do Texto

O paradigma se generaliza para outros tipos de dados:

  • Imagens: MAE (Masked Autoencoders, Meta 2021) mascara partes de imagens e treina para reconstruir. CLIP (OpenAI) alinha imagens com descrições textuais
  • Áudio: wav2vec 2.0 (Meta) mascara partes do áudio e treina para reconstruir — funciona sem transcrições
  • Código: GitHub Copilot foi treinado com self-supervised em ~54 milhões de repositórios públicos — prever o próximo token de código
🏢
Aplicação Microsoft: GitHub Copilot usa exatamente este paradigma — código como dado de treino, próximo token como label. Para a Impar, isso significa que o código da sua base (se um dia você usar fine-tuning) pode virar dado de treino para um modelo especializado no stack e estilo de código da empresa.

A Cadeia Completa: Pré-treino → Fine-tuning → RLHF

flowchart TD A["Self-Supervised Pré-treino\n300B tokens da internet\nZero labels humanos\n→ Modelo aprende linguagem"] A --> B["Fine-tuning Supervisionado\n~10.000 exemplos de\ndiálogos de alta qualidade\n→ Modelo aprende a seguir instruções"] B --> C["RLHF\nHumanos comparam respostas\nModelo de recompensa treinado\n→ Modelo aprende a ser útil e seguro"] C --> D["ChatGPT / Claude / Gemini"] style A fill:#1a2a4a style B fill:#2a1a4a style C fill:#1a4a1a style D fill:#3a3a1a

O self-supervised pré-treino faz o trabalho pesado — aprende tudo sobre linguagem sem custo de anotação. O fine-tuning supervisionado (com poucos dados de alta qualidade) ensina o modelo a responder de forma útil. O RLHF alinha o comportamento com preferências humanas.

Exemplo Prático: Masked Language Model em Python

from transformers import pipeline

# Carrega modelo BERT pré-treinado (treinado com MLM)
# NÃO requer GPU — roda em CPU para esse exemplo
mlm = pipeline("fill-mask", model="neuralmind/bert-base-portuguese-cased")

# O modelo preenche o [MASK] usando contexto
resultado = mlm("O [MASK] aprovou o empréstimo ontem.")
for r in resultado[:3]:
    print(f"{r['token_str']:20} → {r['score']:.2%}")

# Saída esperada:
# banco                → 73.2%
# tribunal             →  8.1%
# juiz                 →  4.3%

# A ordem das probabilidades reflete o que o modelo aprendeu
# sobre quais palavras são prováveis nesse contexto

Desafio

Fontes

  1. arXiv 1810.04805 — BERT — Devlin et al., masked language modeling explicado
  2. Wikipedia — Self-Supervised Learning — Definição, variantes e exemplos
  3. Hugging Face — BERT Portuguese — Modelo pré-treinado em português com MLM
  4. arXiv 2111.06377 — Masked Autoencoders (MAE) — He et al., Meta, self-supervised para imagens