Capítulo 1: Objetivos de preentrenamiento
Introducción
El preentrenamiento es el proceso de entrenar un modelo de lenguaje con grandes cantidades de datos de texto no etiquetados. La idea clave es que predecir el propio texto proporciona una señal de aprendizaje muy rica.
Predicción del siguiente token (Causal LM)
La idea principal
Dada una secuencia de tokens, predecir el siguiente token:
Implementación
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
- Serie GPT (OpenAI)
- LLaMA (Meta)
- Mistral
Modelado de lenguaje enmascarado (MLM)
El enfoque de BERT
Enmascarar tokens aleatoriamente y predecirlos:
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 Bidireccional
| Aspecto | Causal (GPT) | Bidireccional (BERT) |
|---|---|---|
| Contexto | Solo izquierda | Ambas direcciones |
| Mejor para | Generación | Comprensión |
| Entrenamiento | Autoregresivo | Enmascarado |
Puntos clave
Summary
- La predicción del siguiente token permite la generación autoregresiva
- El MLM enmascarado proporciona comprensión de contexto bidireccional
- Los modelos causales dominan los LLM modernos por su capacidad de generación