ChatGPT筆記

簡介

  • 2022年11月,OpenAI推出了一款AI聊天機器人程序,其強大的問答能力瞬間引爆全網關注度。
  • 組成部分:GPT3.5 + 大型語言模型(LLM) + 強化學習微調訓練
  • 實現方法:目前沒有開源,也沒有對應論文,僅在試運行推廣收集數據。看實現方式可參考其前身 InstructGPT(GPT+RLHF:模型參數量1.3B遠小于GPT-3的 175B),ChatGPT在其基礎上可以減少有害和誤導性的回答。
  • 優勢:相比較其他聊天機器人,ChatGPT可以記住之前和用戶對話的內容,且輸入內容由審核API過濾避免有冒犯性的言論(如種族注意或性別歧視)
  • 局限:Reward圍繞人類監督而設計,可能導致過度優化,從而影響性能(古德哈特定律)。比如訓練中審核者都偏向于更長的答案。

可參考的官方鏈接

使用的數據集

  • 開源數據集 TruthfulQA 和 RealToxicity

什么是GPT

  • Generative Pre-trained Transformer (GPT) 是一個深度學習模型,用互聯網語料數據訓練,可以用于問答、文本摘要生成、機器翻譯、分類、代碼生成和對話 AI。
  • 歷史
    (1)2018 年6月,GPT-1 誕生(參數量117M,約1.1億),這一年也是 NLP(自然語言處理)的預訓練模型元年。性能方面,GPT-1 有著一定的泛化能力,能夠用于和監督任務無關的 NLP 任務中。其常用任務包括:推理(判斷兩個句子是包含、矛盾、中立關系)、問答(輸入文章和幾個答案,選擇一個答案)、語義相似度識別(兩個句子語義是否相關)、分類。GPT-1在未經調試的新任務上具有一些效果,但泛化能力遠遠低于微調過的,所以只能算個工具不能算對話式AI
    (2)2019年2月GPT-2如期而至,沒有對網絡做結構創新,僅僅是加大網絡參數(參數量1.5B,15億),大力出奇跡,除了閱讀理解之外,在摘要、聊天、續寫、編故事、假新聞等都非常強。
    (3)2020年5月,GPT-3出現了,作為一個無監督模型(現在經常被稱為自監督),幾乎可以完成NLP絕大部分任務,比如面向問題搜索、閱讀理解、語義推斷、機器翻譯、文章生成、自動問答,尤其在翻譯上能達到無法辨認機翻的程度。讓人看到了AGI的希望
    (4)據說,GPT-4 會在明年發布,它能夠通過圖靈測試,并且能夠先進到和人類沒有區別,除此之外,企業引進 GPT-4 的成本也將大規模下降。


什么是ChatGPT

  • 本質是一個對話模型,它可以回答日常問題、進行多輪閑聊,也可以承認錯誤回復、挑戰不正確的問題,甚至會拒絕不適當的請求。在上周公布博文和試用接口后,ChatGPT很快以令人驚嘆的對話能力“引爆”網絡。
  • 主要特點:
    (1)有強大的語言理解和生成系統
    (2)降低人類學習成本和時間成本,可以幫助人類快速改寫查錯,生成小說摘要,定位代碼bug
    (3)具有安全機制和去除偏見的能力:對于偷東西的行為表示責怪,對于模糊的提問圓滑的回答,對于未知的問題拒絕回答
  • 主要缺點
    (1)仍存在一些簡單的邏輯錯誤,比如把numbers這個字母數量算成8個。但比GPT3好很多,多輪對話下來還是能修正。
    (2)有時候會給出看似合理,但是并不正確甚至荒謬的答案,如果用戶本身對答案未知,容易被誤導
    (3)抵抗不安全prompt的能力比較差,還存在過分猜測用戶意圖的問題,而不是進一步的提問
    (4)容易回答廢話較多,固定句式,主要是因為構造訓練數據時候,用戶傾向于選擇更長的回復。
  • 和InstructGPT的區別:InstructGPT整體流程和ChatGPT流程基本相同,但是在數據收集、基座模型(GPT3 vs GPT 3.5)以及第三步初始化PPO模型時略有不同。
  • ChatGPT是站在InstructGPT以及以上理論的肩膀上完成的一項出色的工作,它們將LLM(large language model)/PTM(pretrain language model)與RL(reinforcement learning)出色結合證明這條方向可行。當然,這也是未來還將持續發展的NLP甚至通用智能體的方向。
  • ChatGPT應用:
    (1)ChatGPT對于文字模態的AIGC應用具有重要意義:包括但不限于內容創作、客服機器人、虛擬人、機器翻譯、游戲、社交、教育、家庭陪護等領域。比如機器翻譯以助手問答的形式出現,甚至只是翻譯個大概
    (2)ChatGPT作為文字形態的基礎模型,自然可以與其他多模態結合:比如Stable Diffusion模型,利用ChatGPT生成較佳的Prompt,對于AIGC內容和日趨火熱的藝術創作。
    (3)ChatGPT可以作為搜索引擎的有效補充,從效果上來說為時尚早。有答案的query對結果排序就好,沒有答案的query也沒人能保證ChatGPT是不是對的。
    (4)ChatGPT本身的升級:與WebGPT的結合對信息進行實時更新,并且對于事實真假進行判斷。現在的ChatGPT沒有實時更新和事實判斷能力,而這如果結合WebGPT的自動搜索能力,讓ChatGPT學會自己去海量知識庫中探索和學習,預測可能會是GPT-4的一項能力。
  • ChatGPT思考:
    (1)基于LLM和RLHF,是非常有趣的方向,RL大概率在即將發布分GPT-4中扮演關鍵角色
    (2)目前沒有任何信息能確定ChatGPT的規模大小,最早的GPT-3代號Davinci大小175B,InstructGPT的模型代號是Davinci-text-002/003屬于GPT3.5,GhatGPT可能是其中一個模型微調得到的,因此猜測應該也是千億模型。
    (3)ChatGPT不算突破式的創新,是近兩年業界發展的成果匯總,同一時期的工作還有Deepmind的Sparrow和Google的LaMDA,效果與ChatGPT應該不相上下。
    (4)每次聊天過程需要幾美分的成本(GPT3.5(Davinci)的成本推測:1k tokens≈700 words為0.02美元)

