ChatGPT 介紹

ChatGPT

核心思想

  • 雖然我們難以用規則刻畫怎樣的回答才算“沒有偏見、基于客觀事實、對用戶有幫助”,但我們人類能夠寫出這樣的回答,也能夠判斷兩條回答中哪一條更優。
  • 因此我們可以人工標注一批數據,訓練一個打分模型(Reward Model)對我們的目標進行建模。打分模型可以對不同的回復進行打分:分值越高的回復,其質量越高,越滿足我們的標準。
  • 默認語言模型生成的回復,有的分高,有的分低。我們可以設法微調優化該模型(Reinforce Learning),使其生成的回復在打分模型里得分盡可能高。
    上面的思想可以轉化成如下具體步驟:
步驟 訓練語料 訓練目標 輸入模型 輸出模型
Step0 互聯網語料 語言模型 - GPT3
Step1 問題及人工撰寫的標準回答 語言模型 GPT3 微調后的GPT3
Step2 人工對模型生成回復的排序 排序 微調后的GPT3 打分模型
Step3 模型自動生成 提升打分模型打分 微調后的GPT3 ChatGPT

訓練數據

SFT數據集

SFT數據集是用來訓練第1步有監督的模型,即使用采集的新數據,按照GPT-3的訓練方式對GPT-3進行微調。因為GPT-3是一個基于提示學習的生成模型,因此SFT數據集也是由提示-答復對組成的樣本。SFT數據一部分來自使用OpenAI的PlayGround的用戶,另一部分來自OpenAI雇傭的40名標注工(labeler)。并且他們對labeler進行了培訓。在這個數據集中,標注工的工作是根據內容自己編寫指示,并且要求編寫的指示滿足下面三點:

  • 簡單任務:labeler給出任意一個簡單的任務,同時要確保任務的多樣性;
  • Few-shot任務:labeler給出一個指示,以及該指示的多個查詢-相應對;
  • 用戶相關的:從接口中獲取用例,然后讓labeler根據這些用例編寫指示。

示例:

RM數據集

RM數據集用來訓練第2步的獎勵模型,我們也需要為InstructGPT/ChatGPT的訓練設置一個獎勵目標。這個獎勵目標不必可導,但是一定要盡可能全面且真實的對齊我們需要模型生成的內容。很自然的,我們可以通過人工標注的方式來提供這個獎勵,通過人工對可以給那些涉及偏見的生成內容更低的分從而鼓勵模型不去生成這些人類不喜歡的內容。InstructGPT/ChatGPT的做法是先讓模型生成一批候選文本,讓后通過labeler根據生成數據的質量對這些生成內容進行排序。

PPO數據集

InstructGPT的PPO數據沒有進行標注,它均來自GPT-3的API的用戶。不同用戶提供的不同種類的生成任務,其中占比最高的包括生成任務(45.6%),QA(12.4%),頭腦風暴(11.2%),對話(8.4%)等。

訓練任務

有監督微調(SFT)

這一步的訓練和GPT-3一致,而且作者發現讓模型適當過擬合有助于后面兩步的訓練。

獎勵模型(RM)

因為訓練RM的數據是一個labeler根據生成結果排序的形式,所以它可以看做一個回歸模型。RM結構是將SFT訓練后的模型的最后的嵌入層去掉后的模型。它的輸入是prompt和Reponse,輸出是獎勵值(標量)。

具體的講,對于每個prompt,InstructGPT/ChatGPT會隨機生成 K個輸出( 4≤K≤9 ),然后它們向每個labeler成對的展示輸出結果,也就是每個prompt共展示C_k^2個結果,然后用戶從中選擇效果更好的輸出。在訓練時,InstructGPT/ChatGPT將每個prompt的C_k^2個響應對作為一個batch,這種按prompt為batch的訓練方式要比傳統的按樣本為batch的方式更不容易過擬合,因為這種方式每個prompt會且僅會輸入到模型中一次。

獎勵模型的損失函數如下表示:
loss = -\frac{1}{C_{K}^{2}}E_{(x, y_w, y_l)\sim D}\left [ log(\sigma(r_\theta (w, y_w)-r_\theta (w, y_l))) \right ]

損失函數的目標是最大化labeler更喜歡的響應和不喜歡的響應之間的差值。其中r_\theta(x, y)是提示x和響應y在參數為\theta的獎勵模型下的獎勵值,y_w是labeler更喜歡的響應結果,y_l是labeler不喜歡的響應結果。D是整個訓練數據集。

強化學習模型(PPO)

訓練目的:以SFT為初始策略,基于RM對策略打分,使用強化學習優化策略,得到強化版本的模型PPO。

InstructGPT/ChatGPT通過結合人工標注,將強化學習引入到預訓練語言模型是這個算法最大的創新點。
PPO的訓練集完全來自API。它通過第2步得到的獎勵模型來指導SFT模型的繼續訓練。很多時候強化學習是非常難訓練的,InstructGPT/ChatGPT在訓練過程中就遇到了兩個問題:

  • 問題1:隨著模型的更新,強化學習模型產生的數據和訓練獎勵模型的數據的差異會越來越大。作者的解決方案是在損失函數中加入KL懲罰項(如下所示),來確保PPO模型的輸出和SFT的輸出差距不會很大。
    \beta log\left ( \pi _\phi ^{RL}(y|x)/\pi^{SFT}(y|x) \right )

  • 問題2:只用PPO模型進行訓練的話,會導致模型在通用NLP任務上性能的大幅下降,作者的解決方案是在訓練目標中加入了通用的語言模型目標(如下所示),這個變量在論文中被叫做PPO-ptx。
    \gamma E_{x\sim D_{pretrain}}\left [log( \pi _\phi ^{RL}(x)) \right ]

綜上,PPO的訓練目標如下所示。
objective(\phi )=E_{(x,y)\sim D_{\pi_\phi }^{RL}}\left [ r_\theta (x, y) - \beta log\left ( \pi _\phi ^{RL}(y|x)/\pi^{SFT}(y|x) \right )\right] + \gamma E_{x\sim D_{pretrain}}\left [log( \pi _\phi ^{RL}(x)) \right ]

其中:

  • r(x, y)即為獎勵模型對(x, y)的打分。獎勵模型在本階段的訓練中參數凍結。
  • \pi_{\phi}^{\textrm{RL}}稱為策略模型,包含可訓練的模型參數\phi,從微調后的GPT3中初始化得到。
  • \pi^{\textrm{SFT}}為微調后的GPT3模型,它在本階段的訓練中參數凍結。
  • \mathrm{KL}\Big(\pi^{RL}_{\phi}, \pi^{SFT}\Big)為兩個模型在相同輸入的情況下生成的句子結果的分布的差異,以KL散度為度量

參考文獻

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,818評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,185評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 175,656評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,647評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,446評論 6 405
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,951評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,041評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,189評論 0 287
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,718評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,602評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,800評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,316評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,045評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,419評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,671評論 1 281
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,420評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,755評論 2 371

推薦閱讀更多精彩內容