Aller au contenu principal

Chapitre 2 : Optimisation Directe des Préférences

Alternative plus simple au RLHF​

DPO optimise directement pour les préférences humaines sans modèle de récompense séparé.


DPO vs RLHF​

AspectRLHFDPO
Modèle de RécompenseRequisNon nécessaire
Entraînement RLPPO/similaireOptimisation directe
ComplexitéÉlevéeMoindre
StabilitéPeut être instablePlus stable

Format des Données de Préférence​

{
"prompt": "Expliquez l'informatique quantique",
"chosen": "L'informatique quantique utilise des qubits...",
"rejected": "Les ordinateurs quantiques sont juste plus rapides..."
}

Implémentation de DPO​

from trl import DPOTrainer, DPOConfig

dpo_config = DPOConfig(
beta=0.1, # Poids de la pénalité KL
learning_rate=5e-7,
num_train_epochs=1,
gradient_accumulation_steps=4,
bf16=True,
)

trainer = DPOTrainer(
model=model,
ref_model=ref_model, # Modèle de référence pour KL
args=dpo_config,
train_dataset=preference_dataset,
tokenizer=tokenizer,
)

trainer.train()

Paramètre Clé : Beta​

  • Beta faible (0.01-0.05) : Optimisation plus forte
  • Beta élevé (0.5-1.0) : Reste proche de la référence
  • Défaut (0.1) : Bon équilibre

Continuer au Chapitre 3 →