2024-05-07|閱讀時間 ‧ 約 23 分鐘

Chat GPT - 用RLHF做Fine Tuning

回顧ChatGPT回答不是你要的怎麼辦?這篇文章,Chat GPT回答的結果常常不如人意,因此有個Facebook提出的技術,叫做RAG,它是提升Chat GPT回答品質的方式之一,詳細實作步驟可以參照自己做免錢Chat GPT吧

這次我們來換個方法,今天要介紹Reinforcement Learning from Human Feedback (RLHF)

  • 背景

大型語言模型 (LLM)訓練過程中,受到網路提供的資料品質而有影響,此外LLM訓練過程中用到的監控指標BLEU、ROUGE也無法闡述人類對於語言的偏好,這些種種都又發了一種想法:「直接利用人類的喜好、價值觀等等因素來對一段話評分」,這樣的評分資料將有助於LLM的學習。


  • 圖示

圖片出處:https://openai.com/index/chatgpt


  • 步驟說明

步驟一:訓練Supervised Policy

  • 網路上蒐集各種對話紀錄,因此這裡有非常多的Input Pair與Output Pair
  • 標註者挑選期望的Output Pair,因此有Input Pair與期望的Output Pair
  • 有Input Pair與其對應的期望Output Pair,即可用監督式學習進行訓練

步驟二:訓練Reward Model

  • Input Pair匯入其它語言模型,產生諸多Output Pair
  • 標註者對每一個Input Pair所對應的諸多Output Pair進行評分
  • Input Pair & Output Pair當作輸入而評分作為輸出,即可訓練Reward Model


步驟三:透過Reward Model精進Supervised Policy

  • 網路上蒐集各種對話紀錄,因此這裡有非常多的Input Pair與Output Pair
  • 以步驟一的結果 - Supervised Policy當作步驟三的起始,並以Input Pair當作輸入 (計為I),匯入Supervised Policy得到輸出語言 (計為O)
  • 輸出語言(計為O)連同I一起匯入Reward Model得到語言的評分 (計為R)
  • 至次我們已經收集Reinforcement Learning的關鍵要素,分別為I、O、R,因此就能以PPO演算法進行Supervised Policy的品質提升



對於Reinforcement Learning中的Objection Function有必要於這裡特別說明,首先參照圖示:

注意事項:

  1. 我現在專注要調整的模型為Tuned Language Model,而原先的模型為Initial Language Model,但我又希望兩者之間不要差異太多,於是我用KL Divergence來做約束,而且將PPO Policy置於前位,而Base Policy置於後位,亦即將PPO Policy當作目前真實的機率分佈,而Base Policy作為近似的機率分佈,這部分需要了解Information Theory才可以
  2. 上圖是以Gradient Ascent為例子,所以一部分的元素是Reward,另一部分是象徵距離的KL Divergence,那因為我希望距離最小化,所以可以看到在KL Divergence那邊會多加一個負號



分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.