直接偏好優化(direct preference optimization, DPO)
經典的 RLHF 是一台三件式機器:先訓練獎勵模型,再跑一個用到它的強化學習迴圈(PPO),同時還要兼顧一個 KL 懲罰。這很強大,卻也繁瑣,記憶體裡得多塞幾個模型,還有一堆要調的旋鈕。直接偏好優化是一條巧妙得多的捷徑,通往大致相同的目的地:直接用偏好配對來訓練語言模型,完全跳過獨立的獎勵模型與 RL 迴圈。
這個訣竅建立在一段數學上。RLHF 想找的那個策略(透過 KL 懲罰,在貼近基礎模型的同時最大化獎勵)與獎勵之間,存在一個已知的封閉形式關係。DPO 把這個關係反過來用:它改寫目標,讓獎勵能用「策略本身」來表達,於是剩下一個簡單的損失,你可以用一般監督式的訓練去優化它。實際效果是,你推動模型去提高每個勝出答案的機率、降低每個落敗答案的機率,幅度繫於同樣的 Bradley-Terry 邏輯,並且仍內建了一條隱含的 KL 牽繩。一個模型、一個穩定的訓練迴圈,沒有需要另外去過度優化的獎勵模型。
DPO 與相關的「免獎勵模型」方法之所以流行,是因為它比基於 PPO 的 RLHF 更簡單、更便宜、訓練更穩定,又常能達到相當的品質,這對小團隊很重要。誠實的警告是:DPO 仍是從一份固定的偏好資料集學習,因此繼承了同樣的標註偏誤,而且它仍在優化一個人類偏好的代理,只是個隱含的代理;此外,關於它是否真能比得上調校良好的線上 RLHF,尤其在前沿與最棘手的安全行為上,學界仍有爭論。它換掉的是機械裝置,而不是「從偏好學習」的根本限制。
給定配對(勝出:一個清楚的拒絕;落敗:一份有害的操作教學),DPO 直接提高模型產出拒絕的機率、降低產出教學的機率,過程中從未訓練任何獨立的獎勵模型。
DPO 直接從偏好配對優化策略,把獎勵模型「摺疊」掉了。
更簡單不代表免疫:DPO 仍在用一份固定、可能有偏的偏好集去優化一個(隱含的)代理,而它是否能完全比得上調校良好的線上 RLHF,仍有爭議。