> 要聞 >

利用人類反饋管住AI的嘴

時間:2023-07-09 15:02:27       來源:AI自智體

Original ODD 泛函的范

本篇將介紹ChatGPT的訓練流程,及其背后的關鍵技術之一:RLHF(Reinforcement Learning from Human Feedback)。

傳統 RL 通過 Agent 與環境的交互來實現某個任務上的策略最優化,往往需要從數百萬次的試錯中尋求最優策略,既耗時又耗費資源。為了解決這個問題,研究人員探索如何利用人類知識和反饋來加速RL過程。


【資料圖】

RLHF 核心思想是結合強化學習和人類反饋,使智能體能夠在更短的時間內學到最優策略。通過利用人類知識和經驗,智能體可以避免掉進陷阱,縮小搜索空間,從而更快地找到最優策略。同時,人類反饋也可以幫助智能體更好地理解任務的目標和約束條件。

此外,隨著 ChatGPT 的大火,在各行各業掀起了 AI 熱潮,使人工智能技術應用進入了一個新階段。各大網友將ChatGPT應用到自己的生活、工作中,如利用ChatGPT幫忙問診、做數據分析、寫周報、寫代碼,甚至還有寫論文的。

從實際體驗中可以感受到,ChatGPT 可以對各種問題給出比較流暢且質量較高的回答。其背后核心技術就是LLM+RLHF:利用RLHF技術,以RL方式結合人類反饋來優化LLM,使LLM的結果更契合人類認知。

作為ML從業者,除了體驗ChatGPT給我們工作、生活帶來的便利和樂趣外,更要了解其背后的技術原理,本文就帶大家一起了解下ChatGPT背后的技術細節。

在具體介紹RLHF之前,先來看下LLM的總體訓練流程:

可以將整個訓練流程分為3個階段:

在未標注的大量文本數據上,采用SSL(Self-Supervised Learning)方式(如預測下一個詞)來訓練LLM,得到預訓練好的LLM。

關于SSL的更多內容可以參考之前的文章《A Cookbook of Self-Supervised Learning》,這里就不贅述了。

有了預訓練好的LLM之后,我們在高質量的有標注數據上采用Supervised Learning方式對LLM進行微調,即Supervised Fine-Tuning(STF)。 SFT 的目標是優化預訓練LLM,使其能生成用戶真正想要的結果。

這一點是如何做到的呢?其實,訓練過程就是使模型擬合訓練數據過程。在SFT中,將訓練數據整理成 (promot, response) 格式,向LLM展示如何適當地回應不同Prompts,使模型能擬合在不同Prompts(例如:問答、摘要、翻譯)下的Response。STF流程如下圖所示:

訓練數據是如何標注的呢?在給定一個Prompt之后,由專業的標注人員(通常稱為Labeler)來給出相應的Response。這些Labeler通常都是具有一定專業知識的人員,能給出高質量的Response。但反過來,這個標注成本非常昂貴,所以一般只有10K量級的標注量。

OpenAI訓練InstructGPT時請了40位Labeler標注了13k的 (prompt, response) 樣本對。如下圖展示了 (prompt, response) 樣本對示例:

有了 (prompt, response) 樣本對之后,就可以利用它們來fine-tune預訓練好得LLM模型。

從流程圖可以看到,RLHF(即圖中虛線框部分)包含三大部分:

預訓練好的LLM 收集數據,訓練獎勵模型 (Reward Model,RM) 用RL來微調 LLM

關于預訓練LLM的內容在前文已經介紹了,下面主要介紹后面兩部分是如何實現的。

通過收集了大量人類對模型在不同Prompts的Response的偏好數據(如喜歡、打分等)之后,我們可以利用這些數據來訓練一個RM來擬合人類偏好。從而實現在給定Prompt下,對模型所給出的Response進行打分,來預估人類對這個Response的滿意程度。人類反饋數據收集流程如下所示:

使用輸入文本數據(最好是生產環境的用戶真實數據),由模型生成對應的Response,然后由人類對其進行評估,并給出Reward分(通常是0~5分,也可以是喜歡/不喜歡等)。

有了人類反饋數據后,我們就可以基于這些數據來訓練RM。如下圖所示:

根據人工對LLM的Response的打分,構造用于訓練RM的數據 (sample,reward) 樣本對,其中 sample=(prompt, response) 。RM輸出的Reward在數值上就代表了人類對改Response的偏好。

引入RM的主要目標是借助RM來模仿人類的獎勵標注,從而能在沒有人類參與的情況下進行RLHF的離線訓練。

需要說明的是:RM可以是一個經過微調的LLM,也可以是僅用人類偏好數據從頭訓練的LLM。

