Pular para o conteúdo principal

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:

P(xt∣x1,x2,...,xt−1)P(x_t | x_1, x_2, ..., x_{t-1})

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​

AspectoCausal (GPT)Bidirecional (BERT)
ContextoApenas à esquerdaAmbas as direções
Melhor paraGeraçãoCompreensão
TreinamentoAutoregressivoMascarado

Principais Pontos​

Summary
  1. Previsão do próximo token permite geração autoregressiva
  2. Masked LM fornece compreensão de contexto bidirecional
  3. Modelos causais dominam os LLMs modernos por sua capacidade de geração