عائلة التحسين المباشر
Type: Learn
Languages: Python (stdlib, six-variant preference-loss comparator)
Prerequisites: Phase 18 · 01 (InstructGPT), Phase 18 · 02 (Reward hacking), Phase 10 · 08 (DPO basics)
Time: ~75 minutes
أهداف التعلم
- استنتاج النموذج المغلق DPO من RLHF-with-KL المثالي.
- إدراج وضع الفشل لكل من إصلاحات الـ IPO و KTO و SimPO و ORPO و BPO في DPO.
- تمييز "الفجوة المضطربة في المكافأة" عن "قوة الاختيار" وشرح لماذا تعريف الهوية في البيع العام مهم.
- شرح لماذا رفائيلوف وغيره (NeurIPS 2024) يثبت أن DAAs تتحسن بشكل مفرط على الرغم من عدم وجود RM صريح.
المشكلة
هدف RLHF (الدرس 1):
max_pi E_{x,y~pi} [ r(x, y) ] - beta * KL(pi || pi_ref)لديه أداء أفقي معروف:
pi*(y|x) = (1/Z(x)) * pi_ref(y|x) * exp(r(x, y) / beta)لذا، يتم تعريف المكافأة ضمنياً عن طريق نسبة السياسة المثلى للمرجع:
r(x, y) = beta * log(pi*(y|x) / pi_ref(y|x)) + beta * log Z(x)استبدل هذا في احتمال تفضيل برادلي تيري و وظيفة القسمZ(x)إلغاء لأنه يعتمد فقط علىxما تبقى هو خسارة في ملامح السياسة وحدها لا حاجة إلى نموذج مكافأة. هذا هو DPO.
التجاعيد: يفترض الإستحداث أن الإيجابية يمكن الوصول إليها، وتتبع بيانات الاختيارات في التوزيع، وسياسة المرجعية هي المرسوم الحقيقي للطريقة. لا يوجد أي من هذه المعلومات صحيحة تماما. يصلح كل عضو في الأسرة افتراض مختلف انتهك.
المفهوم
(Rafailov et al., 2023)
L_DPO = -log sigmoid(
beta * log(pi(y_w | x) / pi_ref(y_w | x))
- beta * log(pi(y_l | x) / pi_ref(y_l | x))
)ما الذي يمكن أن يذهب خطأ:
- الفجوة المحتملة في المكافآت
beta * (log(pi/pi_ref)_w - log(pi/pi_ref)_l)لا حدود لها. تفضيل صغير يمكن أن يسبب فجوة كبيرة بشكل تعسفي. - القيادة الخسارة تختار ورفض السجلات-المختبرات في الاتجاهات المعاكسة. يمكن أن تدفع المختارة السجلات المطلقة إلى أسفل طالما أن الرفض يسقط أسرع. هذا هو ظاهرة رد الاختيارات المتدهورة.
- تفضيلات خارج التوزيع (زوج نادر مقابل زوج نادر نادر) تنتج مكافآت ضمنية تعسفية.
الاكتتاب (أزار وغيره، 2024)
تحسين تفضيل الهوية يحل محل السجل السجني بخطوط هوية على احتمال تفضيل. يصبح الخسارة خطأ مربع على هدف محدد:
L_IPO = (log(pi(y_w | x) / pi_ref(y_w | x)) - log(pi(y_l | x) / pi_ref(y_l | x)) - 1/(2 beta))^2الحدود تحددها 1/(2 beta)قوة الاختيار والفجوة بين المكافآت المضطربة متناسبة
كيتو (إيثايراجح وغيره، 2024)
تخفض تحسين كاهينمان-تفيرسكي هيكل الزوجين بالكامل. بالنظر إلى إنتاج واحد مع علامة وتقنية ثنائية "مطلوبة" أو "غير مرغوب فيها"، فإنه يرسم إلى أداة نظرية المواجهات:
v(x, y) = sigma(beta * log(pi(y|x) / pi_ref(y|x)) - z_ref)مع وزن مختلف للارباح والخسائر (مخالفة الخسارة). الفائدة: يمكنك استخدام البيانات غير المزدوجة، والتي هي أكثر وفرة بكثير.
سمبو (منغ وزملاؤه، 2024)
تحسين التفضيلات البسيطة ينسجم إشارة التدريب مع التوليد. إزالة سياسة المرجعية بالكامل وتطبيع احتمالات التسجيل حسب الطول:
L_SimPO = -log sigmoid(
(beta / |y_w|) * log pi(y_w | x)
- (beta / |y_l|) * log pi(y_l | x)
- gamma
)مع هامش gammaيزيل التطبيع على الطول الحافز على استغلال وضع فشل التمييز الطويل من DPO (طول y_wيعطي فجوة أكبر من خلال البناء).
أوربو (هونغ وغيره، 2024)
إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضافة إضضضضافة إضضضضضافة إضضضضضافة إضضضضضضافة إضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضضض
L_ORPO = L_NLL(y_w) + lambda * L_OR
L_OR = -log sigmoid(log(odds(y_w) / odds(y_l)))لا يوجد سياسة مرجعية مصطلح SFT هو المنظم. التدريب في مرحلة واحدة من النموذج الأساسي إلى النموذج المتحسّس. لا يوجد نقطة تفتيش منفصلة SFT.
(إرسال ICLR 2026، OpenReview id=b97EwMUWu7)
تحديد مشكلة ردود الاختيار المتدهورة: DPO يحافظ على التصنيف y_w > y_lلكن المختبر المطلقy_wيمكن أن تنخفض. BPO يضيف تصحيح خط واحد يعاقب التحركات الهبوطية على الإجابة المختارة.
النتيجة العالمية: إدارة الأغذية والتنمية لا تزال تحسن من المدى
رفائيلوف وغيره. "قوانين الحجم لتحسين نموذج الجائزة بشكل كبير في خوارزميات التنظيم المباشر" (NeurIPS 2024) تدربت السياسات مع DPO ، IPO ، SLiC على مجموعات بيانات متعددة عبر ميزانيات KL. منحنى الذهب-الجائزة مقابل KL لها نفس شكل Gao et al. قمة والانهيار. استفسارات الجائزة الضمنية عينات خارج التوزيع أثناء التدريب ؛ لا يثبيت تنظيم KL هذا.
لا يفلح DAAs من Goodhart. فإنها تغير السطح حيث يضرب من "نموذج مكافأة أكثر من المثالية" إلى "نسبة سياسة المرجعية أكثر من المثالية".
الاختيار بينهم (2026)
- إذا كان لديك بيانات تفضيل مزدوجة كبيرة: DPO مع بيتا المحافظة، SimPO إذا كان التمييز الطويل واضح.
- إذا كان لديك تعليق ثنائي غير متزدوج: KTO.
- إذا كنت تريد خط أنابيب واحد من نموذج أساسي: أوربو.
- إذا رأيت أجهزة التحقيق المختارة المتدهورة في سجلات الموظفين:
- إذا كانت القوى المفضلة تختلف كثيراً و DPO يشبّن: IPO.
كل مختبر يعمل على البطارية الخمسة و يختار الفائز لكل مهمة لا يوجد سبب ليكون الإيجابي هو نفسه للاستنتاج الرياضي والسلامة
استخدمها
code/main.pyيُقارن ست خسائر (DPO، IPO، KTO، SimPO، ORPO، BPO) على مجموعة بيانات تفضيلات الألعاب حيث تختلف قوة تفضيل الحقيقية حسب الزوج. يتم تحسين كل خسارة ضد عينة 500 زوج مع سياسة صغيرة من السهل. يتم رسم معدل الفوز النهائي، وتحويل السجل المختار-المتجربة، وتفرق المكافأة الضمنية لكل طريقة.
أرسله
هذا الدرس يُنتجoutputs/skill-preference-loss-selector.md. بالنظر إلى إحصائيات مجموعة البيانات (مزدوجة مقابل غير مزدوجة، متغير مقابل قوة تفضيلية موحدة، وتوزيع الطول) والهدف (مرحلة واحدة أو SFT-then-preference) ، يوصي بخسارة تفضيلية وإبلاغ عن وضع الفشل الذي يحمي من ذلك.
التمارين
- أركض
code/main.py. إبلاغ عن الانخفاض الأخير في اختبار السجلات المختار لـ DPO و BPO. يجب أن تحتفظ BPO بعقدة مطلقة أعلى من اختياره التحقق من هذا.
- تعديل بيانات الاختيارات بحيث تكون كل الأزواج قوية على قدم المساواة. أي من الطرق الستة هو الأكثر قوة؟ أي تخفيضات؟ شرح ميزة IPO هنا.
- اجعل الردود التي رفضتها في المتوسط أطول مرتين من المختار دون تغيير أي شيء آخر، عرض استغلال DPO طول عدديًا وصلاح SimPO.
- رفائيلوف وغيره (NeurIPS 2024) يدعون أن DAAs تتحسن بشكل مفرط. أعيد إنتاج نسخة نقطة واحدة: تراكم اختيار-منص-رفض تباين KL وملاحظة التحسين المفرط في DPO في البيتا الكبيرة.
- اقرأ ملخص ورقة BPO (OpenReview b97EwMUWu7). اكتب التصحيح الواحدة الخطية التي يضيفها BPO إلى DPO. تأكد من تنفيذها في
code/main.py. . .
الشروط الرئيسية
| Term | What people say | What it actually means |
|---|---|---|
| DPO | "RLHF without a reward model" | Loss derived from the closed-form RLHF optimum; policy parameters only |
| Implicit reward | "the log-ratio" | beta * log(pi(y|x) / pi_ref(y|x)) — the DPO-implied reward |
| IPO | "bounded DPO" | Replaces log-sigmoid with identity; implicit reward gap capped by 1/(2 beta) |
| KTO | "unpaired DPO" | Prospect-theory utility over single labels with loss aversion |
| SimPO | "reference-free DPO" | Length-normalized log-likelihood + margin; no reference policy |
| ORPO | "one-stage DPO" | NLL + odds-ratio preference term; trains from base model in one pass |
| BPO | "chosen-preserving DPO" | DPO plus a penalty for decreasing the chosen response's absolute log-prob |
| Degraded Chosen | "chosen goes down" | DPO decreases chosen log-prob so long as rejected falls faster |
| DAA | "direct alignment algorithm" | Any preference-loss method that skips an explicit RM |
المزيد من القراءة
- Rafailov et al. — Direct Preference Optimization (NeurIPS 2023, arXiv:2305.18290)
- Azar et al. — A General Theoretical Paradigm to Understand Learning from Human Preferences (AISTATS 2024, arXiv:2310.12036) البيع
- Ethayarajh et al. — KTO: Model Alignment as Prospect Theoretic Optimization (arXiv:2402.01306)
- Meng, Xia, Chen — SimPO (NeurIPS 2024, arXiv:2405.14734)
- Hong, Lee, Thorne — ORPO (EMNLP 2024, arXiv:2403.07691)
- BPO — Behavior Preservation Optimization (ICLR 2026 OpenReview b97EwMUWu7)
- Rafailov et al. — Scaling Laws for RM Overoptimization in DAAs (NeurIPS 2024, arXiv:2406.02900)
This free lesson is part of the AI Engineering from Scratch curriculum. Read the full explanation, run the lesson code, and verify the result in the interactive reader or from the repository source.
Browse the complete course catalog or open this lesson on GitHub.