प्रत्यक्ष प्राथमिकता अनुकूलन परिवार
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
सीखने के लक्ष्य
- आरएलएचएफ-केएल-ऑप्टिमाइज़ेशन से डीपीओ बंद फॉर्म निकालें।
- डीपीओ में आईपीओ, केटीओ, सिम्पो, ओआरपीओ, बीपीओ फिक्स में से प्रत्येक में विफलता मोड बताएं।
- "अवशिष्ट इनाम अंतर" और "प्राधान्य बल" में अंतर करें और समझाएं कि आईपीओ की पहचान मानचित्रण क्यों मायने रखता है।
- समझाएं कि राफाइलोव और अन्य (NeurIPS 2024) स्पष्ट रूप से आरएम के बिना डीएए को अधिक अनुकूलित क्यों करते हैं।
समस्या
आरएलएचएफ उद्देश्य (पढ़ें 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. जो कुछ भी शेष है वह केवल नीतिगत मापदंडों में हानि है कोई इनाम मॉडल की आवश्यकता नहीं है।
झुर्रियोंः व्युत्पन्न परिकल्पना करता है कि इष्टतम उपलब्ध है, वरीयता डेटा वितरण में है, और संदर्भ नीति सही मोड एंकर है। इनमें से कोई भी सही नहीं है। प्रत्येक परिवार का सदस्य एक अलग उल्लंघन मानदंड तय करता है।
अवधारणा
डीपीओ (राफेलोव एट अल., 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)एक छोटी सी प्राथमिकता मनमाने ढंग से बड़ा अंतर पैदा कर सकती है। - यह चयनित पूर्ण लॉग-प्रोब को नीचे धकेल सकता है जब तक कि अस्वीकृत तेजी से गिरता है। यह गिरावट वाली चयनित प्रतिक्रिया घटना है।
- वितरण से बाहर की प्राथमिकताएं (निरंतर दुर्लभ जोड़ी बनाम दुर्लभ दुर्लभ जोड़ी) मनमाने ढंग से अप्रत्यक्ष पुरस्कार उत्पन्न करती हैं।
आईपीओ (Azar et al., 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). प्राथमिकता बल और अप्रत्यक्ष पुरस्कार अंतर समानुपातिक हैं. कोई विस्फोट नहीं.
KTO (Ethayarajh et al., 2024)
Kahneman-Tversky अनुकूलन पूरी तरह से जोड़ी संरचना को छोड़ देता है। एक एकल लेबल आउटपुट और एक द्विआधारी " वांछनीय " या "अवांछनीय" संकेत को देखते हुए, यह एक संभावना सिद्धांत उपयोगिता के लिए मैप करता हैः
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 की लंबाई-bias विफलता मोड का लाभ उठाने के लिए प्रोत्साहन को हटा देता है (अधिकy_wनिर्माण द्वारा लॉग-प्रोब अंतर अधिक देता है) ।
ओआरपीओ (होंग एट अल., 2024)
Odds-Ratio Preference Optimization मानक SFT नकारात्मक लॉग-संभाव्यता के लिए एक प्राथमिकता शब्द जोड़ता हैः
L_ORPO = L_NLL(y_w) + lambda * L_OR
L_OR = -log sigmoid(log(odds(y_w) / odds(y_l)))कोई संदर्भ नीति नहीं एसएफटी शब्द नियमितता है। आधार मॉडल से संरेखित मॉडल तक एक चरण में ट्रेन करें। कोई अलग एसएफटी चेकपॉइंट नहीं है।
बीपीओ (आईसीएलआर 2026 प्रस्तुत, ओपन रिव्यू id=b97EwMUWu7)
अवगुणित चुने गए उत्तर समस्या की पहचान करता हैः डीपीओ रैंकिंग को बनाए रखता है y_w > y_lलेकिन पूर्ण लॉग-प्रोब के y_wBPO एक एकल-लाइन सुधार जोड़ा जो चयनित प्रतिक्रिया पर नीचे कदम दंडित करता है। Llama-3.1-8B-DPO पर गणित तर्क पर +10.1% सटीकता रिपोर्ट।
सार्वभौमिक परिणामः डीएए अभी भी अत्यधिक अनुकूलन
राफाइलोव एट अल. "डायरेक्ट एलायनिंग एल्गोरिदम में इनाम मॉडल ओवरऑप्टिमाइज़ेशन के लिए स्केलिंग लॉज" (NeurIPS 2024) ने केएल बजट में कई डेटासेट पर डीपीओ, आईपीओ, एसएलआईसी के साथ नीतियों को प्रशिक्षित किया। गोल्ड-रिवार्ड- बनाम-केएल वक्रों में एक ही गाओ एट अल. पीक-एंड-कोलॉप्स आकार है। प्रशिक्षण के दौरान अप्रत्यक्ष इनाम सवालों के लिए आउट-ऑफ-डिस्ट्रीब्यूशन नमूने; केएल विनियमन इस को स्थिर नहीं करता है।
DAAs गुडहार्ट से नहीं बचते। वे सतह को बदलते हैं जहां यह "पुरस्कार मॉडल ओवर-ऑप्टिमाइज़्ड" से "रिफरेंस पॉलिसी अनुपात ओवर-ऑप्टिमाइज़्ड" तक काटता है। सार्वभौमिक फिक्स बेहतर डेटा, इंसेंबल्स, जल्दी रोकना दोनों पर लागू होता है।
उनमें से चुनना (2026)
- यदि आपके पास बड़े जोड़े वाले प्राथमिकता डेटा हैंः डीपीओ के साथ रूढ़िवादी बीटा, सिम्पो यदि लंबाई पूर्वाग्रह स्पष्ट है।
- यदि आपके पास अनपेयर बाइनरी फीडबैक हैः KTO।
- यदि आप एक आधार मॉडल से एक चरण पाइपलाइन चाहते हैंः ओआरपीओ।
- यदि आप डीपीओ लॉग में विकृत चयनित लॉग-प्रोब्स देखते हैंः बीपीओ।
- यदि प्राथमिकता की ताकतें व्यापक रूप से भिन्न होती हैं और डीपीओ संतृप्त होता हैः आईपीओ।
प्रत्येक प्रयोगशाला एक बैटरी पर सभी पांचों को चलाती है और प्रत्येक कार्य के लिए विजेता का चयन करती है। गणित तर्क और सुरक्षा के लिए इष्टतम का कोई कारण नहीं है।
इसका प्रयोग करें
code/main.pyएक खिलौना वरीयता डेटासेट पर छह नुकसान (डीपीओ, आईपीओ, केटीओ, सिम्पो, ओआरपीओ, बीपीओ) की तुलना करता है जहां वास्तविक वरीयता ताकत जोड़ी के अनुसार भिन्न होती है। प्रत्येक नुकसान को एक ही 500 जोड़ी के नमूने के खिलाफ एक छोटी सॉफ्टमैक्स नीति के साथ अनुकूलित किया जाता है। प्लॉट अंतिम जीत दर, चुना-लॉग-प्रोब बहाव, और प्रति विधि अप्रत्यक्ष पुरस्कार प्रसार।
इसे भेजें
यह सबक हमें फल देता हैoutputs/skill-preference-loss-selector.md. डेटासेट के आंकड़ों (जोड़ी बनाम असंबद्ध, चर बनाम समान प्राथमिकता बल, लंबाई वितरण) और एक लक्ष्य (एक चरण या एसएफटी-तो-पहचान) को देखते हुए, प्राथमिकता हानि की सिफारिश करें और विफलता मोड की रिपोर्ट करें जिससे यह बचाता है।
व्यायाम
- दौड़ें
code/main.py. डीपीओ और बीपीओ के लिए अंतिम चयनित लॉग-प्रोब गिरावट की रिपोर्ट करें. बीपीओ को उच्च चयनित पूर्ण संभावना बनाए रखना चाहिए इसे सत्यापित करें।
- सभी जोड़े के समान ताकत होने के लिए प्राथमिकता डेटा को संशोधित करें। छह तरीकों में से कौन सा सबसे मजबूत है? कौन सा गिरावट? यहां आईपीओ के लाभ की व्याख्या करें।
- अस्वीकृत उत्तरों को औसत में चयनित से 2 गुना लंबा बनाएं। कुछ भी बदलते हुए, डीपीओ की लंबाई का शोषण संख्यात्मक रूप से और सिम्पो की फिक्स दिखाएं।
- राफाइलोव एट अल (NeurIPS 2024) का दावा है कि डीएए ओवर-ऑप्टिमाइज़ करते हैं। एक एकल-बिंदु संस्करण का उत्पादन करेंः प्लॉट चुना-माइनस-रिजेक्ट किया KL विचलन और बड़े बीटा में डीपीओ में ओवर-ऑप्टिमाइज़ेशन का अवलोकन करें।
- बीपीओ पेपर सारांश पढ़ें (OpenReview b97EwMUWu7). डीपीओ में बीपीओ की एक पंक्ति की सुधार लिखें।
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.