獎勵模型:為什么要用評估專家及其設計方案
大模型最根本的價值就是替代人的工作,而在訓練大模型的過程中,還有很多操作是需要人工的。比如數(shù)據(jù)工程里的數(shù)據(jù)質(zhì)量檢查、模型評估階段的人工測評等。
關于這個問題,我的答案是使用評估專家模型技術,讓這些過程實現(xiàn)完全無人化。你可以把評估專家模型看做是大模型項目里技術難度最高的部分,它的思想也完全適用于你將來利用大模型解決其他行業(yè)問題。
ChatGPT 的獎勵模型
我們先看下ChatGPT 在 RLHF 強化學習階段里獎勵模型的概念。通過這個概念的回顧,我們能搞清楚評估專家模型的來龍去脈。
獎勵模型的核心在于自動化地評估并給大型語言模型(如 ChatGPT)的輸出打分。它的目標是讓模型的輸出與人類的價值觀保持一致。
這套自動化的評估和打分系統(tǒng),其能力已經(jīng)可以與人類相媲美。
想象一下,當大型模型給出兩個不同的答案時,即使是人類,也很難在兩者之間做出選擇。因為每個人的評估標準都不同,所以所謂的“好”答案也沒有統(tǒng)一的標準。
然而,獎勵模型需要做出一個能夠滿足大多數(shù)人期望的、好的選擇。這意味著它必須學習并內(nèi)化一種普遍的、與人類價值觀相符的評估標準,而不是少數(shù)人的偏好。
說第二個層次,要實現(xiàn)這個獎勵模型,實際上還是需要人類業(yè)務專家先評估語料的質(zhì)量,真實過程是用小樣本的人類專家的數(shù)據(jù)標注,模型經(jīng)過訓練后獲得全功能的輸出評估能力。
這個過程就是 RLHF 階段的 step 2 ,如下圖所示,也就是獎勵模型的實現(xiàn)過程。
圖片
獎勵模型如何獲得評估能力?
獎勵模型之所以能評估大模型的輸出,是因為它通過模仿人類評估專家進行學習。
具體來說,人類專家會先對不同的大模型輸出結果進行排序和打分(例如,從 A 到 D)。這些帶有排序信息的評估數(shù)據(jù),被用來單獨訓練一個獎勵模型。這個訓練過程讓獎勵模型學會了如何像人類專家一樣,去判斷和評估文本的質(zhì)量。
因此,我們可以把獎勵模型看作是一個專門的“評估專家”模型,它的核心作用就是自動化地評估多個大模型輸出的優(yōu)劣。
獎勵模型的評估任務有多難?
ChatGPT 的評估任務可以說是所有評估任務中最難的一種。因為它的輸入和輸出內(nèi)容非常廣泛和復雜,具有極大的多樣性。
相比之下,其他領域的評估任務就簡單得多,例如:
- 數(shù)據(jù)工程中的數(shù)據(jù)質(zhì)量評估:通常有明確的標準和規(guī)則。
- 傳統(tǒng)模型測試中的結果評估:往往只針對特定類型的問題。
因此,如果你的評估任務與 ChatGPT 的獎勵模型類似,即需要處理多樣化和復雜的文本輸出,那么完全可以借鑒獎勵模型(Reward Modeling)的思路來構建自己的自動化評估系統(tǒng)。
評估專家模型實例
我們一起來思考一個問題,不管是對數(shù)據(jù)質(zhì)量的判斷,對模型結果的判斷,實際上都是一種數(shù)據(jù)評估能力,而 GPT 的獎勵模型就是一種典型的評估能力,也就是對結果好壞做評估排序。數(shù)據(jù)質(zhì)量的判斷則可以簡化為采用 - 丟棄這樣的二值化評估,對特定的問題的模型輸出結果的判斷可以簡化為評估比對前后兩次結果的好壞。從原理上來說,都可以被 GPT 獎勵模型的結果排序評估覆蓋。
ChatGPT 論文
要自己實現(xiàn)一個評估專家,可以分為兩個層次思考,首先在戰(zhàn)略設計上可以直接參考 ChatGPT 的論文。實際上就是 RLHF 強化學習的三個階段。
圖片
- 第一階段:有監(jiān)督微調(diào)首先,利用高質(zhì)量的人工標注數(shù)據(jù)集對預訓練的大語言模型進行監(jiān)督微調(diào)。這個過程讓模型學會生成高質(zhì)量的、符合人類期望的回復。
- 第二階段:獎勵模型訓練這是我們之前討論的核心。利用人類專家對模型輸出的排序和評估數(shù)據(jù),訓練一個獎勵模型。這個模型的目標是學會像人類一樣給回復打分,本質(zhì)上是一個“評估專家”。
- 第三階段:強化學習(PPO)最后,使用強化學習算法(如 PPO)來進一步優(yōu)化大模型。在這個階段,獎勵模型充當“獎勵信號”,指導大模型生成分數(shù)更高的回復,從而使其輸出質(zhì)量保持穩(wěn)定,并與人類偏好更緊密地對齊。
Llama Guard 3模型
不知道你有沒有這樣的經(jīng)驗,當你向大模型的提問帶有某些風險的時候,大模型的輸出會明確提示這個風險,甚至你讓大模型輸出某些不文明用語都會被阻止。這其實要歸功于 Llama Guard 3這類防止濫用防護評價模型。
圖片
當用戶向 Llama 3 提問的時候,每次 Llama 3 都會讓 Llama Guard 3來做安全評估,其實現(xiàn)過程也是一次大模型調(diào)用。
你可以看看每次安全評估的提示詞模版。
圖片
顯然,Llama Guard 3接收的提示詞是一個典型的大模型提示詞,我們只要關注最核心的幾個信息。
{{unsafe_categories}}表示要讓 Llama Guard 3識別的具體安全分類。具體安全分類有 14 種。
圖片
提示詞中的 user_message 和 model_answer 就是 Llama 3 和用戶之間的問答上下文。有了這樣一個提示詞,Llama Guard 3 最終會給出一個二值的輸出,也就是 safe 或 unsafe,如果輸出是 unsafe 則還會給出具體的安全分類。下面是一個具體的輸出例子,你一看就知道了。
圖片
們可以把 Llama Guard 3 看做一個典型的評估專家模型,他的作用是給輸出內(nèi)容做安全評估和分類。在具體實現(xiàn)上,Llama Guard 3 其實就是一個經(jīng)過微調(diào)的大模型,它是基于 Llama 3.1 8B 小模型微調(diào)訓練的。
圖片
評估專家模型設計
先明確兩點,其一是評估專家的模型訓練方法就是大模型微調(diào)訓練,其二需要為特定的評估專家準備特定的數(shù)據(jù)集。核心思想是人類整理數(shù)據(jù)集,讓大模型學會人類的評估方法。
那什么場景下用什么數(shù)據(jù)集呢?這個才是核心問題。如果總結一下,其實一共就 3 類評估專家,分別適合 3 種場景。接下來我?guī)阋灰患毞帧?/span>
數(shù)據(jù)集設計
我們先從數(shù)據(jù)集格式出發(fā)比對不同數(shù)據(jù)集的異同,最后自然可以推導出什么場景適用哪個數(shù)據(jù)集格式。
圖片
我想這張圖已經(jīng)比較清楚地表明了這 3 類數(shù)據(jù)集的區(qū)別,KTO 的輸出是絕對的 0-1 這樣二值判斷,RLHF 則是類似 ChatGPT 輸出的排序評估,DPO 也很簡單,是對 A-B 兩種結果的傾向性評估。
RLHF 輸出是多個輸出對比排序,也就是 ChatGPT 獎勵模型的數(shù)據(jù)格式,自不必多說。那 KTO 訓練和 DPO 訓練有什么不同?
訓練過程中,KTO 方法需要對輸出結果進行二元判斷,也就是輸出:符合預期 / 不符合預期,所以其收集的數(shù)據(jù)為 Prompt+Chosen 或 Rejected;DPO 訓練依賴人類反饋,需要對輸出結果進行偏好性判斷,輸出是兩個結果的傾向程度,所以其收集的數(shù)據(jù)為 Prompt+Chosen 和 Rejected。
下面是 KTO 和 DPO 的具體數(shù)據(jù)例子。
圖片
實際上,KTO 和 DPO 的數(shù)據(jù)集都表示在一個提示詞下,用戶和 AI 問答數(shù)據(jù)的優(yōu)選策略,chosen 表示優(yōu)選,rejected 表示次優(yōu)或丟棄。
KTO 與 DPO 的區(qū)別
KTO (Knowledge-Trained Optimization)
KTO 適用于有明確客觀標準的問題。它將模型輸出結果分為符合預期或不符合預期的二元類別。這種方法最適合于事實性、有標準答案的任務,例如:
- 數(shù)學運算:計算結果正確或錯誤。
- 數(shù)據(jù)驗證:數(shù)據(jù)符合特定格式或不符合。
- 事實陳述:陳述正確或不正確。
DPO (Direct Preference Optimization)
DPO 適用于涉及主觀判斷和個人偏好的問題。它通過比較兩個或多個模型輸出的相對優(yōu)劣來訓練模型,而不是進行絕對的二元判斷。這種方法更適合于沒有唯一正確答案的任務,例如:
- 創(chuàng)意寫作:比較兩篇不同風格的散文。
- 設計美學:判斷兩種設計方案中哪一個更具吸引力。
- 個性化推薦:根據(jù)用戶喜好,選擇更偏好的推薦結果。
人類專家的價值
當然,數(shù)據(jù)集仍然要靠人類專家來準備和標注,和其他大模型數(shù)據(jù)集一樣,人類準備的數(shù)據(jù)集實際上是對大模型起到一個引導的作用。
具體到評估專家模型,就是對評分、分類、排序能力的引導。
圖片
工程經(jīng)驗
在數(shù)字孿生的實際工程中,我們通常采用二元分類(KTO)來評估數(shù)據(jù)質(zhì)量。這是一種快速高效的方法,因為它將數(shù)據(jù)分為“好”或“壞”兩大類。通過這種方式,評估專家可以根據(jù)業(yè)務場景快速篩選出所需數(shù)據(jù),即使使用小規(guī)模數(shù)據(jù)集也能取得不錯的效果。
我們曾嘗試過打分制評估,但發(fā)現(xiàn)其泛化能力較差,整體效果不如二元分類。只有在擁有大量精準數(shù)據(jù)且有強烈需求的情況下,才值得投入資源去訓練一個打分制模型。
KTO 為何適用于數(shù)據(jù)孿生?
在數(shù)據(jù)孿生領域,數(shù)據(jù)質(zhì)量評估的核心任務是識別壞數(shù)據(jù)。這些壞數(shù)據(jù)通常是指不符合物理現(xiàn)實或業(yè)務預期的異常數(shù)據(jù),例如:
- 數(shù)據(jù)不準確:數(shù)值與真實情況不符。
- 數(shù)據(jù)不完整:存在缺失值。
- 超出合理范圍:數(shù)值超出了物理或業(yè)務常識。
- 時序不一致:數(shù)據(jù)點的時間順序混亂。
- 違反物理規(guī)律:例如,某個物體的加速度突然為負值。
因此,KTO 的二元判斷方式非常契合這個場景。它不是基于主觀偏好,而是依據(jù)這些明確的、可量化的標準,將數(shù)據(jù)明確地判斷為“符合”或“不符合”。
工程實踐建議
在構建評估專家模型時,我們強烈建議不要從零開始訓練。最好的方法是基于像 Llama 3 或 ChatGLM 3 這樣的預訓練模型進行微調(diào)。這樣做可以充分利用這些模型已有的知識和能力,從而大幅提高訓練效率和模型性能。


























