眾所周知,RLHF十分玄學且令人望而卻步。我聽過有的小道消息說提升很大,也有小道消息說效果不明顯,究其根本還是系統鏈路太長自由度太高,不像SFT一樣可以通過數據配比、prompt、有限的超參數來可控地調整效果。
但也正是因為它的自由度、以目標為導向的學習范式和性價比更高的標注成本,業內往往認為它會有更高的效果天花板。同時我最近看OpenAI的SuperAlignment計劃感受頗深,非常堅定地認為scalable的RLHF(不局限于PPO)就是下一步的大突破所在。
所以我秉著不拋棄不放棄的決心,帶大家梳理一下最近的RLHF平替工作,探索如何更穩定地拿到效果。
RLHF鏈路可以分為兩個模塊,RM和RL,這兩個模塊各有各的問題:
RM:對準確率和泛化性的要求都很高,不然很容易就被hack到(比如輸出某個pattern就給高分)。但業內普遍標注數據的一致率只有70%左右,數據決定效果天花板,如何讓RM代表大部分人的判斷、且能區分出模型結果的細微差異,難難難。這也是RLHF方法沒法規模化起來的主要瓶頸
RL:獎勵太稀疏(最后一步才拿到句子分數,不像SFT一樣有真實的token-level監督信號)、PPO超參數非常多,導致效果很不穩定
針對上述兩個模塊的問題,學術界大佬們各顯神通,大概有以下幾種解決方案:
沒得商量,不做RL了,選擇性保留RM:比如RRHF、DPO,這類方法可以直接在RM數據上優化語言模型,但如果想提升效果,需要用自身模型采樣,得再引入一個RM,比如RSO、SCiL、PRO等。又或者直接用RM采樣的數據做精調,比如RAFT、Llama2等
用其他RL算法:比如ReMax、Decision Transformer
下面我們就逐一盤盤這些方法以及他們給出的有用結論。
不做RL了
RRHF
RRHF: Rank Responses to Align Language Models with Human Feedback without tears
RRHF是阿里在今年年初(2023.04)發布的工作,它的做法是直接在RM數據山優化LM,讓chosen回答的概率大于rejected回答的概率。

RRHF
在具體實現上,就是計算句子的條件概率后加一個ranking loss:

RRHF loss
但在實踐中,作者發現只用ranking loss會把模型訓崩潰,所以又加了SFT loss。從消融實驗可以看到加了rank loss確實對模型效果有一些提升:

最終在HH數據集上,作者提出的RRHF平均得分略好于PPO(-1.02 vs -1.03),效果差距不是太大,但該方法主打一個便捷穩定。
同時作者也在實驗中嘗試了不同的數據采樣策略:
直接用開源RM的數據
用自己的模型生成response,用開源RM進行排序,做出新的RM數據
循環執行2,類似強化的思維不斷靠自身采樣到更好的答案
最后的結論也比較符合直接,是3>2>1。
Preference Ranking Optimization for Human Alignment
后續阿里(非同作者)在2023.06又提出了一個PRO方法,核心思想跟RRHF接近,但有兩個不同:
選用了更多負例,不止停留在pair-wise
給不同負例不同的懲罰項(比如分數差的多就拉大一些)

PRO
同時也加上了SFT loss,最終效果比RLHF和RRHF都有些提升。
DPO
Direct Preference Optimization:Your Language Model is Secretly a Reward Model
DPO是斯坦福在2023.05底提出的工作,主打一個硬核,直接從PPO公式推出了一個平替方案,雖然最終loss呈現的思想跟RRHF接近(chosen句子概率>rejected句子概率),但同時帶有一個SFT模型的約束,可以保證在不加SFT loss的情況下訓練不崩潰(個人猜測)。

DPO
作者在公開的幾個RM數據集上都做了實驗,可以發現DPO對超參數的敏感度更低,效果更穩定,且獎勵得分優于RLHF。
同時,微軟在2023.10月的一篇工作[1]上也對DPO做了進一步的探索。考慮到排序數據成本,他們直接默認GPT4 > ChatGPT > InstructGPT,實驗后得到以下結論:
用DPO在 GPT4 vs InstructGPT 上訓練的效果 > 直接在GPT-4數據精調的效果
先在簡單的pair上訓練后,再在困難的pair上訓練會有更好的效果
RSO
Statistical rejection sampling improves preference optimization
上面介紹了兩種ranking思想的loss,具體哪種更好一些呢?DeepMind在2023.09月份的一篇RSO[2]工作中進行了更系統的對比,得到了以下結論:
DPO(sigmoid-norm) loss效果略好,但更重要的是增加SFT約束,可以看表中沒加約束的hinge loss效果很差,但加了約束后則能接近DPO
另外重要的還有采樣策略,比如要優化模型A,最好用模型A生產的結果,去做pair標注,再訓練A,比用模型B生產的數據訓練A更好。這跟RRHF的結論也比較一致,更接近「強化」的思想

