我們已經用 SFT 讓退款 Agent 看過正確示範,也決定採用 LoRA 家族,只更新少量的任務差異參數。
現在模型知道一個好答案大概長什麼樣子。
但正式環境很快會出現另一種問題:
同一個問題可能有兩個都正確的回答,團隊仍然希望模型穩定選擇其中一個。
例如:
兩個回答都引用了正確政策,也都要求訂單編號。
A 比較簡短,B 則把尚未確認的條件、下一步與判斷依據說得更清楚。
如果 Agent 只能提供政策說明,A 可能已經足夠;如果它接下來還能操作退款,B 的表達就比較符合「先查證,再承諾」的責任邊界。
這裡沒有新的事實要讓模型背,也不是工具不會呼叫。
真正需要學的是:當多種回答都能完成任務時,我們更重視哪一種取捨?
這正是偏好學習要處理的問題。
我們可以只把回答 B 放進 SFT 資料,讓模型繼續模仿。這會告訴模型「理想答案長得像 B」,卻不會直接把「同一情境下,為什麼 B 比 A 更適合」寫進訓練目標。
偏好資料補上了這項比較。一筆最基本的資料包含同一個問題、偏好回答(chosen)與非偏好回答(rejected)。如果資料還能保存判斷準則,例如「執行退款前,不得把條件式權益說成確定結果」,日後才有辦法查明模型究竟被教了什麼。
偏好回答與非偏好回答不等於「完全正確」與「完全錯誤」。它們只表示:在這次比較與這套準則下,前者比較符合需求。
這個差異看似簡單,卻決定了整個方法家族應該如何理解:偏好學習不是替答案蓋上好壞印章,而是讓模型學習特定條件下的相對選擇。