ChatGPT歷史

  • 2017年6月的OpenAI Deep Reinforcement Learning from Human Preferences工作就提出了RLHF(reinforcement learning from human feedback )的思想,核心思想是利用人類的反饋判斷最接近視頻行為目標的片段;通過訓練來找到最能解釋人類判斷的獎勵函數,然后使用RL來學習如何實現這個目標。

  • 2019年GPT2問世后,OpenAI 就嘗試了GPT2+PPO:
    (1)NeurIPS 2020的 Learning to Summarize with Human Feedback
    (2)三步走的核心思想:收集反饋數據 -> 訓練獎勵模型 -> PPO強化學習。
    (3)RLHF第一階段是針對多個候選摘要人工排序(這里就體現出OpenAI的鈔能力,按標注時間計費,標注過快的會被開除);第二階段是訓練排序模型(依舊使用GPT模型);第三階段是利用PPO算法學習Policy(在摘要任務上微調過的GPT)。
    (4)文中模型可以產生比10倍更大模型容量更好的摘要效果。但文中也同樣指出,模型的成功部分歸功于增大了獎勵模型的規模。但這需要很大量級的計算資源——訓練6.7B的強化學習模型需要320 GPU-days的成本。

  • 2020年初的OpenAI的Fine-Tuning GPT-2 from Human Preferences可看出,它同樣首先利用預訓練模型來訓練reward模型,進而使用PPO策略進行強化學習。整體步驟初見ChatGPT的雛形!

  • 2021年底OpenAI的提出 WebGPT,核心思想是使用GPT3模型強大的生成能力,學習人類使用搜索引擎的一系列行為,通過訓練獎勵模型來預測人類的偏好,使WebGPT可以自己搜索網頁來回答開放域的問題,而產生的答案盡可能滿足人類的喜好。

什么是RLHF

  • Reinforcement Learning from Human Feedback
  • RLHF是Hugging Face這家美國公司(最著名的是構建了Transformer庫)在一篇發布的博客中提出的概念,旨在于講述ChatGPT背后的技術原理。
  • 過去幾年里,基于prompt范式的AI生成模型取得了巨大成功,以語言模型LM為例,大多采用『自回歸生成』方式,通過循環解碼的方式基于上下文信息預測下一個詞,用交叉熵來計算每個詞的loss,但token-level的loss不能很好的刻畫整體輸出質量,人們往往用BLEU或者ROUGH等評價指標來刻畫模型輸出和人類偏好的相近程度。所以如果能直接用這些指標作為reward,引入RL訓練去微調LM,理論上比交叉熵的監督學習訓練方式更好。
  • RLHF訓練過程分為3個核心步驟:
    (1)預訓練語言模型(LM):這些語言模型往往見過大量的 [Prompt,Text] 對,輸入一個prompt(提示),模型往往能輸出還不錯的一段文本。可以在人工精心撰寫的語料上進行微調,但不是必要的,因為成本非常貴
    (2)收集數據并訓練獎勵模型:一個獎勵模型(RM)的目標是刻畫模型的輸出是否在人類看來表現不錯。即,輸入 [提示(prompt),模型生成的文本] ,輸出一個刻畫文本質量的標量數字。OpenAI的Prompt數據主要來自那些調用GPT API的用戶。獎勵模型可以基于預訓練語言模型熱啟,在 [x=[prompt,模型回答], y=人類滿意度] 構成的標注語料上去微調,也可以直接隨機初始化在語料上訓。標注人員的任務則是對初始語言模型生成的文本進行排序『pair-wise』,而不是直接打分,因為不同標注人員評價標準不一。有趣的是,獎勵模型的大小最好是跟生成模型的大小相近,這樣效果會比較好。
    (3)通過強化學習微調 LM:策略就是基于該語言模型,接收prompt作為輸入,然后輸出一系列文本(或文本的概率分布);而動作空間就是詞表所有token在所有輸出位置的排列組合(單個位置通常有50k左右的token候選);觀察空間則是可能的輸入token序列(即prompt),顯然也相當大,為詞表所有token在所有輸入位置的排列組合;獎勵函數(reward)基于RM模型,再疊加一個約束項。約束項基于前面提到的預先富集的數據,從里面采樣prompt輸入,同時丟給初始的語言模型和我們當前訓練中的語言模型(policy),得到倆模型的輸出文本y1,y2。然后用獎勵模型RM對y1、y2打分,判斷誰更優秀。顯然,打分的差值便可以作為訓練策略模型參數的信號,這個約束項信號一般通過KL散度來計算“獎勵/懲罰”的大小,loss=r(θ) - λ·r(KL),目的是為了不要讓模型通過『取巧』的方式小修小改騙RM的高額RL獎勵。
  • OpenAI的第一個RLHF模型是InstructGPT,用小規模參數版本的GPT3
  • DeepMind的第一個RLHF模型則使用了2800億個參數的Gopher模型
  • RLHF的局限性:仍然可能輸出有害或者事實上不準確的文本。人類標注成本非常高昂,RLHF最多達到標注人員的知識水平。PPO算法已經比較老了,但目前沒有其他更好RL算法來優化RLHF了。

