ChatGPT是如何從GPT—3逐漸演變而來的。
OpenAI最近發(fā)布的ChatGPT為人工智能領(lǐng)域注入了一針強心劑,其強大的能力遠遠超出了自然語言處理研究者的預(yù)期。
體驗過ChatGPT的用戶自然會問:最初的GPT 3是怎么進化成ChatGPT的GPT 3.5驚人的語言能力從何而來
一是2020年版第一代GPT—3和大規(guī)模前期訓(xùn)練
第一代GPT—3展示了三種重要能力:
語言生成:按照提示詞,然后生成完成提示詞的句子這也是當(dāng)今人類與語言模型最常見的交互方式
知識:包括事實知識和常識。
那么這些能力從何而來。
基本上,以上三種能力都來自于大規(guī)模的預(yù)訓(xùn)練:在3000億字的語料庫上預(yù)訓(xùn)練一個有1750億個參數(shù)的模型。其中包括:
關(guān)于世界的知識來自3000億字的訓(xùn)練語料庫。
模型的1750億個參數(shù)是用來存儲知識的,梁等人進一步證明了這一點,他們的結(jié)論是知識密集型任務(wù)的績效與模型規(guī)模密切相關(guān)。
令人好奇的是最初的GPT—3有多強。
實際上,很難確定最初的GPT—3是強還是弱。
一方面,它合理地響應(yīng)了一些特定的查詢,并在多個數(shù)據(jù)集上取得了良好的性能,
另一方面,它在很多任務(wù)上的表現(xiàn)不如T5這樣的小機型。
在今天ChatGPT的標(biāo)準(zhǔn)下,很難說最初的GPT—3是智能的Meta的開源OPT模型試圖重現(xiàn)最初的GPT—3,但它的能力與今天的標(biāo)準(zhǔn)形成鮮明對比很多測試過OPT的人也認為,相比現(xiàn)在的文—達芬奇—002,這款機型真的不怎么樣
可是,對于第一代GPT—3,OPT可能是一個足夠好的開源近似模型。
雖然第一代GPT—3在表面上看起來很弱,但后來的實驗證明,第一代GPT—3具有非常強大的潛力這些潛能后來通過代碼訓(xùn)練,指令微調(diào)和帶有人類反饋的強化學(xué)習(xí)被解鎖,最終的身體表現(xiàn)出極強的突現(xiàn)能力
二。從2020年GPT—3到2022年ChatGPT
從最初的GPT—3開始,為了展示OpenAI是如何發(fā)展成ChatGPT的,我們來看看GPT—3.5的進化樹:
2020年7月,OpenAI發(fā)布了達芬奇第一篇帶模型索引的GPT—3論文,此后一直在進化。
2021年7月,Codex的論文發(fā)表,其中根據(jù)具有120億個參數(shù)的GPT—3變體對初始的Codex進行了微調(diào)后來,這個擁有120億個參數(shù)的模型在OpenAI API中演化成了code—cushman—001
2022年3月,OpenAI發(fā)表了一篇關(guān)于指令調(diào)優(yōu)的論文,其監(jiān)督指令調(diào)優(yōu)部分對應(yīng)的是davinci—instruct—beta和text—davinci—001。
2022年4月至7月,OpenAI開始對code—davinci—002模型進行Beta測試,也被稱為Codex然后,code—davinci—002,text—davinci—003和ChatGPT都是從code—davinci—002微調(diào)而來詳情請參考OpenAI的模型索引文檔
雖然Codex聽起來像一個只關(guān)心代碼的模型,但code—davinci—002可能是自然語言最強大的GPT 3.5變體Code—davinci—002很可能是通過文字和代碼兩種方式進行訓(xùn)練,然后根據(jù)指令進行調(diào)整
那么2022年5—6月發(fā)布的text—davinci—002就是基于代碼—davinci—002的監(jiān)督指令微調(diào)模型對text—davinci—002上的指令進行微調(diào),很可能會降低模型的上下文學(xué)習(xí)能力,但會增強模型的零樣本能力
然后是text—davinci—003和ChatGPT,都是2022年11月發(fā)布的它們是基于人類反饋的強化學(xué)習(xí)的版本指令微調(diào)模型的兩個不同變體
Text—davinci—003恢復(fù)了text—davinci—002中丟失的部分上下文學(xué)習(xí)能力,并進一步提高了零樣本能力另一方面,ChatGPT似乎犧牲了幾乎所有的語境學(xué)習(xí)能力,來換取對話歷史的建模能力
總的來說,在code—davinci—002之前的2020—2021年期間,OpenAI已經(jīng)投入了大量的精力,通過代碼訓(xùn)練和指令微調(diào)來增強GPT—3當(dāng)他們完成代碼—達芬奇—002,所有的能力已經(jīng)存在
指令微調(diào)不會向模型中注入新的功能——所有功能都已經(jīng)存在微調(diào)的作用就是解鎖/激活這些能力這主要是因為指令微調(diào)的數(shù)據(jù)比預(yù)訓(xùn)練的數(shù)據(jù)少了幾個數(shù)量級
微調(diào)指令將GPT—3.5分成不同的技能樹有的比較擅長語境學(xué)習(xí),比如text—davinci—003,有的比較擅長對話,比如ChatGPT
許多論文報道code—davinci—002在基準(zhǔn)測試中取得了最好的性能在對code—davinci—002上的指令進行微調(diào)后,模型可以生成更符合人類預(yù)期的反饋,比如:零樣本問答,生成安全公平的對話回復(fù),拒絕超出模型知識范圍的問題
3.代碼—Davinci—002和文本—Davinci—002,代碼培訓(xùn)和指令微調(diào)。
在code—davinci—002和text—davinci—002之前,有兩個中間模型,即davinci—instruct—beta和text—davinci—001兩者在很多方面都比上面兩種—002型差
所以這一節(jié)我們重點講—002模型。
我們關(guān)注碼—達芬奇—002,文—達芬奇—002這兩兄弟是GPT3.5模型的第一個版本,一個是代碼,一個是文本
響應(yīng)人類指令:過去,GPT—3的輸出主要集中在訓(xùn)練集中的常見句子當(dāng)前模型將為指令/提示生成更合理的答案
對未知任務(wù)的泛化:當(dāng)用于調(diào)整模型的指令數(shù)量超過一定規(guī)模時,模型可以在從未見過的新指令上自動生成有效答案這種能力對于在線部署至關(guān)重要,因為用戶總是提出新的問題,而模型必須回答它們
代碼生成和代碼理解:這種能力是顯而易見的,因為模型已經(jīng)用代碼訓(xùn)練過了。
用思維鏈進行復(fù)雜推理:第一代GPT3的模型思維鏈推理能力較弱甚至缺失Code—davinci—002和text—davinci—002是兩個思維鏈推理能力足夠強的模型
思維鏈推理之所以重要,是因為思維鏈可能是解鎖突現(xiàn)能力,超越標(biāo)度律的關(guān)鍵。
這些能力從何而來。
與之前的模型相比,兩個主要區(qū)別是指令微調(diào)和代碼訓(xùn)練。具體來說:
響應(yīng)人類指令的能力是指令微調(diào)的直接產(chǎn)物。
對未知指令進行反饋的泛化能力是在指令數(shù)量超過一定水平后自動出現(xiàn)的,T0,F(xiàn)lan和FlanPaLM論文進一步證明了這一點。
利用思維鏈進行復(fù)雜推理的能力,大概是代碼訓(xùn)練的一個神奇副產(chǎn)品。在這方面,我們有以下事實作為一些支持:
最初的GPT—3沒有接受代碼訓(xùn)練,所以它不能進行思維鏈。
Text—davinci—001模型雖然通過指令進行了微調(diào),但在思維鏈論文第一版中報道,其其他思維鏈推理的能力很弱——所以微調(diào)指令可能不是思維鏈存在的原因,但代碼訓(xùn)練是模型能做思維鏈推理最可能的原因。
PaLM有5%的代碼訓(xùn)練數(shù)據(jù),可以作為思維鏈。
碼紙中的碼數(shù)據(jù)量為159G,約為原GPT—3 5700億訓(xùn)練數(shù)據(jù)的28%代碼—davinci—002及其后續(xù)變體可用于思維鏈推理
在舵試驗中,梁等人對不同的模型進行了大范圍的評估他們發(fā)現(xiàn)用于代碼訓(xùn)練的模型具有很強的語言推理能力,包括擁有120億個參數(shù)的code—cushman—001
我們在AI2的工作還表明,code—davinci—002是目前在配備復(fù)雜思維鏈的重要數(shù)學(xué)基準(zhǔn)上表現(xiàn)最好的模型。
直觀來說,面向過程編程非常類似于一步一步解決任務(wù)的過程,面向?qū)ο缶幊谭浅n愃朴趯?fù)雜任務(wù)分解成許多簡單任務(wù)的過程。
以上觀察都是代碼與推理能力/思維鏈的相關(guān)性,但不一定是因果關(guān)系這種相關(guān)性很有趣,但仍是一個有待研究的開放性問題目前我們還沒有非常確鑿的證據(jù)證明代碼是思維鏈和復(fù)雜推理的起因
此外,代碼訓(xùn)練的另一個可能的副產(chǎn)品是遠距離依賴,正如劉泳指出的那樣:一種語言中下一個單詞的預(yù)測通常是非常局部的,代碼通常需要更長的依賴來做一些事情,比如匹配括號或者引用遠處的函數(shù)定義。
我想在這里進一步補充:由于面向?qū)ο缶幊讨械念惱^承,代碼也可能有助于模型建立編碼層次的能力我們將把這一假設(shè)的檢驗留給未來的工作
還要注意一些細節(jié):
文本—達芬奇—002和代碼—達芬奇—002
Code—davinci—002是基本型號,text—davinci—002是微調(diào)code—davinci—002的產(chǎn)物它對以下數(shù)據(jù)進行了微調(diào):手動標(biāo)記的指令和預(yù)期輸出,由人工注釋器選擇的模型輸出
Code—davinci—002在有上下文實例的情況下更擅長上下文學(xué)習(xí),當(dāng)沒有上下文示例/零樣本時,text—davinci—002在零樣本任務(wù)完成上表現(xiàn)更好從這個意義上說,text—davinci—002更符合人類的預(yù)期
OpenAI不太可能為了零樣本能力而刻意犧牲情境學(xué)習(xí)的能力——情境學(xué)習(xí)能力的降低更多的是指令學(xué)習(xí)的副作用,OpenAI稱之為對齊稅。
01型號對s. 002型號
01模型主要針對純代碼/純文本任務(wù),02模型是代碼訓(xùn)練和指令微調(diào)的深度融合,代碼和文本都沒問題。
Code—davinci—002可能是第一個深度整合代碼訓(xùn)練和指令微調(diào)的模型證據(jù):code—cushman—001可以推理,但在純文本中表現(xiàn)不佳text—davinci—001在純文本中表現(xiàn)良好,但在推理中表現(xiàn)不佳Code—davinci—002可以同時做到這兩點
3.2這些能力是預(yù)訓(xùn)練后已經(jīng)存在的還是微調(diào)后注入的。
在這個階段,我們已經(jīng)確定了指令微調(diào)和代碼培訓(xùn)的關(guān)鍵角色一個重要的問題是如何進一步分析代碼訓(xùn)練和指令微調(diào)的影響
具體來說:以上三種能力在最初的GPT—3中是否已經(jīng)存在,并且僅通過指令和代碼訓(xùn)練來觸發(fā)/解鎖或者這些能力在最初的GPT—3中并不存在,而是通過指令和代碼訓(xùn)練注入的
如果答案已經(jīng)在最初的GPT—3中,那么這些能力也應(yīng)該在OPT中因此,要再現(xiàn)這些能力,可以直接通過指令和代碼來調(diào)整OPT
可是,代號—達芬奇—002可能不是基于原來的GPT—3達芬奇,而是基于一個比原來的GPT—3更大的模型如果是這種情況,可能沒有辦法通過調(diào)整OPT來重現(xiàn)
研究界需要進一步了解OpenAI訓(xùn)練出了什么樣的模型作為code—davinci—002的基礎(chǔ)模型。
我們有以下假設(shè)和證據(jù):
代碼—達芬奇—002的基本模型可能不是最初的GPT—3達芬奇模型。
第一代GPT—3在數(shù)據(jù)集C4 2016—2019上進行訓(xùn)練,而代碼達芬奇—002的訓(xùn)練集延長至2021年因此,code—davinci—002有可能在2019—2021版C4上進行訓(xùn)練
第一代GPT—3有一個2048字大小的上下文窗口代碼—davinci—002的上下文窗口是8192GPT系列使用絕對位置嵌入不經(jīng)過訓(xùn)練很難直接外推絕對位置嵌入,而且會嚴重損害模型的性能如果code—davinci—002是基于原來的GPT—3,OpenAI是如何擴展上下文窗口的
另一方面,無論基礎(chǔ)模型是最初的GPT—3還是后來訓(xùn)練的模型,遵循指令和零樣本泛化的能力可能已經(jīng)存在于基礎(chǔ)模型中,然后會被微調(diào)指令解鎖。
這主要是因為OpenAI的論文報告的指令數(shù)據(jù)只有77K,比訓(xùn)練前的數(shù)據(jù)少了幾個數(shù)量級。
其他指令微調(diào)論文進一步證明了數(shù)據(jù)集大小對模型性能的比較例如,在Chung等人的工作中,F(xiàn)lan—PaLM的指令微調(diào)僅為訓(xùn)練前計算的0.4%一般來說,指令數(shù)據(jù)會明顯少于預(yù)訓(xùn)練數(shù)據(jù)
可是,模型的復(fù)雜推理能力可能在預(yù)訓(xùn)練階段由代碼數(shù)據(jù)注入。
代碼數(shù)據(jù)集的大小不同于上述指令微調(diào)的大小這里的代碼數(shù)據(jù)足夠大,可以占據(jù)訓(xùn)練數(shù)據(jù)的重要部分
如上所述,code—davinci—002之前的模型文本—davinci—001很可能還沒有在代碼數(shù)據(jù)上進行微調(diào),所以它的推理/思維鏈能力很差正如思維鏈論文第一版所報道的,它有時甚至比參數(shù)更小的code—cushman—001還要糟糕
區(qū)分代碼訓(xùn)練和指令微調(diào)的最好方法大概就是對比code—cushman—001,T5和FlanT5。
因為他們有相似的模型大小和相似的訓(xùn)練數(shù)據(jù)集,所以他們之間最大的區(qū)別是他們是否對代碼進行過訓(xùn)練/他們是否做過指令微調(diào)。
目前還沒有這樣的對比這個留待以后研究吧
四?;谌祟惙答伒膹娀瘜W(xué)習(xí)的力量
目前,text—davinci—002,text—davinci—003和ChatGPT之間幾乎沒有嚴格的統(tǒng)計對比,主要是因為:
在撰寫本文時,Text—davinci—003和ChatGPT才出版了不到一個月。
ChatGPT不能通過OpenAI API調(diào)用,在標(biāo)準(zhǔn)基準(zhǔn)上測試比較麻煩。
因此,這些模型之間的比較更多地基于研究社區(qū)的集體經(jīng)驗但我們認為,初步的描述性比較還是可以揭示模型的機理的
首先,我們注意到以下text—davinci—002,text—davinci—003和ChatGPT的對比:
這三個模型都是通過指令進行微調(diào)的。
Text—davinci—002是由監(jiān)督學(xué)習(xí)指令微調(diào)的模型。
Text—davinci—003和ChatGPT是基于人類反饋的強化學(xué)習(xí)的指令微調(diào)這是它們之間最顯著的區(qū)別
這意味著大多數(shù)新模型的行為是RLHF的產(chǎn)物。
那么我們來看看RLHF觸發(fā)的能力:
信息回復(fù):text—davinci—003的生成通常比text—davinci—002長ChatGPT的回應(yīng)更加冗長,以至于用戶必須明確要求用一句話回答我,才能得到更加簡潔的回答這是RLHF的直接產(chǎn)物
公平回應(yīng):對于涉及多個實體利益的事件,ChatGPT通常會給出非常平衡的回答這也是RLHF的產(chǎn)物
拒絕不當(dāng):這是RLHF觸發(fā)的內(nèi)容過濾器和模型自身能力的結(jié)合過濾器過濾掉一部分,然后模型拒絕另一部分
拒絕超出他們知識范圍的問題:例如,拒絕2021年6月以后發(fā)生的新事件這是RLHF最神奇的地方,因為它使模型能夠隱式地區(qū)分哪些問題在其知識范圍內(nèi),哪些問題不在其知識范圍內(nèi)
有兩件事值得注意:
所有功能都是模型固有的,而不是通過RLHF注入的RLHF的作用是觸發(fā)/解鎖應(yīng)急能力這個論點主要來自于數(shù)據(jù)大小的比較:與訓(xùn)練前的數(shù)據(jù)相比,RLHF占用的計算量/數(shù)據(jù)要少得多
知道模型不知道的,不是靠寫規(guī)則實現(xiàn)的,而是靠RLHF解鎖的這是一個非常令人驚訝的發(fā)現(xiàn),因為RLHF最初的目標(biāo)是讓模型生成復(fù)合人類預(yù)期的答案,這更多的是讓模型生成安全的句子,而不是讓模型知道它不知道的東西
幕后發(fā)生的事情可能是:
ChatGPT:通過犧牲上下文學(xué)習(xí)的能力,我們可以獲得對會話歷史建模的能力這是一個經(jīng)驗性的觀察,因為ChatGPT似乎不像text—davinci—003那樣受到上下文演示的強烈影響
Text—davinci—003:恢復(fù)了text—davinci—002犧牲的上下文學(xué)習(xí)能力,提高了零樣本能力根據(jù)instructGPT的論文,這來自于強化學(xué)習(xí)調(diào)整階段語言建模的目標(biāo)
5.總結(jié)現(xiàn)階段GPT—3.5的演進。
到目前為止,我們已經(jīng)仔細檢查了沿著進化樹出現(xiàn)的所有能力,下表總結(jié)了進化路徑:
我們可以得出結(jié)論:
語言產(chǎn)出能力+基礎(chǔ)世界知識+語境學(xué)習(xí)都來自于前期訓(xùn)練。
存儲大量知識的能力來自于1750億個參數(shù)。
遵循指令并歸納出新任務(wù)的能力來自于在指令學(xué)習(xí)中擴大指令的數(shù)量。
執(zhí)行復(fù)雜推理的能力很可能來自代碼訓(xùn)練。
中立的,客觀的能力,安全的,翔實的答案,來自與人類的結(jié)盟。具體來說:
如果是監(jiān)督學(xué)習(xí)版本,得到的模型是text—davinci—002。
如果是強化學(xué)習(xí)版,得到的模型是text—davinci—003。
無論是有人監(jiān)督還是RLHF,模型在很多任務(wù)中的性能都無法超過code—davinci—002這種由對齊導(dǎo)致的性能下降現(xiàn)象被稱為對齊稅
對對話歷史建模。
增加對話信息量。
拒絕模型知識范圍之外的問題。
不及物動詞GPT—3.5目前不能做什么。
雖然GPT—3.5是自然語言處理研究的重要一步,但它并沒有完全包含許多研究者想象的所有理想屬性。以下是GPT 3.5版不具備的一些重要屬性:
重寫實時模型的信念:當(dāng)模型表達對某件事的信念時,如果信念是錯誤的,我們可能很難糾正它:
我最近碰到的一個例子是:ChatGPT堅持認為3599是一個素數(shù),盡管它承認3599 = 59 * 61另外,請參考Reddit上最快的海洋哺乳動物的例子
可是,似乎有不同層次的模型信念一個例子是,即使我告訴它達斯·維德贏得了2020年的選舉,模型仍然會認為美國現(xiàn)任總統(tǒng)是拜登但如果我把選舉年改成2024年,它會認為總統(tǒng)是達斯·維德,2026年的總統(tǒng)
形式推理:GPT—3.5系列無法在數(shù)學(xué)或一階邏輯等形式嚴格的系統(tǒng)中進行推理,
在自然語言處理的文獻中,推理一詞的定義往往不明確但如果從模糊性的角度來看,比如有些問題很模糊,沒有推理性,有一定的邏輯在里面,但有些地方也可以模糊,非常嚴謹,不能含糊
然后,該模型可以很好地進行類的模糊推理。例如:
如何做豆腐做豆腐腦的時候,中間很多步驟稍微模糊一點,比如是做咸的還是做甜的,還是可以接受的只要整體步驟大致正確,豆腐腦就可以吃了
數(shù)學(xué)定理證明的思路證明的思想是用語言表達的非正式的一步一步的解決方案,其中每一步的嚴格推導(dǎo)不需要太具體數(shù)學(xué)教學(xué)中經(jīng)常用到證明思想:只要老師給出一個大致正確的整體步驟,學(xué)生就能大致理解然后老師把證明的具體細節(jié)作為作業(yè)分配給學(xué)生,答案省略了
GPT—3.5不能進行類型推理。
一個例子是嚴格的數(shù)學(xué)證明,它要求中間步驟不能被跳過,模糊或出錯。
但這種嚴格的推理究竟應(yīng)該由語言模型還是符號系統(tǒng)來完成,還有待商榷一個例子是,與其試圖讓GPT做三位數(shù)加法,不如直接調(diào)Python
從互聯(lián)網(wǎng)上搜索:GPT—3.5系列不能直接搜索互聯(lián)網(wǎng)。
可是,2021年12月發(fā)表了一篇WebGPT論文,其中GPT稱之為搜索引擎所以在OpenAI內(nèi)部測試了檢索能力
這里需要區(qū)分的是,GPT—3.5的兩個重要但不同的能力是知識和推理總的來說,如果能把知識卸載到外部檢索系統(tǒng),讓語言模型只專注于推理就好了
模型的內(nèi)部知識總是在某個時候被切斷模特總是需要最新的知識來回答最新的問題
回想一下,我們已經(jīng)討論過1750億個參數(shù)用于存儲知識如果能從模型中卸載知識,那么模型參數(shù)可能會大大減少,最后甚至可以在手機上運行
七。結(jié)論
第一代GPT—3模型通過預(yù)訓(xùn)練獲得了生成,世界知識和情境學(xué)習(xí)的能力然后通過指令調(diào)優(yōu)的模型分支,獲得對指令的跟隨和對不熟悉任務(wù)的概括能力經(jīng)過代碼訓(xùn)練后,分支模型獲得了代碼理解的能力作為代碼訓(xùn)練的副產(chǎn)品,該模型還可能獲得復(fù)雜推理的能力
結(jié)合這兩個分支,code—davinci—002似乎是最強的GPT—3.5模型,具有所有強大的功能接下來通過監(jiān)督指令調(diào)優(yōu)和RLHF,犧牲模型能力來換取與人類的比對,也就是比對稅RLHF使模型能夠生成更詳細和公平的答案,同時拒絕超出其知識范圍的問題
我們希望這篇文章可以幫助提供一個清晰的GPT評估圖,并引發(fā)一些關(guān)于語言模型,指令調(diào)優(yōu)和代碼調(diào)優(yōu)的討論最重要的是,我們希望這篇文章可以作為在開源社區(qū)復(fù)制GPT 3.5的路線圖
常見問題
這篇文章中的這些陳述更像是假設(shè)還是結(jié)論。
復(fù)雜推理的能力來自代碼訓(xùn)練,這是我們傾向于相信的假設(shè)。
至少有四篇論文的結(jié)論是,未知任務(wù)的泛化能力來自大規(guī)模的指令學(xué)習(xí)。
這是一個有根據(jù)的猜測,GPT—3.5來自其他大型基本模型,而不是具有1750億個參數(shù)的GPT—3。
所有這些能力都已經(jīng)存在通過指令調(diào)優(yōu),無論是有監(jiān)督學(xué)習(xí)還是強化學(xué)習(xí)來解鎖這些能力而不是注入,都是一個你不敢相信的強假設(shè)主要是因為指令調(diào)優(yōu)數(shù)據(jù)比預(yù)訓(xùn)練數(shù)據(jù)少幾個數(shù)量級
結(jié)論=許多證據(jù)支持這些陳述的正確性,假設(shè)=有肯定的證據(jù)但不夠有力,根據(jù)猜測=沒有確鑿的證據(jù),但一些因素會指向這個方向。
為什么其他型號沒那么厲害。
OPT大概是因為訓(xùn)練過程太不穩(wěn)定。
布魯姆的情況不明。
原始鏈接:
鄭重聲明:此文內(nèi)容為本網(wǎng)站轉(zhuǎn)載企業(yè)宣傳資訊,目的在于傳播更多信息,與本站立場無關(guān)。僅供讀者參考,并請自行核實相關(guān)內(nèi)容。