إنتقل إلى المحتوى الرئيسي

الفصل 2: تحسين التفضيلات المباشرة

بديل أبسط لـ RLHF​

يقوم DPO بتحسين التفضيلات البشرية مباشرة دون الحاجة إلى نموذج مكافأة منفصل.


DPO مقابل RLHF​

الجانبRLHFDPO
نموذج المكافأةمطلوبغير مطلوب
تدريب التعلم المعززPPO/مشابهتحسين مباشر
التعقيدعاليأقل
الاستقراريمكن أن يكون غير مستقرأكثر استقرارًا

تنسيق بيانات التفضيل​

{
"prompt": "اشرح الحوسبة الكمومية",
"chosen": "تستخدم الحوسبة الكمومية الكيوبتات...",
"rejected": "الحواسيب الكمومية أسرع فقط..."
}

تنفيذ DPO​

from trl import DPOTrainer, DPOConfig

dpo_config = DPOConfig(
beta=0.1, # وزن عقوبة KL
learning_rate=5e-7,
num_train_epochs=1,
gradient_accumulation_steps=4,
bf16=True,
)

trainer = DPOTrainer(
model=model,
ref_model=ref_model, # نموذج مرجعي لـ KL
args=dpo_config,
train_dataset=preference_dataset,
tokenizer=tokenizer,
)

trainer.train()

المعلمة الرئيسية: بيتا​

  • بيتا منخفضة (0.01-0.05): تحسين أقوى
  • بيتا عالية (0.5-1.0): البقاء قريبًا من المرجع
  • الافتراضي (0.1): توازن جيد

تابع إلى الفصل 3 →