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


























