ChatGPT筆記

簡介

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

可參考的官方鏈接

使用的數(shù)據(jù)集

  • 開源數(shù)據(jù)集 TruthfulQA 和 RealToxicity

什么是GPT

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


什么是ChatGPT

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

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

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

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

什么是RLHF

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

RLHF整體框架(參考InstructGPT)

根據(jù)OpenAI的思路,RLHF里分3步:


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

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

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

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

什么是 PPO

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

幾個做RLHF的項目

幾篇RLHF最熱門的必讀論文

參考

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容