Chapitre 1 : Objectifs de pré-entraînement
Introduction
Le pré-entraînement est le processus d'entraînement d'un modèle de langage sur de grandes quantités de données textuelles non étiquetées. L'idée clé est que la prédiction du texte lui-même fournit un signal d'apprentissage riche.
Prédiction du Prochain Jeton (LM Causale)
L'idée Principale
Étant donné une séquence de jetons, prédire le prochain jeton :
Mise en Œuvre
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
Utilisé Par
- Série GPT (OpenAI)
- LLaMA (Meta)
- Mistral
Modélisation de Langage Masqué (MLM)
L'Approche BERT
Masquer aléatoirement des jetons et les prédire :
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
Utilisé Par
- BERT
- RoBERTa
- Modèles encodeurs modernes
Causale vs Bidirectionnelle
| Aspect | Causale (GPT) | Bidirectionnelle (BERT) |
|---|---|---|
| Contexte | Uniquement à gauche | Les deux directions |
| Meilleur pour | Génération | Compréhension |
| Entraînement | Autoregressif | Masqué |
Points Clés
Résumé
- La prédiction du prochain jeton permet la génération autoregressive
- Le LM masqué fournit une compréhension contextuelle bidirectionnelle
- Les modèles causaux dominent les LLM modernes pour leur capacité de génération