RLHF整體框架(參考InstructGPT)

根據OpenAI的思路,RLHF里分3步:


InstructGPT
  • 1、花錢招人給問題(prompt)寫回答(demonstration),然后finetune一個GPT3。這一步大家都懂,就不用說了。這一步可以多訓幾個版本,第二步會用到。
  • 2、用多個模型(可以是初始模型、finetune模型和人工等等)給出問題的多個回答,然后人工給這些問答對按一些標準(可讀性、無害、正確性blabla)進行排序,訓練一個獎勵模型/偏好模型來打分(reward model)

    (1)不直接打分是因為主觀需要歸一化,從排序變成獎勵分數用到了Elo排名系統打分
    (2)RM模型一般直接用LM+回歸,可以從零訓練也可以用老LM做finetune,RM模型和LM模型需要大小差不多,因為它倆的輸入都是所有文本,需要差不多的理解能力
    (3)除了用Elo打分,也可以對偏序樣本直接用pairwise Learning to Rank來打分。

  • 3、用強化學習訓練上面那個finetune后的GPT3模型。用強化學習做LM訓練的一種思路是用Policy Gradient做,這一塊OpenAI用的是他們在17年提出的PPO算法,即Proximal Policy Optimization。

    (1)policy是給GPT輸入文本后輸出結果的過程;
    (2)action space是全詞表(~50k);
    (3)observation space是輸入文本序列的空間(全詞表大小 x 序列長度);
    (4)reward function則是一個基于RM輸出的一個函數。具體而言,把問題分別輸入第一步finetune的模型和正在訓練的模型得到輸出y_1,y_2,把y_2輸入RM得到評分r_\theta,然后這里我們期望y_1, y_2別差太多,所以加一個KL散度的懲罰項r_{KL},即r = r_\theta - \lambda r_{KL}
  • GPT3只是個語言模型,它被用來預測下一個單詞,絲毫沒有考慮用戶想要的答案;當使用代表用戶喜好的三類人工標注為微調數據后,1.3B參數的InstructGPT在多場景下的效果超越175B的GPT3:
  • InstuctGPT的工作也很有開創性:它在“解鎖”(unlock)和挖掘GPT3學到的海量數據中的知識和能力,但這些僅通過快速的In-context的方式較難獲得。InstuctGPT找到了一種面向主觀任務來挖掘GPT3強大語言能力的方式。
  • OpenAI博文中有這樣一段原話:當我們要解決的安全和對齊問題是復雜和主觀,它的好壞無法完全被自動指標衡量的時候,此時需要用人類的偏好來作為獎勵信號來微調我們的模型。

什么是 PPO

PPO(Proximal Policy Optimization) 一種新型的Policy Gradient算法(Policy Gradient是一種強化學習算法,通過優化智能體的行為策略來解決在環境中實現目標的問題)。我們只需了解普通的Policy Gradient算法對步長十分敏感,但是又難以選擇合適的步長。在訓練過程中新舊策略的的變化差異如果過大則不利于學習。
而PPO提出了新的目標函數可以在多個訓練步驟實現小批量的更新,解決了Policy Gradient算法中步長難以確定的問題。由于其實現簡單、性能穩定、能同時處理離散/連續動作空間問題、利于大規模訓練等優勢,近年來受到廣泛關注,成為OpenAI默認強化學習算法。

幾個做RLHF的項目

幾篇RLHF最熱門的必讀論文

參考

抱抱臉:ChatGPT背后的算法——RLHF | 附12篇RLHF必刷論文 https://zhuanlan.zhihu.com/p/592671478
從零實現ChatGPT——RLHF技術筆記 https://zhuanlan.zhihu.com/p/591474085
算法工程師深度解構ChatGPT技術 https://juejin.cn/post/7176077467092779068

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

推薦閱讀更多精彩內容