RSO實驗結果
同時作者提出了另外一種RSO(Rejection Sampling Optimization)的采樣方法,實驗發現有2個點左右的提升。
Rejection Sampling + SFT
拒絕采樣是一種針對復雜問題的采樣策略[3],可以更高效地采樣到合適的樣本,進行復雜分布的估計。最近也有很多方法,利用RM進行拒絕采樣,直接用采樣出的數據對模型做SFT。
Llama 2: Open Foundation and Fine-Tuned Chat Models
LLama2就很好地使用了拒絕采樣,先問問地訓RM,再用RM篩選出當前模型最好的結果進行SFT。論文發出時他們一共把llama2-chat迭代了5輪,前4輪都是用的拒絕采樣,只有最后一輪用了PPO,可以看到相比ChatGPT的勝率一直在提升:

不過從RLHF v5(no PPO)和RLHF v5(with PPO)來看,RL還是能有很大的效果收益。
這種方法還有很多變體可以探索,比如港大在2023.04提出的RAFT[4],就是選取多個樣本進行后續精調。同時采樣策略也可以進行一些優化,比如上面提到的RSO。
用其他RL算法
ReMax
ReMax: A Simple, Effective, and Efficient Reinforcement Learning Method for Aligning Large Language Models
ReMax是港中文在2023.10提出的工作,核心是對RLHF中RL階段的PPO算法進行了簡化。
強化的難點是怎么把多步之后的最終目標轉化成模型loss,針對這個問題有不同解決方案,目前OpenAI所使用的RL策略叫PPO[5],是他們自己在2017年提出的一個經典RL算法(OpenAI早期真的做了很多強化的工作)。
但ReMax的作者認為,PPO并不適用于語言模型的場景:
可以快速拿到句子獎勵:傳統RL的長期獎勵獲取可能會比較昂貴,比如必須玩完一局游戲、拿起一個杯子,而RLHF在有了RM后可以快速拿到獎勵
確定性的環境:傳統RL中,環境也是變化的,同一個場景+動作可能拿到不同獎勵,而在語言模型中,給定上下文和當前結果,下一步的狀態也是確定的,RM打分也是確定的
上面兩點在傳統RL中會造成學習不穩定的問題,因此PPO使用了Actor-Critic網絡,即引入一個「助教」來給模型的每一步打分,而作者認為在語言模型上可以省去。

ReMax
因此,作者提出用強化中的REINFORCE算法來代替PPO,去掉了Critic模型,但作者在實驗中同樣發現了梯度方差較大優化不穩定的問題,于是增加了一項bias來降低方差,命名為ReMax算法。
由于資源受限,作者沒跑通7B的PPO實驗,只對比了1.3B的ReMax和PPO,效果顯示ReMax更好一些:

ReMax效果
除了效果提升之外,由于去掉了一個要訓練的模型,在顯存占用和訓練速度上都有提升。
Offline RL: Decision Transformer
上面我們說的PPO、REINFORCE都是Online RL,需要一個虛擬環境,通過互動拿到獎勵,再進行學習。相對的,Offline RL是指直接拿之前和環境互動的數據來學習。
Aligning Language Models with Offline Reinforcement Learning from Human Feedback
這篇是英偉達在2023.08提出的工作,探索了MLE、用reward做回歸、DT(Decision Transformer)三種離線強化算法,最終發現DT的效果更好。
Decision Transformer是一個2021 RL Transformer的開山之作,但NLPer一看就懂:

Decision Transformer
它的核心思想是把獎勵、狀態作為輸入,讓模型預測動作,從而建模三者之間的關系。比如模型訓練時見過1分的答案,也見過5分的,那預測時直接輸入
這樣訓下來效果居然還不錯,也超過了PPO:

DT效果
SteerLM: Attribute Conditioned SFT as an (User-Steerable) Alternative to RLHF
沒想到的是,英偉達不同團隊在2023.10月又推出了一篇SteerLM的工作,與DT的思想類似,但會把獎勵分為不同維度,比如質量、幫助性等等。

SteerLM
具體做法:
通過人工標注的各個維度打分,訓練一個打分模型
用打分模型對更多數據打分
精調一個SFT模型,可以做到輸入prompt、目標分數,輸出符合分數的結果
用第三步的模型生產更多答案,再打分,如此循環
最終的效果也是好于RLHF(PPO哭暈在廁所):

SteerLM效果
總結
以上就是我最近關注的RLHF平替方法,雖然可走的路很多,但很難有一個可靠且全面的效果對比,畢竟RLHF本身就難訓不穩定,幾百條數據下波動幾個點很正常,而且無論是自動測評還是人工測評都會帶有bias。
但對于資源有限的團隊來說,平替方案不失為一種選擇。
-
模塊
+關注
關注
7文章
2837瀏覽量
53291 -
數據
+關注
關注
8文章
7335瀏覽量
94771 -
模型
+關注
關注
1文章
3752瀏覽量
52111
原文標題:總結
文章出處:【微信號:zenRRan,微信公眾號:深度學習自然語言處理】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
拆解大語言模型RLHF中的PPO算法
請問怎么讓組件更穩定?
如何使無源蜂鳴器電路更穩定?
如何讓AGP顯卡工作得更穩定
直流變換電源哪家更穩定?看看這些品牌!
RLHF平替工作,探索如何更穩定地拿到效果
評論