Aller au contenu principal
Expert Cybersécurité & IAv9.0
Centres de ressources conformité
Besoin d'un accompagnement expert ?
Devis personnalisé sous 24h — audit, conformité, incident
Checklists Sécurité — Audit & Durcissement
Formats disponibles
📄 PDF 📊 Excel 🌐 Web

11 checklists professionnelles couvrant 2 200+ points de contrôle. Téléchargement gratuit, aucune inscription.

SimPO (Simple Preference Optimization)

ia

Définition

SimPO (Simple Preference Optimization) est une methode d'alignement des LLMs proposee par Meng et al. (Princeton/CMU, 2024) qui simplifie DPO en eliminant completement le besoin d'un modele de reference, tout en ameliorant les performances. SimPO utilise la longueur-normalisee log-probabilite moyenne de la reponse comme reward implicite, associee a une marge gamma qui force un ecart entre les reponses choisies et rejetees. La formule cle de SimPO : L_SimPO = -log(sigma(beta/|y_w| * log p(y_w|x) - beta/|y_r| * log p(y_r|x) - gamma)), ou |y| est la longueur de la reponse (normalisation par longueur), gamma est la marge cible, et beta est l'echelle de temperature. La normalisation par longueur corrige le biais DPO vers les reponses plus longues. Les avantages de SimPO : (1) Pas de modele de reference — reduire de 50% la memoire GPU, (2) Normalisation par longueur — reponses alignees en termes de qualite, pas de longueur, (3) Marge gamma — separation explicite entre choisie et rejetee pour un meilleur signal d'apprentissage. SimPO a obtenu des scores SOTA sur AlpacaEval 2 et Arena-Hard au moment de sa publication. SimPO est disponible dans TRL depuis la version 0.9. Sa configuration est similaire a DPO : meme format de donnees (prompt, chosen, rejected), meme tokenizer, mais sans parametre ref_model. Les hyperparametres cles sont beta (5-10 typique) et gamma (0.5-1.0 typique). La comparaison ORPO vs SimPO : les deux eliminent le besoin de reference et fusionnent SFT+alignment en une passe. ORPO utilise un odds ratio basé sur les probabilites directes ; SimPO utilise la longueur-normalisee log-prob. En pratique, SimPO tend a mieux performer sur les benchmarks d'alignement conversationnel tandis qu'ORPO est plus stable pour les petits modeles.

SimPO avec TRL

from trl import CPOTrainer, CPOConfig

# SimPO est implem. via CPOTrainer avec loss_type='simpo'
config = CPOConfig(
    learning_rate=8e-6,
    loss_type='simpo',
    beta=2.0,
    simpo_gamma=0.5,  # Marge cible
    max_length=2048,
    max_prompt_length=512,
    per_device_train_batch_size=2
)
trainer = CPOTrainer(model=model, args=config, train_dataset=dataset, tokenizer=tokenizer)
trainer.train()

Articles liés

Un projet cybersécurité ?

Expert dispo · Réponse 24h

Devis