RLHF總結

RAFT:Reward rAnked FineTuning for Generative Foundation Model Alignment

給一批Prompt,先讓大模型生成對每一個prompt生成一個answer,然後讓RM去給這些prompt-answer對進行打分,把得分高的選出來用於Fine-tune大模型,得分不高的prompt-answer對直接捨棄。

RRHF:Rank Responses to Align Language Models with Human Feedback without tears

對某一個prompt,通過不同的方式(ChatGPT、人類專家等)生成很多個answer,讓RM去打分,然後選出好的去Fine-tune大模型,此外,讓大模型也算一下這些answers的似然概率當做評分,讓這個評分和RM的打分儘可能對齊(通過Rank loss的監督學習目標)。

總結:1. 這兩個工作(github的star都不少)都是隻用了RM去給個評分,然後用監督學習的方法更新,沒有用到RL,所以不能算是嚴格的RLHF; 2. 這種Data-centric的思路,即用模型本身 (或者更大的模型)生成的數據(可以看成是數據增強)來微調自己,是general的(Segment anything也是這個思路)。

 

RL相比於SFT,訓練LLM的優勢?

  1. Token-wise有考慮累計回報獎勵的潛力;
  2. RLHF是使用模型生成的樣本訓練而非SFT中最大似然數據集中的樣本,一方面,訓練reward model對樣本質量要求沒那麼高(不太好的樣本給低評分就好),可以通過一些次優的樣本生成更優的策略;另一方面,相比於直接用樣本進行最大似然,讓模型自己去生成可以允許更多樣化的輸出(RRHF和RAFT也有這個優勢)。
  3. RLHF可以允許負反饋,而包括RRHF、RAFT的SFT只用了生成出的得分高的樣本訓練。這樣導致的結果是:SFT會讓模型過於自信的泛化,而RL能引導模型回答“我不知道”。
  4. RL優化Agent行爲以達到其他特定目標(通過修改獎勵函數),比監督學習更靈活。

 

當我們用RL去擬合一個沒那麼準的RM的時候,就會發生過度優化的情況。OpenAI實驗的方法,是用InstructGPT那份真實的數據去訓練一個Gold RM,再用Gold RM生成數據去訓練一個Proxy RM(下圖Synthetic部分):

 

從結果可以看到,雖然Proxy RM的分數會一直上升(虛線),但真實效果,也就是Gold RM會飽和甚至下降(實線)

 

所以由於RM的效果限制,現階段的RLHF還不太完美,只是Human Feedback的一個降級方案。

 

將兩個模型的生成文本進行比較計算差異的懲罰項,通常設計爲輸出詞分佈序列之間的 Kullback–Leibler (KL) 散度的縮放;這一項被用於懲罰 RL 策略在每個訓練批次中生成大幅偏離初始模型,以確保模型輸出合理連貫的文本。如果去掉這一懲罰項可能導致模型在優化中生成亂碼文本來愚弄獎勵模型提供高獎勵值。

下面看一下 reward model。 左圖比較了在不同的 KL penalty 權重下模型的表現。我們看到當 KL penalty 小即在圖的左端,模型的實際表現很糟。這也說明了KL項的必要性。隨着懲罰項增大,RM預測的效果開始提升,但當懲罰項過大時,RM 預測不再提升,即與SFT保持一致。右圖說明了對於reward model,模型越大,數據越多效果越好。

 

 

指令微調也就是對齊階段的數據質量>>數量,少量+多樣+高質量的對齊數據,就能讓你快速擁有效果槓槓的模型。注意以上三者是充分必要關係,不是說數據越少越好,是三者的有機統一。構建質量更高,覆蓋範圍更廣的數據,是否比隨機造大量的指令數據效果要更好。畢竟你抖音刷1000條雜七雜八的中醫養生小知識,可能比不上精讀黃帝內經+神農本草不是。模型的知識和能力幾乎全部是預訓練階段注入的。而指令微調階段的對齊只是學習和人類交互的回答形式。因此一個輸入多樣輸出形式一致的高質量指令數據集能幫模型快速學到回答形式;論文反覆強調一致的回答風格可以加速模型收斂

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章