ChatGPT專題之一GPT家族進(jìn)化史
?時(shí)間線
2018 年 6 月
OpenAI發(fā)布GPT-1模型,1.1億參數(shù)。
2018 年 11 月
OpenAI發(fā)布GPT-2模型,15億參數(shù),但由于擔(dān)心濫用,不向公眾開放模型的全部代碼及數(shù)據(jù)。
2019 年 2 月
OpenAI開放了GPT-2模型的部分代碼和數(shù)據(jù),但仍然限制了訪問。
2019 年 6 月 10 日
OpenAI發(fā)布GPT-3模型,1750億參數(shù),并向部分合作伙伴提供了訪問權(quán)限。
2019 年 9 月
OpenAI開放了GPT-2的全部代碼和數(shù)據(jù),并發(fā)布了更大版本。
2020 年 5 月
OpenAI宣布推出GPT-3模型的beta版本,該模型擁有1750億個(gè)參數(shù),是迄今為止最大的自然語言處理模型。
2022 年 3 月
OpenAI發(fā)布InstructGPT,用到 Instruction Tuning
2022 年 11 月 30 日
OpenAI通過GPT-3.5系列大型語言模型微調(diào)而成的,全新對(duì)話式AI模型ChatGPT正式發(fā)布。
2022 年 12 月 15 日
ChatGPT 第一次更新,提升了總體性能,增加了保存和查看歷史對(duì)話記錄的新功能。
2023 年 1 月 9 日
ChatGPT 第二次更新,改善了回答的真實(shí)性,增加了“停止生成”新功能。
2023 年 1 月 21 日
OpenAI發(fā)布限于部分用戶使用的付費(fèi)版ChatGPT Professional。
2023 年 1 月 30 日
ChatGPT第三次更新,在此提升了答案真實(shí)性的同時(shí),還提升了數(shù)學(xué)能力。
2023 年 2 月 2 日
OpenAI正式推出ChatGPT收費(fèi)版訂閱服務(wù),新版本對(duì)比免費(fèi)版響應(yīng)速度更快,運(yùn)行更為穩(wěn)定。
2023 年 3 月 15 日
OpenAI震撼推出了大型多模態(tài)模型GPT-4,不僅能夠閱讀文字,還能識(shí)別圖像,并生成文本結(jié)果,現(xiàn)已接入ChatGPT 向Plus用戶開放。
GPT-1:基于單向Transformer的預(yù)訓(xùn)練模型
在 GPT 出現(xiàn)之前,NLP 模型主要是基于針對(duì)特定任務(wù)的大量標(biāo)注數(shù)據(jù)進(jìn)行訓(xùn)練。這會(huì)導(dǎo)致一些限制:
大規(guī)模高質(zhì)量的標(biāo)注數(shù)據(jù)不易獲得;
模型僅限于所接受的訓(xùn)練,泛化能力不足;
無法執(zhí)行開箱即用的任務(wù),限制了模型的落地應(yīng)用。
為了克服這些問題,OpenAI走上了預(yù)訓(xùn)練大模型的道路。GPT-1是由OpenAI于2018年發(fā)布的第一個(gè)預(yù)訓(xùn)練模型,它采用了單向Transformer模型,并使用了超過40GB的文本數(shù)據(jù)進(jìn)行訓(xùn)練。GPT-1的關(guān)鍵特征是:生成式預(yù)訓(xùn)練(無監(jiān)督)+判別式任務(wù)精調(diào)(有監(jiān)督)。先用無監(jiān)督學(xué)習(xí)的預(yù)訓(xùn)練,在 8 個(gè) GPU 上花費(fèi) 了1 個(gè)月的時(shí)間,從大量未標(biāo)注數(shù)據(jù)中增強(qiáng)AI系統(tǒng)的語言能力,獲得大量知識(shí),然后進(jìn)行有監(jiān)督的微調(diào),與大型數(shù)據(jù)集集成來提高系統(tǒng)在NLP任務(wù)中的性能。GPT-1在文本生成和理解任務(wù)上表現(xiàn)出了很好的性能,成為了當(dāng)時(shí)最先進(jìn)的自然語言處理模型之一。
GPT-2:多任務(wù)預(yù)訓(xùn)練模型
由于單任務(wù)模型缺乏泛化性,并且多任務(wù)學(xué)習(xí)需要大量有效訓(xùn)練對(duì),GPT-2在GPT-1的基礎(chǔ)上進(jìn)行了擴(kuò)展和優(yōu)化,去掉了有監(jiān)督學(xué)習(xí),只保留了無監(jiān)督學(xué)習(xí)。GPT-2采用了更大的文本數(shù)據(jù)和更強(qiáng)大的計(jì)算資源進(jìn)行訓(xùn)練,參數(shù)規(guī)模達(dá)到了1.5億,遠(yuǎn)超過GPT-1的1.1億參數(shù)。除了使用更大的數(shù)據(jù)集和更大的模型去學(xué)習(xí),GPT-2還提出了一個(gè)新的更難的任務(wù):零樣本學(xué)習(xí)(zero-shot),即將預(yù)訓(xùn)練好的模型直接應(yīng)用于諸多的下游任務(wù)。GPT-2在多項(xiàng)自然語言處理任務(wù)上表現(xiàn)出了卓越的性能,包括文本生成、文本分類、語言理解等。
GPT-3:創(chuàng)造出新的自然語言生成和理解能力
GPT-3是GPT系列模型中最新的一款模型,采用了更大的參數(shù)規(guī)模和更豐富的訓(xùn)練數(shù)據(jù)。GPT-3的參數(shù)規(guī)模達(dá)到了1.75萬億,是GPT-2的100倍以上。GPT-3在自然語言生成、對(duì)話生成和其他語言處理任務(wù)上表現(xiàn)出了驚人的能力,在一些任務(wù)上甚至能夠創(chuàng)造出新的語言表達(dá)形式。
GPT-3提出了一個(gè)非常重要的概念:情境學(xué)習(xí)(In-context learning),具體內(nèi)容會(huì)在下次推文中進(jìn)行解釋。
InstructGPT & ChatGPT
InstructGPT/ChatGPT的訓(xùn)練分成3步,每一步需要的數(shù)據(jù)也有些許差異,下面我們分別介紹它們。
從一個(gè)預(yù)訓(xùn)練的語言模型開始,應(yīng)用以下三個(gè)步驟。
步驟1:監(jiān)督微調(diào)SFT:收集演示數(shù)據(jù),訓(xùn)練一個(gè)受監(jiān)督的策略。我們的標(biāo)簽器提供了輸入提示分布上所需行為的演示。然后,我們使用監(jiān)督學(xué)習(xí)在這些數(shù)據(jù)上對(duì)預(yù)訓(xùn)練的GPT-3模型進(jìn)行微調(diào)。
步驟2:獎(jiǎng)勵(lì)模型Reward Model訓(xùn)練。收集比較數(shù)據(jù),訓(xùn)練一個(gè)獎(jiǎng)勵(lì)模型。我們收集了一個(gè)模型輸出之間比較的數(shù)據(jù)集,其中標(biāo)簽者表示他們更喜歡給定輸入的哪個(gè)輸出。然后我們訓(xùn)練一個(gè)獎(jiǎng)勵(lì)模型來預(yù)測(cè)人類偏好的輸出。
步驟3:通過獎(jiǎng)勵(lì)模型上的近端策略優(yōu)化(PPO)強(qiáng)化學(xué)習(xí):使用RM的輸出作為標(biāo)量獎(jiǎng)勵(lì)。我們使用PPO算法對(duì)監(jiān)督策略進(jìn)行微調(diào),以優(yōu)化該獎(jiǎng)勵(lì)。
步驟2和步驟3可以連續(xù)迭代;在當(dāng)前最優(yōu)策略上收集更多的比較數(shù)據(jù),這些數(shù)據(jù)用于訓(xùn)練一個(gè)新的RM,然后是一個(gè)新的策略。
前兩步的prompts,來自于OpenAI的在線API上的用戶使用數(shù)據(jù),以及雇傭的標(biāo)注者手寫的。最后一步則全都是從API數(shù)據(jù)中采樣的,InstructGPT的具體數(shù)據(jù):
1. SFT數(shù)據(jù)集
SFT數(shù)據(jù)集是用來訓(xùn)練第1步有監(jiān)督的模型,即使用采集的新數(shù)據(jù),按照GPT-3的訓(xùn)練方式對(duì)GPT-3進(jìn)行微調(diào)。因?yàn)镚PT-3是一個(gè)基于提示學(xué)習(xí)的生成模型,因此SFT數(shù)據(jù)集也是由提示-答復(fù)對(duì)組成的樣本。SFT數(shù)據(jù)一部分來自使用OpenAI的PlayGround的用戶,另一部分來自O(shè)penAI雇傭的40名標(biāo)注工(labeler)。并且他們對(duì)labeler進(jìn)行了培訓(xùn)。在這個(gè)數(shù)據(jù)集中,標(biāo)注工的工作是根據(jù)內(nèi)容自己編寫指示。
2. RM數(shù)據(jù)集
RM數(shù)據(jù)集用來訓(xùn)練第2步的獎(jiǎng)勵(lì)模型,我們也需要為InstructGPT/ChatGPT的訓(xùn)練設(shè)置一個(gè)獎(jiǎng)勵(lì)目標(biāo)。這個(gè)獎(jiǎng)勵(lì)目標(biāo)不必可導(dǎo),但是一定要盡可能全面且真實(shí)的對(duì)齊我們需要模型生成的內(nèi)容。很自然的,我們可以通過人工標(biāo)注的方式來提供這個(gè)獎(jiǎng)勵(lì),通過人工對(duì)可以給那些涉及偏見的生成內(nèi)容更低的分從而鼓勵(lì)模型不去生成這些人類不喜歡的內(nèi)容。InstructGPT/ChatGPT的做法是先讓模型生成一批候選文本,讓后通過labeler根據(jù)生成數(shù)據(jù)的質(zhì)量對(duì)這些生成內(nèi)容進(jìn)行排序。
3. PPO數(shù)據(jù)集
InstructGPT的PPO數(shù)據(jù)沒有進(jìn)行標(biāo)注,它均來自GPT-3的API的用戶。既又不同用戶提供的不同種類的生成任務(wù),其中占比最高的包括生成任務(wù)(45.6%),QA(12.4%),頭腦風(fēng)暴(11.2%),對(duì)話(8.4%)等。
附 錄:
ChatGPT 的各項(xiàng)能力來源:
GPT-3 到 ChatGPT 以及這之間的迭代版本的能力和訓(xùn)練方法:
參考文獻(xiàn)
1、拆解追溯 GPT-3.5 各項(xiàng)能力的起源:https://yaofu.notion.site/GPT-3-5-360081d91ec245f29029d37b54573756
2、全網(wǎng)最全時(shí)間線梳理!從ChatGPT的前世今生,到如今AI領(lǐng)域的競(jìng)爭(zhēng)格局https://www.bilibili.com/read/cv22541079
3、GPT-1論文:Improving Language Understanding by Generative Pre-Training, OpenAI.
4、GPT-2論文:Language Models are Unsupervised Multitask Learners, OpenAI.
5、GPT-3論文:Language Models are Few-Shot Learners, OpenAI.
6、Jason W, Maarten B, Vincent Y, et al. Finetuned Language Models Are Zero-Shot Learners[J]. arXiv preprint arXiv: 2109.01652, 2021.
7、OpenAI是如何“魔鬼調(diào)教” GPT的?——InstructGPT論文解讀 https://cloud.tencent.com/developer/news/979148