大型語言模型工程

ORPO(賠率比偏好最佳化,odds-ratio preference optimization)

對齊模型的慣用配方分兩階段跑:先做監督式微調以教會格式,再做一個獨立的偏好步驟(如 RLHF 或 DPO)以教會品味,而後者通常需要一份凍結的模型參考副本。ORPO 把這一切塌縮成單一階段,且完全不需要參考模型。它在被選中的回應上微調,同時在「同一個損失」裡打壓被拒絕的回應——一趟、記憶體裡一個模型、沒有第二階段。

其機制是在標準監督似然之上,加一個賠率比懲罰。除了對偏好答案的一般下一詞元損失外,ORPO 再加一項,提高「生成被選中回應的賠率」相對於「生成被拒絕回應的賠率」。用賠率比而非生硬的機率比,能讓懲罰保持溫和,於是它把模型輕推離開不受青睞的輸出,卻不會發生某些無參考目標所苦的失控發散,而這一切之中監督項仍讓模型保持流暢。

它的吸引力在於操作簡單與成本更低:沒有獎勵模型、沒有參考模型、沒有額外階段,只是一個帶單一加權超參數、稍加修改的微調損失。同樣的極簡也是它的提醒——沒有參考錨點,偏好懲罰的強度就必須小心調校,而當你手上已有可折進微調集的配對偏好資料時,ORPO 最為自然。

\mathcal{L}_{\mathrm{ORPO}} = \mathcal{L}_{\mathrm{SFT}} + \lambda\,\mathcal{L}_{\mathrm{OR}},\quad \mathcal{L}_{\mathrm{OR}} = -\log\sigma\!\left(\log\frac{\mathrm{odds}(y_w)}{\mathrm{odds}(y_l)}\right)

對被選中答案的監督損失,加上一個偏好「選中勝於拒絕」的賠率比項,合在單一階段裡。

ORPO 在設計上就不需參考模型,這省了記憶體,卻也拿掉了凍結參考所提供的隱式正則化——那份工作得由加權項一肩扛起。

又称
ORPO賠率比偏好最佳化