الدرس 17 من 24

المحاذاة مع 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. :::

اختبار

الوحدة 5: المحاذاة مع DPO

خذ الاختبار