眾所周知,RLHF十分玄學(xué)且令人望而卻步。我聽過有的小道消息說提升很大,也有小道消息說效果不明顯,究其根本還是系統(tǒng)鏈路太長自由度太高,不像SFT一樣可以通過數(shù)據(jù)配比、prompt、有限的超參數(shù)來可控地調(diào)整效果。
但也正是因?yàn)樗淖杂啥?、以目?biāo)為導(dǎo)向的學(xué)習(xí)范式和性價比更高的標(biāo)注成本,業(yè)內(nèi)往往認(rèn)為它會有更高的效果天花板。同時我最近看OpenAI的SuperAlignment計劃感受頗深,非常堅定地認(rèn)為scalable的RLHF(不局限于PPO)就是下一步的大突破所在。
所以我秉著不拋棄不放棄的決心,帶大家梳理一下最近的RLHF平替工作,探索如何更穩(wěn)定地拿到效果。
RLHF鏈路可以分為兩個模塊,RM和RL,這兩個模塊各有各的問題:
RM:對準(zhǔn)確率和泛化性的要求都很高,不然很容易就被hack到(比如輸出某個pattern就給高分)。但業(yè)內(nèi)普遍標(biāo)注數(shù)據(jù)的一致率只有70%左右,數(shù)據(jù)決定效果天花板,如何讓RM代表大部分人的判斷、且能區(qū)分出模型結(jié)果的細(xì)微差異,難難難。這也是RLHF方法沒法規(guī)?;饋淼闹饕款i
RL:獎勵太稀疏(最后一步才拿到句子分?jǐn)?shù),不像SFT一樣有真實(shí)的token-level監(jiān)督信號)、PPO超參數(shù)非常多,導(dǎo)致效果很不穩(wěn)定
針對上述兩個模塊的問題,學(xué)術(shù)界大佬們各顯神通,大概有以下幾種解決方案:
沒得商量,不做RL了,選擇性保留RM:比如RRHF、DPO,這類方法可以直接在RM數(shù)據(jù)上優(yōu)化語言模型,但如果想提升效果,需要用自身模型采樣,得再引入一個RM,比如RSO、SCiL、PRO等。又或者直接用RM采樣的數(shù)據(jù)做精調(diào),比如RAFT、Llama2等
用其他RL算法:比如ReMax、Decision Transformer
下面我們就逐一盤盤這些方法以及他們給出的有用結(jié)論。
不做RL了
RRHF
RRHF: Rank Responses to Align Language Models with Human Feedback without tears
RRHF是阿里在今年年初(2023.04)發(fā)布的工作,它的做法是直接在RM數(shù)據(jù)山優(yōu)化LM,讓chosen回答的概率大于rejected回答的概率。
RRHF
在具體實(shí)現(xiàn)上,就是計算句子的條件概率后加一個ranking loss:
RRHF loss
但在實(shí)踐中,作者發(fā)現(xiàn)只用ranking loss會把模型訓(xùn)崩潰,所以又加了SFT loss。從消融實(shí)驗(yàn)可以看到加了rank loss確實(shí)對模型效果有一些提升:
最終在HH數(shù)據(jù)集上,作者提出的RRHF平均得分略好于PPO(-1.02 vs -1.03),效果差距不是太大,但該方法主打一個便捷穩(wěn)定。
同時作者也在實(shí)驗(yàn)中嘗試了不同的數(shù)據(jù)采樣策略:
直接用開源RM的數(shù)據(jù)
用自己的模型生成response,用開源RM進(jìn)行排序,做出新的RM數(shù)據(jù)
循環(huán)執(zhí)行2,類似強(qiáng)化的思維不斷靠自身采樣到更好的答案
最后的結(jié)論也比較符合直接,是3>2>1。
Preference Ranking Optimization for Human Alignment
后續(xù)阿里(非同作者)在2023.06又提出了一個PRO方法,核心思想跟RRHF接近,但有兩個不同:
選用了更多負(fù)例,不止停留在pair-wise
給不同負(fù)例不同的懲罰項(xiàng)(比如分?jǐn)?shù)差的多就拉大一些)
PRO
同時也加上了SFT loss,最終效果比RLHF和RRHF都有些提升。
DPO
Direct Preference Optimization:Your Language Model is Secretly a Reward Model
DPO是斯坦福在2023.05底提出的工作,主打一個硬核,直接從PPO公式推出了一個平替方案,雖然最終loss呈現(xiàn)的思想跟RRHF接近(chosen句子概率>rejected句子概率),但同時帶有一個SFT模型的約束,可以保證在不加SFT loss的情況下訓(xùn)練不崩潰(個人猜測)。
DPO
作者在公開的幾個RM數(shù)據(jù)集上都做了實(shí)驗(yàn),可以發(fā)現(xiàn)DPO對超參數(shù)的敏感度更低,效果更穩(wěn)定,且獎勵得分優(yōu)于RLHF。
同時,微軟在2023.10月的一篇工作[1]上也對DPO做了進(jìn)一步的探索??紤]到排序數(shù)據(jù)成本,他們直接默認(rèn)GPT4 > ChatGPT > InstructGPT,實(shí)驗(yàn)后得到以下結(jié)論:
用DPO在 GPT4 vs InstructGPT 上訓(xùn)練的效果 > 直接在GPT-4數(shù)據(jù)精調(diào)的效果
先在簡單的pair上訓(xùn)練后,再在困難的pair上訓(xùn)練會有更好的效果
RSO
Statistical rejection sampling improves preference optimization
上面介紹了兩種ranking思想的loss,具體哪種更好一些呢?DeepMind在2023.09月份的一篇RSO[2]工作中進(jìn)行了更系統(tǒng)的對比,得到了以下結(jié)論:
DPO(sigmoid-norm) loss效果略好,但更重要的是增加SFT約束,可以看表中沒加約束的hinge loss效果很差,但加了約束后則能接近DPO
另外重要的還有采樣策略,比如要優(yōu)化模型A,最好用模型A生產(chǎn)的結(jié)果,去做pair標(biāo)注,再訓(xùn)練A,比用模型B生產(chǎn)的數(shù)據(jù)訓(xùn)練A更好。這跟RRHF的結(jié)論也比較一致,更接近「強(qiáng)化」的思想
RSO實(shí)驗(yàn)結(jié)果
同時作者提出了另外一種RSO(Rejection Sampling Optimization)的采樣方法,實(shí)驗(yàn)發(fā)現(xiàn)有2個點(diǎn)左右的提升。
Rejection Sampling + SFT
拒絕采樣是一種針對復(fù)雜問題的采樣策略[3],可以更高效地采樣到合適的樣本,進(jìn)行復(fù)雜分布的估計。最近也有很多方法,利用RM進(jìn)行拒絕采樣,直接用采樣出的數(shù)據(jù)對模型做SFT。
Llama 2: Open Foundation and Fine-Tuned Chat Models
LLama2就很好地使用了拒絕采樣,先問問地訓(xùn)RM,再用RM篩選出當(dāng)前模型最好的結(jié)果進(jìn)行SFT。論文發(fā)出時他們一共把llama2-chat迭代了5輪,前4輪都是用的拒絕采樣,只有最后一輪用了PPO,可以看到相比ChatGPT的勝率一直在提升:
不過從RLHF v5(no PPO)和RLHF v5(with PPO)來看,RL還是能有很大的效果收益。
這種方法還有很多變體可以探索,比如港大在2023.04提出的RAFT[4],就是選取多個樣本進(jìn)行后續(xù)精調(diào)。同時采樣策略也可以進(jìn)行一些優(yōu)化,比如上面提到的RSO。
用其他RL算法
ReMax
ReMax: A Simple, Effective, and Efficient Reinforcement Learning Method for Aligning Large Language Models
ReMax是港中文在2023.10提出的工作,核心是對RLHF中RL階段的PPO算法進(jìn)行了簡化。
強(qiáng)化的難點(diǎn)是怎么把多步之后的最終目標(biāo)轉(zhuǎn)化成模型loss,針對這個問題有不同解決方案,目前OpenAI所使用的RL策略叫PPO[5],是他們自己在2017年提出的一個經(jīng)典RL算法(OpenAI早期真的做了很多強(qiáng)化的工作)。
但ReMax的作者認(rèn)為,PPO并不適用于語言模型的場景:
可以快速拿到句子獎勵:傳統(tǒng)RL的長期獎勵獲取可能會比較昂貴,比如必須玩完一局游戲、拿起一個杯子,而RLHF在有了RM后可以快速拿到獎勵
確定性的環(huán)境:傳統(tǒng)RL中,環(huán)境也是變化的,同一個場景+動作可能拿到不同獎勵,而在語言模型中,給定上下文和當(dāng)前結(jié)果,下一步的狀態(tài)也是確定的,RM打分也是確定的
上面兩點(diǎn)在傳統(tǒng)RL中會造成學(xué)習(xí)不穩(wěn)定的問題,因此PPO使用了Actor-Critic網(wǎng)絡(luò),即引入一個「助教」來給模型的每一步打分,而作者認(rèn)為在語言模型上可以省去。
ReMax
因此,作者提出用強(qiáng)化中的REINFORCE算法來代替PPO,去掉了Critic模型,但作者在實(shí)驗(yàn)中同樣發(fā)現(xiàn)了梯度方差較大優(yōu)化不穩(wěn)定的問題,于是增加了一項(xiàng)bias來降低方差,命名為ReMax算法。
由于資源受限,作者沒跑通7B的PPO實(shí)驗(yàn),只對比了1.3B的ReMax和PPO,效果顯示ReMax更好一些:
ReMax效果
除了效果提升之外,由于去掉了一個要訓(xùn)練的模型,在顯存占用和訓(xùn)練速度上都有提升。
Offline RL: Decision Transformer
上面我們說的PPO、REINFORCE都是Online RL,需要一個虛擬環(huán)境,通過互動拿到獎勵,再進(jìn)行學(xué)習(xí)。相對的,Offline RL是指直接拿之前和環(huán)境互動的數(shù)據(jù)來學(xué)習(xí)。
Aligning Language Models with Offline Reinforcement Learning from Human Feedback
這篇是英偉達(dá)在2023.08提出的工作,探索了MLE、用reward做回歸、DT(Decision Transformer)三種離線強(qiáng)化算法,最終發(fā)現(xiàn)DT的效果更好。
Decision Transformer是一個2021 RL Transformer的開山之作,但NLPer一看就懂:
Decision Transformer
它的核心思想是把獎勵、狀態(tài)作為輸入,讓模型預(yù)測動作,從而建模三者之間的關(guān)系。比如模型訓(xùn)練時見過1分的答案,也見過5分的,那預(yù)測時直接輸入
這樣訓(xùn)下來效果居然還不錯,也超過了PPO:
DT效果
SteerLM: Attribute Conditioned SFT as an (User-Steerable) Alternative to RLHF
沒想到的是,英偉達(dá)不同團(tuán)隊(duì)在2023.10月又推出了一篇SteerLM的工作,與DT的思想類似,但會把獎勵分為不同維度,比如質(zhì)量、幫助性等等。
SteerLM
具體做法:
通過人工標(biāo)注的各個維度打分,訓(xùn)練一個打分模型
用打分模型對更多數(shù)據(jù)打分
精調(diào)一個SFT模型,可以做到輸入prompt、目標(biāo)分?jǐn)?shù),輸出符合分?jǐn)?shù)的結(jié)果
用第三步的模型生產(chǎn)更多答案,再打分,如此循環(huán)
最終的效果也是好于RLHF(PPO哭暈在廁所):
SteerLM效果
總結(jié)
以上就是我最近關(guān)注的RLHF平替方法,雖然可走的路很多,但很難有一個可靠且全面的效果對比,畢竟RLHF本身就難訓(xùn)不穩(wěn)定,幾百條數(shù)據(jù)下波動幾個點(diǎn)很正常,而且無論是自動測評還是人工測評都會帶有bias。
但對于資源有限的團(tuán)隊(duì)來說,平替方案不失為一種選擇。
-
模塊
+關(guān)注
關(guān)注
7文章
2658瀏覽量
47294 -
數(shù)據(jù)
+關(guān)注
關(guān)注
8文章
6820瀏覽量
88747 -
模型
+關(guān)注
關(guān)注
1文章
3116瀏覽量
48661
原文標(biāo)題:總結(jié)
文章出處:【微信號:zenRRan,微信公眾號:深度學(xué)習(xí)自然語言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論