Capítulo 1: Objetivos de Pré-treinamento
Introdução
Pré-treinamento é o processo de treinar um modelo de linguagem em grandes quantidades de dados de texto não rotulados. O principal insight é que prever o próprio texto fornece um sinal de aprendizado rico.
Previsão do Próximo Token (Causal LM)
A Ideia Central
Dada uma sequência de tokens, prever o próximo token:
Implementação
import torch
import torch.nn.functional as F
def causal_lm_loss(logits, targets):
"""
Compute causal language modeling loss.
logits: (batch, seq_len, vocab_size)
targets: (batch, seq_len)
"""
# Shift: predict next token from each position
shift_logits = logits[..., :-1, :].contiguous()
shift_targets = targets[..., 1:].contiguous()
# Cross-entropy loss
loss = F.cross_entropy(
shift_logits.view(-1, shift_logits.size(-1)),
shift_targets.view(-1),
ignore_index=-100 # Padding token
)
return loss
Utilizado por
- Série GPT (OpenAI)
- LLaMA (Meta)
- Mistral
Modelagem de Linguagem Mascarada (MLM)
A Abordagem do BERT
Mascare tokens aleatoriamente e os preveja:
def create_mlm_data(input_ids, tokenizer, mask_prob=0.15):
"""Create masked language modeling training data."""
labels = input_ids.clone()
# Create random mask
probability_matrix = torch.full(labels.shape, mask_prob)
masked_indices = torch.bernoulli(probability_matrix).bool()
# Don't mask special tokens
special_tokens_mask = [
tokenizer.get_special_tokens_mask(val)
for val in labels.tolist()
]
masked_indices &= ~torch.tensor(special_tokens_mask).bool()
# Replace with [MASK] token
input_ids[masked_indices] = tokenizer.mask_token_id
# Only compute loss on masked tokens
labels[~masked_indices] = -100
return input_ids, labels
Utilizado por
- BERT
- RoBERTa
- Modelos encoder modernos
Causal vs Bidirecional
| Aspecto | Causal (GPT) | Bidirecional (BERT) |
|---|---|---|
| Contexto | Apenas à esquerda | Ambas as direções |
| Melhor para | Geração | Compreensão |
| Treinamento | Autoregressivo | Mascarado |
Principais Pontos
Summary
- Previsão do próximo token permite geração autoregressiva
- Masked LM fornece compreensão de contexto bidirecional
- Modelos causais dominam os LLMs modernos por sua capacidade de geração