DPO, Direct Preference Optimization,采用直接優化策略滿足人類偏好,使得LLM對于給定輸入,生成能用輸出的概率高于生成不能用輸出的概率。
1)DPO優化目標
在DPO訓練過程中,模型通過最大化可用回答相對于不可用回答的偏好分數的對數似然來優化。
其中:
D是偏好數據集。
σ是sigmoid函數。
β控制KL散度懲罰項強度的超參數,平衡模型生成高質量響應和保持與參考模型接近之間的關系。
優化目標是通過最小化損失 L_DPO?來增大模型對好回答?𝑦_𝑤的偏好,同時降低對差回答?𝑦_𝑙的偏好。這導致模型傾向于提升?𝑦_𝑤的概率,同時抑制?𝑦_𝑙 的概率。
2)DPO獎勵函數
DPO獎勵函數
3)傳統RL獎勵函數
對于一個給定策略π_θ,其生成響應y的獎勵函數r(x,y)由策略模型π_θ與參考模型π_ref(通常是SFT后模型)之間的對數概率比表示。
傳統RL獎勵函數r(x, y)是策略優化中KL散度懲罰的一個重要結果,在RL中加入KL懲罰項,即最大化
時,最優策略πθ?的形式為:
從這個式子反推得到獎勵函數r(x,y),與策略模型與參考策略的對數概率比成正比關系。
4)DPO學習解讀
從DPO優化目標和獎勵函數可見,DPO樣本的輸入和輸出為prompt + chosen + rejected,prompt用x表示,chosen表示的是可用輸出,rejected表示的是不可用輸出。通過最大化DPO目標函數,直接鼓勵模型生成更偏好的響應,同時懲罰生成不偏好的響應,無需顯式地訓練一個獎勵模型。
reference
---
DPO在代碼優化任務上性能糟糕的原因分析
https://inuyashayang.github.io/AIDIY/RLHF_Pages/DPO_Problem/
深度強化學習中的DPO算法:理論與實踐
https://juejin.cn/post/7511915154032967706
Direct Preference Optimization: Your Language Model is Secretly a Reward Model
[2305.18290] Direct Preference Optimization: Your Language Model is Secretly a Reward Model