偏好最佳化的方法看起來很多,但它們其實在回答四種不同問題。
| 判斷問題 | 真正在決定什麼 | 代表方法 |
|---|---|---|
| 回饋資料長什麼樣子? | 是成對比較、單筆正負回饋,還是多答案評分? | DPO、KTO、NCA |
| 要不要參考訓練前的模型? | 用哪個起點衡量模型改變了多少? | DPO、SimPO |
| 兩個回答要往哪裡移動? | 提高偏好回答、壓低非偏好回答,還是只拉開差距? | IPO、APO |
| 這份偏好可信嗎? | 標籤是否錯誤、評分準則是否偏斜、不同族群是否真的有共同偏好? | Dr. DPO、異質偏好方法 |
這張表比方法年份更重要。遇到問題時,應該先判斷是哪一個條件不成立,再選擇對應方法;不是看到更新的論文,就把整套訓練流程換掉。
傳統 RLHF 通常會先用人類偏好訓練獎勵模型,再讓模型產生回答,依照獎勵分數更新策略。這條路可以處理複雜回饋,但也包含額外的獎勵模型與反覆取樣。
DPO 提出更直接的做法:不另外訓練獨立獎勵模型,也不在訓練過程中反覆產生新回答,而是直接使用現有的偏好回答與非偏好回答更新模型。
它的運作方式可以濃縮成三步:
參數 beta 控制模型要多積極地貼近新偏好,又要保留多少原本行為。OpenAI 的 DPO 說明 也把摘要重點、語氣與風格列為偏好微調的適用情境。
原始論文以參數規模最高 60 億的模型測試情感控制、摘要與單輪對話,證明 DPO 在當時的實驗設定中能以較簡單的離線流程取得有競爭力的表現。但這不能被外推成「DPO 在所有模型與任務都優於線上 RL」。
DPO 真正簡化的是訓練流程,不是「什麼叫比較好」這個問題。哪個答案被選為偏好回答、參考模型使用哪個版本、資料是否涵蓋正式環境,仍然決定模型會往哪裡移動。
DPO 假設同一個問題有一組偏好回答與非偏好回答,但產品收集到的資料不一定長這樣。
如果使用者只對單一回答按讚或倒讚,硬替每筆資料尋找同題對手,不只增加整理成本,也可能製造不存在的比較。KTO 因此改用未成對的正向/負向回饋,讓團隊可以直接使用單筆評價。
如果每個問題已經有四個回答與 0 到 10 分,先壓成二元結果反而會丟失資訊。NCA/InfoNCA 可以保留多個回答與數值回饋,讓模型不只知道誰贏,還能利用答案之間的分數差距。
所以第一個最佳實務不是「先選 DPO」,而是:先確認偏好被記成成對比較、單筆回饋、分數還是排序,再選擇能保留這些資訊的方法。
DPO 的參考模型不是單純多占一份 GPU 記憶體,而是用來表示訓練起點。
如果流程是先做 SFT,再做 DPO,參考點通常應該是 SFT 後的模型,而不是更早的基礎模型。設定檔中的 ref_model=None 也不一定表示訓練不需要參考模型:有些框架會複製凍結的 SFT Adapter,有些會停用正在訓練的 Adapter,也有些會預先計算參考模型的對數機率。
Hugging Face TRL 與 LLaMA-Factory 都能透過類似方式重建參考狀態。它們可能省下常駐模型所需的 GPU 記憶體,卻仍保留參考模型在訓練目標中的作用。
SimPO 才是改變訓練目標本身:它不使用 DPO 式參考模型,改以每個 Token 的平均對數機率作為隱式獎勵,並加入目標差距。SimPO 在作者的多組聊天模型實驗中優於 DPO,但結果仍依賴模型、資料、評分方式與超參數,不能被理解成無條件的下一代替代品。
少載入一個模型,和改成不需要參考模型,是兩件不同的事。
DPO 常觀察偏好回答與非偏好回答之間的獎勵差距。但差距變大可能有三種情況:偏好回答上升、非偏好回答下降,或兩者一起下降但非偏好回答降得更快。
Gradient Entanglement 的研究顯示,只看相對差距,可能看不出兩個回答各自往哪個方向移動。因此,獎勵差距增加不能直接解讀成偏好回答更容易被模型生成。
IPO 以有限的目標差距,避免模型無止境地拉開兩個答案;APO 則把移動方向拆得更清楚:APO-zero 提高偏好回答並壓低非偏好回答;APO-down 讓兩者都下降,但更強地壓低非偏好回答。
如果偏好回答只是兩個壞答案中比較不差的一個,盲目提高它的機率,等於把「比較不差」教成標準答案。這也是為什麼不能只看獎勵差距,而要同時觀察兩個回答的對數機率與實際生成結果。
偏好標籤可能因評分者意見不同、問題提供的資訊不足或 AI 評分模型不穩定而翻轉。Dr. DPO 等方法嘗試降低錯標資料對訓練的影響,但穩健的損失函數只能降低部分雜訊,不能修正標註準則本身的偏誤。
如果評分者習慣把較長的回答選為偏好回答,模型仍可能穩定學會「寫得更長」,而不是「回答得更好」。如果所有標籤都來自同一個 AI 評分模型,它的盲點也可能被複製到訓練資料中。
異質偏好研究 又指出另一個更根本的問題:在每位使用者資料有限、使用者類型無法直接觀察的研究設定下,二元比較不足以識別潛在的偏好類型;三個以上回答的不完整排序則能提供更多識別資訊。這表示一個多數決標籤,不一定等於所有使用者共同認可的價值。
到這裡,方法的演化可以重新收斂成四個問題:先看回饋形式,再確認參考點與機率移動,最後檢查偏好是否可信。方法只是對應不同限制的工具,不是新舊版本的接力賽。