經過前文的操作,我們已經有了一個經過SFT之后的LLM,和能夠評估模型輸出好壞(迎合人類偏好)的RM。接下來就是如何使用RL來基于RM優化LLM。其思路是采用RM的輸出值作為一個Reward,基于RL的思路進行優化,對問題建模如下:

Agent :一個以Prompt為輸入,并輸出文本 (或文本的概率分布) 的LLM; Action Space :詞表對應的所有Token; Observation Space :輸入詞元序列(); Reward Function :RM和策略轉變約束 (Policy Shift Constraint) 的結合。 Policy Shift Constraint 是一種用于強化學習中的優化技術,旨在減少在訓練過程中策略發生顯著變化的可能性。在強化學習中,智能體通過不斷地與環境交互來學習最優策略。在訓練過程中,策略的變化可能會導致學習不穩定,甚至失效。因此,策略轉移約束的目的是限制策略的變化幅度,從而提高強化學習算法的穩定性。

如下圖所示:

在開始前,復制一份模型并將其權重固定,得到Fronze LM。Fronze LM有助于防止在訓練過程中將LM的權重改變過大,避免輸出無意義的文本。

在訓練過程中,除了RM給出的reward外,還引入了Frozen LM和Trained LM生成文本的差異懲罰項(即Policy shift constraint),來懲罰 RL 策略在每個訓練批次中生成大幅偏離初始模型,以確保模型輸出合理連貫的文本。如果去掉這一懲罰項可能導致模型在優化中為了得到更高獎勵而生成亂碼文本來愚弄RM。

在OpenAI、Anthropic和DeepMind的多篇論文中,都采用了Fronze LM和Trained LM出詞分布序列之間的 KL散度來作為Policy shift constraint。因此,RL的整體reward為:

其中,和分別表示RM的輸出和Fronze LM和Trained LM出詞分布序列之間的 KL散度。

最后,使用PPO算法,在RM的輔助下對LM的部分參數迭代更新。如下圖所示:

其中:

近端策略優化(Proximal Policy Optimization,PPO) 是一種常見的強化學習算法,用于優化策略函數以最大化累積獎勵。在PPO中,策略函數通常表示為神經網絡,它將狀態作為輸入并輸出動作的概率分布。PPO的主要優點之一是其穩定性,在強化學習中很受歡迎。它使用兩個策略函數來進行訓練,一個當前策略和一個舊策略,并使用一個剪切參數來確保新策略不會太遠離舊策略。這種剪切機制有助于防止策略跳躍,并使PPO在處理連續動作空間時表現出色。通常使用Adam優化器來更新神經網絡參數。

至此,我們已經了解了ChatGPT訓練的整體過程,以及RLHF在其所扮演的角色。下圖是在訓練過程中不同策略所帶來的效果提升:

從圖中可以看出:

采用SFT能有效提升預訓練模型效果; 采用預訓練+SFT+RLHF的InstructGPT效果要明顯優于其他策略。

下面是幾個比較常用的RLHF Repo,感興趣的可以去動手嘗試下:

本文介紹了ChatGPT的總體訓練流程,并展開介紹了RLHF的訓練過程。RLHF不只適用于LLM的訓練,它還對如下兩種場景有奇效:

無法構建好的loss function 。如,如何設計一個metrics來衡量模型的輸出是否有趣味性? 想要用生產數據進行訓練,但又很難為生產數據打標簽 。如,如何從ChatGPT中獲取帶標簽的生產數據?必須有人編寫正確答案,告訴ChatGPT應該如何回答。

在面對上面兩種場景時,我們可以嘗試使用RLHF,沒準會有意想不到的效果。

泛函的范 日常搬磚,周末更新。關鍵詞:推薦系統、機器學習、經驗總結、面試技巧69篇原創內容

公眾號

[1] Nathan Lambert, Louis Castricato, Leandro von Werra, Alex Havrilla. Illustrating Reinforcement Learning from Human Feedback (RLHF) Hugging Face. 2022.

[2] Joao Lages. Reinforcement Learning from Human Feedback (RLHF) - a simplified explanation. NebulyAI. 2023.

[3] Chip Huyen. RLHF: Reinforcement Learning from Human Feedback. 2023.

[4] Ben Dickson. What is reinforcement learning from human feedback (RLHF)?. TechTalks. 2023.

[5] Ayush Thakur. Understanding Reinforcement Learning from Human Feedback. Weights & Biases. 2023.

[6] Trlx: /CarperAI/

[7] DeepspeedChat: /microsoft/

[8] ColossalAI-Chat: /hpcaitech/

[9] PaLM-rlhf-pytorch: /lucidrains/

標簽:

首頁
頻道
底部
頂部