Saltar al contenido principal

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:

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

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​

AspectoCausal (GPT)Bidireccional (BERT)
ContextoSolo izquierdaAmbas direcciones
Mejor paraGeneraciónComprensión
EntrenamientoAutoregresivoEnmascarado

Puntos clave​

Summary
  1. La predicción del siguiente token permite la generación autoregresiva
  2. El MLM enmascarado proporciona comprensión de contexto bidireccional
  3. Los modelos causales dominan los LLM modernos por su capacidad de generación