回顧ChatGPT回答不是你要的怎麼辦?這篇文章,Chat GPT回答的結果常常不如人意,因此有個Facebook提出的技術,叫做RAG,它是提升Chat GPT回答品質的方式之一,詳細實作步驟可以參照自己做免錢Chat GPT吧。
這次我們來換個方法,今天要介紹Reinforcement Learning from Human Feedback (RLHF)
- 背景
- 圖示

圖片出處: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有必要於這裡特別說明,首先參照圖示:

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





