選對方法後,資料仍可能在進入模型時失去比較訊號。
OpenRLHF Issue #1311 記錄了一個很具體的案例:如果兩個回答真正不同的部分落在最大長度之外,截斷後的偏好回答與非偏好回答會變成完全相同的 Token。此時 DPO 損失停在 ln(2),偏好梯度為零。
原始 JSON 的欄位沒有錯,訓練也不一定報錯,但模型實際上沒有看到任何可以學習的差異。
因此,成對資料不能只在原始格式中驗收。進入訓練前,還要使用正式的對話模板、Tokenizer 與截斷設定重新處理,確認兩個回答:
此外,What Matters in Data for DPO? 發現,在研究採用的實驗設定中,提高偏好回答的品質,是 DPO 改善的主要驅動因素;非偏好回答的品質影響相對較小。
這不表示非偏好回答不重要,而是提醒我們:如果偏好回答本身不值得學,再精巧的損失函數也只是更有效率地放大一個不好的目標。
偏好最佳化沒有一個適用所有資料與產品的最佳方法。比起直接追逐最新論文,我會從最容易解釋與驗證的 DPO 基準開始,再根據實際失敗選擇分支。
| 觀察到的限制 | 優先處理方式 | 不該直接得出的結論 |
|---|---|---|
| 有可靠的成對比較 | 先建立 DPO 基準 | DPO 是所有偏好資料的唯一解法 |
| 只有單筆正向/負向回饋 | 評估 KTO | 把不同問題的回答硬配成一組 |
| 有多答案分數或排序 | 評估 NCA/InfoNCA | 先丟掉分數,只留下二元勝負 |
| 參考模型造成記憶體壓力 | 預先計算對數機率或使用 Adapter 狀態 | ref_model=None 就是不使用參考模型 |
| 想移除 DPO 式參考模型 | 評估 SimPO,重新調整超參數 | 少一個模型就一定更準或更便宜 |
| 獎勵差距變大,生成品質沒有改善 | 檢查兩個回答的對數機率,再評估 IPO/APO | 差距變大就代表訓練成功 |
| 標籤可能錯置 | 重做抽樣複核,再評估 Dr. DPO | 換損失函數就能修正有偏的準則 |
| 不同使用者偏好互相衝突 | 保存評分者與族群資訊,評估分群或個人化 | 多數決就是普遍的人類偏好 |
這張表的重點不是推薦八種方法,而是建立一條順序:
先驗證資料,再建立基準;先確認失敗症狀,再決定是否需要更換方法。
偏好訓練最容易取得的數字,通常是成對資料的正確率與獎勵差距。它們只能確認模型在這批偏好資料中,是否更常替偏好回答打出較高分數,不能直接回答模型自由生成時會說什麼。
至少需要三層驗收:
| 驗收層次 | 要看什麼 | 防止哪一種誤判 |
|---|---|---|
| 成對資料 | 未參與訓練的配對正確率、獎勵差距,並依長度與資料來源分層 | 訓練損失下降就代表完成 |
| 實際生成 | 固定解碼設定,測任務成功、事實正確、拒答、重複與回答長度 | 配對分數提高就代表實際回答變好 |
| 回歸測試 | 與 SFT 模型比較通用能力、安全邊界、工具使用與延遲 | 偏好更穩定就沒有其他能力退步 |
OpenAI 的官方文件也示範了另一條證據原則。GPT-5.6 System Card 與 GPT-6 Astra System Card 描述了 RL、訓練範例、模型行為與安全評估,卻沒有公開這兩個家族是否採用 DPO、偏好配對或特定獎勵模型。GPT-6 Astra 的文件還特別標示,部分對齊評估是在訓練完成後才建立。
因此,評估可以證明模型在某套測試中的行為,不能反過來證明它使用哪一種訓練方法。

最後,我會用四個問題決定這套方法是否足夠:
如果前兩題無法回答,問題還不在 DPO,而在需求與標註準則尚未定義。如果第三題的答案是否定的,應先重新選擇符合資料形式的方法。
如果第四題的答案是否定的,離線偏好學習就會碰到天花板。模型更新之後可能產生資料中從未出現的新答案;此時需要重新取樣、評分與學習,或直接由程式與外部狀態驗證結果。這才會進入 Online DPO、PPO、GRPO 與可驗證獎勵的範圍。
DPO 讓偏好最佳化更容易執行,卻沒有讓「什麼比較好」自動變成真理。偏好學習的核心不是選出最流行的損失函數,而是把取捨說清楚、把比較保留下來,最後驗證模型在真正生成答案時,是否仍然做出我們想要的選擇。
