المحاذاة مع DPO
DPO مقابل RLHF
3 دقيقة للقراءة
التحسين المباشر للتفضيلات (DPO) أحدث ثورة في كيفية محاذاة نماذج اللغة. دعنا نفهم لماذا يُفضّل على RLHF التقليدي.
ما هي المحاذاة؟
المحاذاة تضمن أن مخرجات النموذج تطابق التفضيلات البشرية:
- استجابات مفيدة ودقيقة
- سلوك آمن وغير ضار
- اتباع التعليمات بشكل صحيح
- نبرة وأسلوب مناسبين
خط أنابيب RLHF التقليدي
التعلم المعزز من الملاحظات البشرية (RLHF) كان النهج الأصلي:
الخطوة 1: درّب نموذج SFT
↓
الخطوة 2: اجمع بيانات التفضيل البشري
↓
الخطوة 3: درّب نموذج المكافأة على التفضيلات
↓
الخطوة 4: اضبط بـ PPO باستخدام نموذج المكافأة
↓
النتيجة: نموذج مُحاذى
تحديات RLHF
| التحدي | الوصف |
|---|---|
| التعقيد | خط أنابيب 4 خطوات، نماذج متعددة |
| عدم الاستقرار | تدريب PPO معروف بعدم استقراره |
| الموارد | يحتاج نموذج مكافأة منفصل |
| المعاملات الفائقة | معاملات كثيرة للضبط |
DPO: نهج أبسط
DPO يتخطى نموذج المكافأة بالكامل:
الخطوة 1: درّب نموذج SFT
↓
الخطوة 2: اجمع بيانات التفضيل (أزواج مختار/مرفوض)
↓
الخطوة 3: درّب مباشرة بخسارة DPO
↓
النتيجة: نموذج مُحاذى
مزايا DPO
| الميزة | الشرح |
|---|---|
| أبسط | لا يحتاج نموذج مكافأة |
| مستقر | تدريب مُشرف قياسي |
| كفء | مرحلة تدريب واحدة |
| فعال | يطابق أو يتفوق على نتائج RLHF |
كيف يعمل DPO
DPO يعامل المحاذاة كمشكلة تصنيف:
المعطى: محث، استجابة_مختارة، استجابة_مرفوضة
الهدف: اجعل النموذج يفضل المختار على المرفوض
الخسارة = -log(sigmoid(β * (log_prob(chosen) - log_prob(rejected))))
النموذج يتعلم زيادة احتمالية الاستجابات الجيدة مع تقليل احتمالية السيئة.
الرؤية الرياضية
# كود خسارة DPO الوهمي
def dpo_loss(policy_model, reference_model, chosen, rejected, beta):
# احصل على احتمالات اللوغاريتم من السياسة الحالية
policy_chosen = log_prob(policy_model, chosen)
policy_rejected = log_prob(policy_model, rejected)
# احصل على احتمالات اللوغاريتم من النموذج المرجعي (SFT)
ref_chosen = log_prob(reference_model, chosen)
ref_rejected = log_prob(reference_model, rejected)
# خسارة DPO
chosen_reward = beta * (policy_chosen - ref_chosen)
rejected_reward = beta * (policy_rejected - ref_rejected)
loss = -log_sigmoid(chosen_reward - rejected_reward)
return loss
ملخص المقارنة
| الجانب | RLHF | DPO |
|---|---|---|
| مراحل خط الأنابيب | 4 | 2 |
| نموذج المكافأة | مطلوب | غير مطلوب |
| استقرار التدريب | منخفض (PPO) | عالي |
| استخدام الذاكرة | عالي | متوسط |
| المعاملات الفائقة | كثيرة | قليلة |
| النتائج | ممتازة | ممتازة |
متى نستخدم DPO
استخدم DPO عندما:
- تحسين جودة الاستجابة بعد SFT
- محاذاة النموذج مع تفضيلات محددة
- تقليل المخرجات الضارة
- تحسين اتباع التعليمات
- تريد تدريباً أبسط
اعتبر RLHF عندما:
- تحتاج تعلم متصل مع ملاحظات حية
- بحث يتطلب الوصول لنموذج المكافأة
- تحسين متعدد الأهداف معقد
DPO عملياً
سير العمل النموذجي:
1. مرحلة SFT
التدريب على أزواج التعليمة-الاستجابة
النموذج يتعلم مهارات المهمة الأساسية
2. مرحلة DPO
التدريب على أزواج التفضيل (مختار/مرفوض)
النموذج يتعلم أي الاستجابات أفضل
المعاملات الرئيسية
| المعامل | الوصف | القيمة النموذجية |
|---|---|---|
| β (بيتا) | قوة التنظيم | 0.1 - 0.5 |
| learning_rate | معدل تعلم التدريب | 5e-7 إلى 5e-6 |
| epochs | epochs التدريب | 1-3 |
رؤية أساسية: DPO يحقق نتائج مشابهة لـ RLHF بجزء من التعقيد. لمعظم الممارسين، DPO هو الخيار الصحيح للمحاذاة في 2025.
بعد ذلك، لنتعلم كيفية إعداد بيانات التفضيل لتدريب DPO. :::