JOVANA
Explore Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

不靠強化學習機制的對齊:偏好優化

RLHF 有效,但笨重又難搞。一波方法——DPO、IPO、KTO、ORPO——用一個樸素的監督式損失,就能從偏好資料對齊模型。要懂得每種方法修補了什麼、何時該用。

回顧:為何 RLHF 笨重

經典的 RLHF 分三階段對齊模型:先 SFT,再用人類偏好配對訓練一個獎勵模型(reward model),最後用 PPO 讓策略針對那個獎勵做優化。它有效——它造就了第一批真正有用的助手——但 RL 階段在運維上很痛苦。你得在記憶體裡同時擺弄四個模型(策略、參考、獎勵、價值),調一個脆弱的 KL 懲罰,還要提防獎勵駭入(reward hacking):策略不是變得更好,而是去鑽獎勵模型的漏洞。

RLHF 的三阶段流程——先 SFT,再训练奖励模型,最后用 PPO 优化策略——正是偏好优化想要替代的笨重机器。

RLHF 流程图:人类偏好训练奖励模型,再用奖励模型微调策略。

解開這一切的洞見是直接偏好優化(Direct Preference Optimization, DPO):你可以完全跳過顯式的獎勵模型與 RL 迴圈。DPO 證明 RLHF 的目標函數有閉式最優解,你能把它重排成一個直接作用在偏好配對上的簡單監督式損失。一個模型、一個凍結的參考、一個熟悉的訓練迴圈。本指南裡的一切,都是 DPO 的後裔或對手。

先看一個更便宜的基線:拒絕取樣

在動用任何偏好損失之前,先認識最簡單的品質提升法:拒絕取樣微調(rejection-sampling fine-tuning)(也叫 best-of-N 或 RAFT)。從你的 SFT 模型取樣數個候選回應,用獎勵模型給它們打分,只留下最好的,再用普通的 SFT 損失去微調這些勝出者。你實際上是在把模型自己的最佳行為蒸餾回它身上。

DPO 的弱點,以及 IPO 的修補

DPO 有一個微妙的失效模式。它的損失會不斷擴大被選中與被拒絕回應之間的差距,且沒有自然的停止點。當一組偏好配對近乎決定性時(被選中的答案幾乎總是被偏好),DPO 會樂於把被拒絕答案的機率一路壓向零——而在這麼做的同時,它也可能把被選中答案的機率一併壓垮、扭曲模型,過擬合到偏好資料集的怪癖上。

\mathcal{L}_{\mathrm{DPO}}(\theta)=-\,\mathbb{E}_{(x,y_w,y_l)}\left[\log\sigma\!\left(\beta\log\frac{\pi_\theta(y_w\mid x)}{\pi_{\mathrm{ref}}(y_w\mid x)}-\beta\log\frac{\pi_\theta(y_l\mid x)}{\pi_{\mathrm{ref}}(y_l\mid x)}\right)\right]

DPO 目标:对被选与被拒回复之间隐式奖励差的逻辑斯蒂损失——没有上界,这个会趋向无穷的差距正是 IPO 要解决的弱点。

IPO(Identity Preference Optimization,恆等偏好優化)的修補方式,是加上一個正則項,把偏好差距釘在一個*目標邊距(target margin)*上,而非任其奔向無窮。模型被訓練成讓被選中回應被偏好「一個受控的量」,然後就停——這避免了在近乎決定性資料上的退化崩潰,也讓 IPO 對標籤雜訊明顯更穩健。代價是多一個要調的超參數(目標邊距)。

KTO:當你只有讚或倒讚

DPO 與 IPO 都需要成對資料:對同一個提示,要有一個被選中回應一個被拒絕回應。但在真實世界,你手上通常是更雜亂也更便宜的東西——一串單一回應,各自只被標記為(一份讚/倒讚的日誌)。KTO(Kahneman–Tversky Optimization)正是為這種非成對訊號打造的。

KTO 借用了行為經濟學裡的展望理論(prospect theory):它以相對於一個參考點的*效用(utility)*來建模一個輸出,並對「合意」與「不合意」的範例給予不同權重(人對損失的感受強於對收益)。實務上,它讓你能在大量、自然蒐集到的回饋上做對齊,而不必去做「建構成對配對」這件昂貴的苦差事——當你的訊號是生產環境的遙測、而非一個精心策劃的標註專案時,這是巨大的部署優勢。

ORPO:把對齊摺進 SFT

目前為止每一種方法都假設你已經做過 SFT,現在把對齊當作第二階段來跑——而且大多還需要在記憶體裡持有一個凍結的參考模型ORPO(Odds-Ratio Preference Optimization,勝算比偏好優化)把這兩個階段壓成一個。它在普通的 SFT 損失之上加上單一個勝算比(odds-ratio)懲罰項,於是單一次訓練就同時教會模型去模仿好的回應並且貶抑壞的回應——而且完全不需要另一個參考模型

\mathcal{L}_{\mathrm{ORPO}}=\mathcal{L}_{\mathrm{SFT}}-\lambda\,\log\sigma\!\left(\log\frac{\mathrm{odds}_\theta(y_w\mid x)}{\mathrm{odds}_\theta(y_l\mid x)}\right),\qquad \mathrm{odds}_\theta(y\mid x)=\frac{\pi_\theta(y\mid x)}{1-\pi_\theta(y\mid x)}

ORPO 在 SFT 损失上直接加一个优势比偏好惩罚项,于是单阶段、内存中只需一个模型即可同时拟合与对齐——无需单独的参考模型。

如何選擇對齊配方

  1. 只有非成對的讚/倒讚? 用 KTO——它是這裡唯一不需要配對資料的方法。
  2. 想要最精簡的流程、且手上有配對? 用 ORPO,一個階段內完成 SFT 與對齊,且不需參考模型。
  3. 偏好資料有雜訊或近乎決定性? 選 IPO 勝過樸素的 DPO——它的邊距正則項能抵抗過擬合崩潰。
  4. 有強的獎勵模型與生成預算? 先迭代拒絕取樣;在任何偏好損失之前,它都是一個穩健、難以超越的基線。
  5. 永遠在留出的偏好與真實任務上評測,並提防獎勵駭入與冗長偏誤——「鑽指標漏洞的對齊」正是整個AI 對齊領域的核心風險。