
本文全方位地介紹了 ChatGPT 的能力特征、發(fā)展歷程以及 OpenAI 一路走來(lái)所堅(jiān)守的技術(shù)路線 , 并對(duì) ChatGPT 出現(xiàn)之后 NLP 領(lǐng)域的范式轉(zhuǎn)換進(jìn)行了展望,即 ChatGPT 開(kāi)啟‘文本生成指令’的范式 。
1、ChatGPT,不再‘愚蠢’的人工智能
ChatGPT 的相關(guān)話題應(yīng)該算是繼 AlphaGo 以來(lái),最出圈的人工智能熱點(diǎn)了 。簡(jiǎn)單來(lái)說(shuō),它是一個(gè)可以用自然語(yǔ)言對(duì)話的機(jī)器人,你可以問(wèn)它任何問(wèn)題(當(dāng)然它有可能會(huì)答錯(cuò),但你可以引導(dǎo)并糾正它),它都會(huì)以非常流暢、標(biāo)準(zhǔn)的自然語(yǔ)言回答你 。不僅如此,它還能回答代碼問(wèn)題、數(shù)學(xué)問(wèn)題等等,你可以和它在關(guān)于任何問(wèn)題上聊得不亦樂(lè)乎 。
我們可以用一個(gè)經(jīng)典的雞兔同籠問(wèn)題來(lái)感性地認(rèn)識(shí)一下 ChatGPT 的能力:
從這個(gè)回答可以觀察到幾個(gè)特點(diǎn) 。首先是對(duì)自然語(yǔ)言的理解和轉(zhuǎn)換為數(shù)學(xué)問(wèn)題的能力,其次它通過(guò)將一個(gè)較為復(fù)雜的推理問(wèn)題分步拆解 , 一步步獲得最后的答案 。這個(gè)能力被業(yè)內(nèi)稱作‘思維鏈’(Chain of thought) 。接下來(lái)?yè)Q一下問(wèn)法,看看它會(huì)怎么回答 。
從這個(gè)圖中可以發(fā)現(xiàn),ChatGPT 對(duì)自己所說(shuō)的內(nèi)容是有感知的 , 并且可以給出這么說(shuō)的原因 。另外也可以發(fā)現(xiàn),它確實(shí)也會(huì)出錯(cuò)(第一次計(jì)算耳朵數(shù)量錯(cuò)了 。此處有個(gè)冷知識(shí),雞是有類似于‘耳朵’一樣的功能器官) , 但可以通過(guò)引導(dǎo)的方式讓它給出正確的答案,并且會(huì)告訴你自己為什么錯(cuò)了 。
如果不事先告訴你這是一個(gè)人工智能模型,ChatGPT 給人的感覺(jué)確實(shí)像一個(gè)真正有邏輯思維和語(yǔ)言交流能力的真人 。它的出現(xiàn)第一次讓大家覺(jué)得,人工智能似乎終于能夠和人正常交流了,雖然有時(shí)候會(huì)出錯(cuò) , 但在交流的過(guò)程中至少?zèng)]有語(yǔ)言和邏輯上的障礙 , 它能‘懂’你在說(shuō)什么,并且按照人類的思維模式和語(yǔ)言規(guī)范給你反饋 。這種非常智能的體驗(yàn)感,是它突破業(yè)界小圈子,給大眾帶來(lái)沖擊感的原因 。
這里還希望再次強(qiáng)調(diào)這種體驗(yàn)感的問(wèn)題,因?yàn)橐苍S過(guò)去業(yè)界由于技術(shù)的限制,為了完成場(chǎng)景中的特定任務(wù)而忽略了這一點(diǎn) 。如今 ChatGPT 的出現(xiàn)代表了人工智能不再是過(guò)去那種‘有用,但是也挺蠢’的形態(tài)了 。
為了更好地理解 ChatGPT 這種非常智能的感覺(jué)是怎么產(chǎn)生的,難免要從過(guò)去那種‘很蠢’的人工智能說(shuō)起 。準(zhǔn)確地說(shuō),ChatGPT 背后使用的依然是自然語(yǔ)言處理(NLP)技術(shù),但卻打破了原有的范式 。
要理解這一點(diǎn),可以先看看目前的主流做法是怎樣的 。人類交流依托的是語(yǔ)言,甚至也有很多人認(rèn)為人類的思維也是建立在語(yǔ)言上的 。因此,理解運(yùn)用自然語(yǔ)言一直是人工智能的重要課題 。但語(yǔ)言實(shí)在太復(fù)雜,因此為了讓計(jì)算機(jī)理解運(yùn)用語(yǔ)言,通常會(huì)將這個(gè)過(guò)程拆分為很多的細(xì)分項(xiàng),這就是在技術(shù)領(lǐng)域中常說(shuō)的‘任務(wù)’ 。舉幾個(gè)例子:
什么是路由器?路由器可以連接兩個(gè)或更多網(wǎng)段 。這些是在其路由表中存儲(chǔ)信息的智能網(wǎng)絡(luò)設(shè)備,例如路徑,跳數(shù)等 。有了這個(gè)信息,他們就可以確定數(shù)據(jù)傳輸?shù)淖罴崖窂?。路由器在 OSI 網(wǎng)絡(luò)層運(yùn)行 。
情感分析任務(wù),針對(duì)的是理解語(yǔ)言所蘊(yùn)含的情感傾向;
句法分析任務(wù) , 針對(duì)的是分析文本的語(yǔ)言學(xué)結(jié)構(gòu);
實(shí)體識(shí)別任務(wù) , 針對(duì)的是從文本中定位出實(shí)體片段,例如地址、名字等等;
實(shí)體連接任務(wù),針對(duì)的是從文本中抽取出實(shí)體間的關(guān)系;
這樣的任務(wù)還有很多,都是從某個(gè)細(xì)分的側(cè)面去對(duì)自然語(yǔ)言進(jìn)行分析、處理 。這樣做有很多好處,比如有了這些拆分,就可以從不同的維度來(lái)考察一個(gè)自然語(yǔ)言處理系統(tǒng)的細(xì)分能力;也可以針對(duì)某一個(gè)細(xì)分的項(xiàng)專門(mén)做系統(tǒng)或者模型的設(shè)計(jì)等 。從技術(shù)的角度來(lái)說(shuō),將一個(gè)復(fù)雜的任務(wù)(理解并運(yùn)用自然語(yǔ)言)拆分為很多的簡(jiǎn)單任務(wù)(各種各樣的 NLP 任務(wù))確實(shí)是一種比較典型的解決復(fù)雜問(wèn)題的路徑 , 這也是目前的主流做法 。然而在 ChatGPT 出現(xiàn)之后,以馬后炮視角去看,也許在讓計(jì)算機(jī)理解并運(yùn)用自然語(yǔ)言這條路上,這種拆分并不是最有效的途徑 。
因?yàn)樵趩蝹€(gè)任務(wù)上的優(yōu)秀表現(xiàn),并不能代表系統(tǒng)就掌握了自然語(yǔ)言 。人對(duì)于人工智能體的‘智能感’,是基于對(duì)它應(yīng)用自然語(yǔ)言的整體能力而產(chǎn)生的,這一點(diǎn)在 ChatGPT 上有明顯的體現(xiàn) 。雖然 OpenAI 沒(méi)有開(kāi)放 ChatGPT 的 API 服務(wù),外界還無(wú)法測(cè)評(píng)它在各個(gè)細(xì)分 NLP 任務(wù)上的具體效果,但以過(guò)往外界對(duì)它的前身 GPT-3、InstructGPT 等模型的測(cè)試情況表明,對(duì)于某些特定的任務(wù),一個(gè)用專門(mén)數(shù)據(jù)精調(diào)過(guò)的小模型,確實(shí)可以獲得更好的效果(詳細(xì)分析請(qǐng)參考《深入理解語(yǔ)言模型的突現(xiàn)能力》) 。但這些在單個(gè)任務(wù)上有更好表現(xiàn)的小模型,并沒(méi)有引起很大的出圈效應(yīng) 。歸根結(jié)底,是因?yàn)樗鼈冎挥袉我坏哪芰?。單個(gè)的能力出眾并不能代表它們具有了理解和運(yùn)用自然語(yǔ)言的能力,從而也無(wú)法獨(dú)自在實(shí)際應(yīng)用場(chǎng)景中發(fā)揮作用 。正因如此,通常在一個(gè)真實(shí)的應(yīng)用場(chǎng)景中,都是多個(gè)具有單點(diǎn)能力的模塊經(jīng)過(guò)人為的設(shè)計(jì)拼湊而成,這種人為的拼湊方式是過(guò)去的人工智能系統(tǒng)讓人感覺(jué)并不智能的原因之一 。
從人類理解和運(yùn)用自然語(yǔ)言的視角去看,這個(gè)現(xiàn)象其實(shí)很好理解 。普通人在理解、運(yùn)用自然語(yǔ)言的時(shí)候,并不會(huì)在腦內(nèi)將它拆分為很多步不同的任務(wù),逐個(gè)任務(wù)進(jìn)行分析,然后再匯總,這不是人類使用自然語(yǔ)言的方式 。就好比一個(gè)人,在聽(tīng)到一句話的時(shí)候,并不會(huì)對(duì)它的句法結(jié)構(gòu)、實(shí)體內(nèi)容與關(guān)系、情感傾向等這些內(nèi)容逐一分析,然后拼湊出這句話的含義,人對(duì)語(yǔ)言的理解過(guò)程是一個(gè)整體過(guò)程 。再進(jìn)一步,人對(duì)這句話的整體理解,會(huì)以自然語(yǔ)言的形式,通過(guò)回復(fù)的方式整體地表現(xiàn)出來(lái) 。這個(gè)過(guò)程并不是像人工智能系統(tǒng)那樣,拆分單個(gè)任務(wù),然后逐一輸出情感分析的標(biāo)簽、實(shí)體信息的片段、或是別的某個(gè)單個(gè)任務(wù)的結(jié)果,然后用這些東西拼湊出回復(fù) 。
而以 ChatGPT 為代表,GPT 系列模型所做的事情才真正接近了人類理解和運(yùn)用語(yǔ)言的能力 —— 直接接收自然語(yǔ)言 , 然后直接回復(fù)自然語(yǔ)言 , 并保證了語(yǔ)言的流暢性與邏輯性 。這是人與人的交流方式,所以大家對(duì)它抱以‘很智能’的體驗(yàn)感 。也許很多人會(huì)認(rèn)為,如果能做到 ChatGPT 這樣當(dāng)然很好,過(guò)去那種對(duì)任務(wù)的拆分是因?yàn)榧夹g(shù)的限制不得已而為之 。從技術(shù)應(yīng)用的視角來(lái)看 , 這樣迂回的方式當(dāng)然是需要的 , 這種方法也在很長(zhǎng)的一段時(shí)間內(nèi)被采用 , 并且確實(shí)也能夠解決很多實(shí)際場(chǎng)景中的問(wèn)題 。但如果回顧 GPT 系列模型的發(fā)展過(guò)程 , 就會(huì)發(fā)現(xiàn) OpenAI‘賭’了另一條路,并且他們‘賭’贏了 。
2、OpenAI 的‘賭局’
GPT 初代,一切開(kāi)始的地方
早在 2018 年,OpenAI 就發(fā)布了最初版本的 GPT 模型,從 OpenAI 公開(kāi)的論文(Improving Language Understanding by Generative Pre-Training)可以了解到,這個(gè)模型采用了 12 層的 Transformer Decoder 結(jié)構(gòu),用了大約 5GB 的無(wú)監(jiān)督文本數(shù)據(jù)進(jìn)行語(yǔ)言模型任務(wù)的訓(xùn)練 。雖然初代 GPT 模型采用的就已經(jīng)是生成式的預(yù)訓(xùn)練(這也是 GPT 名字的由來(lái),Generative Pre-Training,即生成式預(yù)訓(xùn)練),但使用的是無(wú)監(jiān)督預(yù)訓(xùn)練下游任務(wù)微調(diào)的范式 。這一范式其實(shí)并不是什么新的發(fā)明,它在 CV(計(jì)算機(jī)視覺(jué))領(lǐng)域已經(jīng)有比較廣泛的應(yīng)用,只是由于當(dāng)年 ELMo 模型的出色表現(xiàn),把它重新‘介紹’到了 NLP 領(lǐng)域 。
GPT 模型的出現(xiàn)在那一年確實(shí)引來(lái)了一些業(yè)內(nèi)的關(guān)注,但它并不是那一年的 C 位主角 。因?yàn)榫驮谕辏珿oogle 的 BERT 模型橫空出世,以優(yōu)異的效果吸引了幾乎全部的目光(這個(gè)景象有點(diǎn)像現(xiàn)在的 ChatGPT,不禁感嘆 Google 和 OpenAI 之間的‘恩恩怨怨’真是天道好輪回) 。
圖片來(lái)自 BERT 論文,從圖示中可以一窺當(dāng)年 BERT 對(duì)標(biāo)的就是 GPT , 并引以為傲地指出雙向編碼能力 。
BERT 模型雖然也是采用和 GPT 一樣的 Transformer 模型結(jié)構(gòu) , 但它幾乎就是為‘無(wú)監(jiān)督預(yù)訓(xùn)練下游任務(wù)微調(diào)’的范式量身定制的模型 。和 GPT 相比 , BERT 所使用的掩碼語(yǔ)言模型任務(wù)(Masked Language Model)雖然讓它失去了直接生成文本的能力,但換來(lái)的是雙向編碼的能力,這讓模型擁有了更強(qiáng)的文本編碼性能,直接的體現(xiàn)則是下游任務(wù)效果的大幅提升 。而 GPT 為了保留生成文本的能力,只能采用單向編碼 。
以當(dāng)年的眼光來(lái)看 , BERT 絕對(duì)是一個(gè)更加優(yōu)秀的模型 。因?yàn)榧热?BERT 和 GPT 兩者都是采用‘預(yù)訓(xùn)練微調(diào)’的范式,并且下游任務(wù)依然是分類、匹配、序列標(biāo)注等等‘經(jīng)典’的 NLP 任務(wù)形式,那么像 BERT 模型這種更注重特征編碼的質(zhì)量,下游任務(wù)選一個(gè)合適的損失函數(shù)去配合任務(wù)做微調(diào),顯然比 GPT 這種以文本生成方式去‘迂回地’完成這些任務(wù)更加直接 。
從 BERT 模型出來(lái)以后,‘無(wú)監(jiān)督訓(xùn)練下游任務(wù)微調(diào)’的范式便奠定了它的霸主地位,各類沿著 BERT 的思路,琢磨‘如何獲得更好的文本特征編碼’的方法大量涌現(xiàn),以至于 GPT 這個(gè)以生成式任務(wù)為目標(biāo)的模型顯得像一個(gè)‘異類’ 。馬后炮地說(shuō),如果當(dāng)時(shí) OpenAI‘順應(yīng)大勢(shì)’,放棄生成式預(yù)訓(xùn)練這條路 , 也許我們要等更長(zhǎng)的時(shí)間才能見(jiàn)到 ChatGPT 這樣的模型 。
GPT-2 帶來(lái)的希望
當(dāng)然,我們現(xiàn)在見(jiàn)到了 ChatGPT,所以 OpenAI 沒(méi)有放棄生成式預(yù)訓(xùn)練的路線 。實(shí)際上堅(jiān)持的‘回報(bào)’隱約出現(xiàn)在了第二年,也就是 2019 年 。OpenAI 發(fā)布了有 48 層 Transformer 結(jié)構(gòu)的 GPT-2 模型 。在發(fā)布的論文(Language Models are Unsupervised Multitask Learners)中 , 他們發(fā)現(xiàn)通過(guò)無(wú)監(jiān)督數(shù)據(jù)配合生成式訓(xùn)練后,GPT 展示出了零樣本(zero-shot)的多任務(wù)能力 。而奇妙的是,這些多任務(wù)的能力并不是顯式地、人為地加入到訓(xùn)練數(shù)據(jù)中的 。用通俗的話來(lái)舉個(gè)例子,GPT-2 其中一個(gè)展示出來(lái)的能力是做翻譯,但令人吃驚的是,通常專門(mén)用來(lái)做翻譯的模型是需要大量的平行語(yǔ)料(即兩種不同語(yǔ)種之間配對(duì)的數(shù)據(jù))進(jìn)行監(jiān)督訓(xùn)練,但 GPT-2 并沒(méi)有使用這種數(shù)據(jù),而僅僅是在大量的語(yǔ)料上進(jìn)行生成式的訓(xùn)練,然后它就‘突然’會(huì)做翻譯了 。這個(gè)發(fā)現(xiàn)或多或少地帶有點(diǎn)顛覆性的意味 , 它向人們展示了三個(gè)重要的現(xiàn)象:
想讓模型去完成一種 NLP 任務(wù),也許并不需要和任務(wù)匹配的標(biāo)注數(shù)據(jù) 。例如 GPT-2 訓(xùn)練時(shí)沒(méi)有用標(biāo)注的翻譯數(shù)據(jù) , 但它會(huì)做翻譯;
想讓模型去完成一種 NLP 任務(wù) , 也許并不需要和任務(wù)匹配的訓(xùn)練目標(biāo) 。例如 GPT-2 訓(xùn)練的時(shí)候并沒(méi)有設(shè)計(jì)翻譯任務(wù)和相關(guān)的損失函數(shù),它只是在做語(yǔ)言模型任務(wù) 。
僅僅用語(yǔ)言模型任務(wù)(即生成式任務(wù))訓(xùn)練的模型,也可以具有多任務(wù)的能力 。例如 GPT-2 展現(xiàn)出了翻譯、問(wèn)答、閱讀理解等等的能力 。
雖然以現(xiàn)在的眼光來(lái)看,當(dāng)時(shí)的 GPT-2 所展示出來(lái)的各種能力還比較初級(jí) , 效果距離使用監(jiān)督數(shù)據(jù)微調(diào)后的一些其它模型還有明顯的差距 , 但這并沒(méi)有妨礙 OpenAI 對(duì)它所蘊(yùn)含的潛在能力充滿期待 , 以至于在論文摘要中的最后一句話中,他們提出了對(duì) GPT 系列模型未來(lái)的期望:
These findings suggest a promising path towards building language processing systems which learn to perform tasks from their naturally occurring demonstrations.
后來(lái)一系列事情的發(fā)展也證明了他們確實(shí)是一直朝著這個(gè) promising path 的方向在前進(jìn) 。如果說(shuō)在 2018 年,GPT 初代模型出來(lái)的時(shí)候,GPT 的生成式預(yù)訓(xùn)練還面臨著被 BERT 這類以‘提取特征’為目地的預(yù)訓(xùn)練模型在各方面碾壓,那么在 GPT-2 中的發(fā)現(xiàn),給了生成式預(yù)訓(xùn)練一個(gè) BERT 類模型無(wú)法替代的潛在優(yōu)勢(shì),即語(yǔ)言模型任務(wù)所帶來(lái)的多任務(wù)能力,且這種多任務(wù)能力是無(wú)需標(biāo)注數(shù)據(jù)的 。
當(dāng)然,在那個(gè)時(shí)間點(diǎn)上,生成式的技術(shù)路徑依然面臨風(fēng)險(xiǎn)和挑戰(zhàn) 。畢竟當(dāng)時(shí)的 GPT-2 在各任務(wù)上的表現(xiàn)還是差于經(jīng)過(guò)微調(diào)的模型 , 這導(dǎo)致了 GPT-2 雖然有著翻譯、摘要等等能力,但效果太差以至于無(wú)法實(shí)際使用 。因此,如果在當(dāng)時(shí)想要一個(gè)可用的翻譯模型,最好的選擇依然是老老實(shí)實(shí)用標(biāo)注數(shù)據(jù)訓(xùn)練一個(gè)專門(mén)用來(lái)翻譯的模型 。
GPT-3 , 數(shù)據(jù)飛輪的開(kāi)始
從 ChatGPT 時(shí)代往回看,也許 OpenAI 在 GPT-2 中的發(fā)現(xiàn)確實(shí)堅(jiān)定了他們對(duì) GPT 系列模型的信心,并決定加大研發(fā)投入力度 。因?yàn)樵陔S后的 2020 年他們發(fā)布了 1750 億參數(shù)量的 GPT-3 , 一個(gè)即便以現(xiàn)在的眼光去看也大得讓人驚嘆的模型 。雖然 OpenAI 沒(méi)有明確公開(kāi)訓(xùn)練這個(gè)模型的費(fèi)用,但大家的估算是當(dāng)時(shí)花了 1200 萬(wàn)美元 。同時(shí)公開(kāi)的還有一篇長(zhǎng)達(dá) 60 多頁(yè)的論文(Language Models are Few-Shot Learners),其中詳細(xì)闡述了這個(gè)新的龐然巨物所展示出來(lái)的新能力 。最重要的發(fā)現(xiàn)莫過(guò)于論文標(biāo)題中所說(shuō)的 , 語(yǔ)言模型具有小樣本(few-shot)學(xué)習(xí)的能力 。
小樣本學(xué)習(xí)是一個(gè)機(jī)器學(xué)習(xí)領(lǐng)域的專業(yè)術(shù)語(yǔ),但它有著很樸素的理念,即‘人類是可以通過(guò)少量的幾個(gè)例子就學(xué)會(huì)一個(gè)新的語(yǔ)言任務(wù)’ 。想象一下在語(yǔ)文課上學(xué)習(xí)怎么掌握‘把’字句換成‘被’字句樣(雨把衣服淋濕了 —— 衣服被雨淋濕了)的情形 , 老師會(huì)給出幾個(gè)例子,同學(xué)們就能夠掌握這項(xiàng)能力 。
但對(duì)于深度學(xué)習(xí)模型來(lái)說(shuō),它通常需要學(xué)習(xí)(訓(xùn)練)成千上萬(wàn)的例子才能掌握一項(xiàng)新的能力,但大家發(fā)現(xiàn) GPT-3 卻像人類一樣具有類似的能力 。而且重點(diǎn)在于 , 只需要給它展示幾個(gè)例子,它就會(huì)‘有樣學(xué)樣’地完成例子給出的任務(wù),而不需要進(jìn)行額外的訓(xùn)練(即不需要進(jìn)行常規(guī)訓(xùn)練中的梯度反傳和參數(shù)更新) 。后來(lái)的研究表明 , 這種能力是巨型模型所特有的,被業(yè)內(nèi)叫做‘在上下文中學(xué)習(xí)’(in context learning)的能力 。
GPT-3 論文中所展示的英語(yǔ)翻譯法語(yǔ)的 In context learning 能力 。
實(shí)際上,小樣本學(xué)習(xí)能力本身并不是很驚人的發(fā)現(xiàn) 。畢竟業(yè)內(nèi)一直都在對(duì)小樣本學(xué)習(xí)進(jìn)行研究 , 很多專攻小樣本學(xué)習(xí)的模型都有出色的小樣本學(xué)習(xí)能力 。但 GPT-3 展示出來(lái)的這種‘在上下文中學(xué)習(xí)’的小樣本能力卻非常出人意料,其原因也和 GPT-2 所展示的多任務(wù)能力一樣:
GPT-3 并沒(méi)有為了獲得小樣本的能力而在訓(xùn)練數(shù)據(jù)、訓(xùn)練方式上做特別的設(shè)計(jì),它依然只是一個(gè)用語(yǔ)言模型任務(wù)訓(xùn)練的生成式模型;
GPT-3 的小樣本能力是以‘在上下文中學(xué)習(xí)’的方式展現(xiàn)出來(lái)的 。換句話說(shuō) , 想讓它獲得新的能力,不需要對(duì)它再訓(xùn)練,而只需要給它看幾個(gè)示范的例子 。
除了這個(gè)能力以外,GPT-3 還展示出了優(yōu)秀的文本生成能力,相比 GPT-2,它生成的內(nèi)容更加流暢,而且可以生成很長(zhǎng)的內(nèi)容 。這些能力綜合體現(xiàn)在一個(gè)模型上 , 讓 GPT-3 在當(dāng)時(shí)成為了大家的關(guān)注焦點(diǎn),它也成為 OpenAI 正式對(duì)外提供服務(wù)的模型 。
但隨著這個(gè)模型服務(wù)的開(kāi)放,越來(lái)越多的人嘗試使用這個(gè)模型 。從這時(shí)起 , OpenAI 通過(guò)開(kāi)放給公眾的方式,同時(shí)也在收集著更具有多樣性的數(shù)據(jù)(用戶使用時(shí)輸入的內(nèi)容可能會(huì)被用于模型的訓(xùn)練,這一點(diǎn)是寫(xiě)在用戶條款中的),這些數(shù)據(jù)在后來(lái)的模型迭代中也發(fā)揮著重要的作用 。自此 GPT 系列模型的數(shù)據(jù)飛輪便轉(zhuǎn)動(dòng)了起來(lái),越多優(yōu)質(zhì)的用戶數(shù)據(jù) , 迭代出效果越好的模型 。
與 ChatGPT 不同的是,GTP-3 并不是采用對(duì)話的形式交互的模型,而是一個(gè)文本的續(xù)寫(xiě)模型(也就是在你輸入的文字后面接著往下寫(xiě)),因此它并不具備如今的 ChatGPT 所擁有的多輪對(duì)話能力 。但它已經(jīng)能夠干很多的事情,例如編寫(xiě)故事、給郵件做自動(dòng)補(bǔ)全等等 。但同時(shí) , 大家也慢慢發(fā)現(xiàn)了一些問(wèn)題,例如它會(huì)一本正經(jīng)地輸出不符合事實(shí)的內(nèi)容,并且會(huì)輸出一些有害的言論等等 。這是這種文本生成模型最突出的弊端,雖然經(jīng)過(guò)多次迭代,但 ChatGPT 如今也依然面臨類似的問(wèn)題 。
CodeX,讓計(jì)算機(jī)自己寫(xiě)代碼
OpenAI 在對(duì) GPT-3 的研究中還有一個(gè)意外的發(fā)現(xiàn),它能夠根據(jù)一些注釋生成很簡(jiǎn)單的代碼 。因此在隨后的 2021 年,他們對(duì)生成代碼這件事情進(jìn)行了專門(mén)的研究投入,并發(fā)布了 CodeX 模型 。它可以看作是一個(gè)有著代碼專精能力的 GPT 模型,能夠根據(jù)自然語(yǔ)言輸入生成比較復(fù)雜的代碼 。
從外部視角來(lái)看,我們無(wú)法判斷代碼生成的研究與 GPT 系列模型的研發(fā)是否在同時(shí)進(jìn)行 。但放在當(dāng)時(shí) , 讓模型具有生成代碼的能力,從實(shí)用化的角度來(lái)說(shuō)確實(shí)更加具有意義 , 畢竟 GPT-3 還未擁有如今 ChatGPT 這般強(qiáng)悍的能力 。另一方面,讓模型去生成代碼也能規(guī)避它生成有危害文本內(nèi)容帶來(lái)的風(fēng)險(xiǎn) 。
在 CodeX 論文中提及了幾個(gè)要點(diǎn),首先是讓經(jīng)過(guò)文本數(shù)據(jù)預(yù)訓(xùn)練的 GPT 模型在專門(mén)的代碼數(shù)據(jù)(數(shù)據(jù)來(lái)自 github 的開(kāi)源代碼,一共 159G)上訓(xùn)練確實(shí)能夠明顯提升模型對(duì)代碼的理解和輸出能力 。其次是論文中用的是一個(gè) 120 億參數(shù)的‘小’模型,這個(gè)信息從側(cè)面反映出 OpenAI 內(nèi)部除了對(duì)外開(kāi)放接口的 1750 億參數(shù)的 GPT-3 模型外 , 還有別的不同大小的模型版本 。
而加入代碼訓(xùn)練,讓模型獲得理解和生成代碼的決定,原本的初衷也許只是希望 GPT 能夠多一種應(yīng)用場(chǎng)景 。它看似與 GPT 系列模型在理解和運(yùn)用自然語(yǔ)言的能力沒(méi)有太大的聯(lián)系,但根據(jù)后續(xù)的研究(詳細(xì)的分析請(qǐng)參考文章《拆解追溯 GPT-3.5 各項(xiàng)能力的起源》),增加對(duì)代碼數(shù)據(jù)的訓(xùn)練很有可能觸發(fā)了后來(lái)的 GPT 模型在自然語(yǔ)言上的復(fù)雜推理和思維鏈的能力 。
也許在 OpenAI 做 CodeX 之初并沒(méi)有預(yù)料到會(huì)有這樣的結(jié)果 , 但就像他們一直使用文本生成任務(wù)來(lái)做 GPT 模型,然后在 GPT-2 和 GPT-3 中‘解鎖’了‘多任務(wù)的能力’和‘在上下文中學(xué)習(xí)的能力’那樣,代碼數(shù)據(jù)的引入又一次讓他們獲得了意料之外的收獲 。雖然看上去似乎有一些偶然,但對(duì)技術(shù)路線的前瞻性認(rèn)知,加上堅(jiān)持與持續(xù)的投入顯然是一個(gè)至關(guān)重要的因素 。
InstructGPT,讓 GPT 好好說(shuō)話
在前面我們提到了 GPT-3 雖然已經(jīng)有很強(qiáng)的能力,但上線以后隨著使用的人越來(lái)越多,也發(fā)現(xiàn)了很多問(wèn)題,最嚴(yán)重的應(yīng)該要數(shù)‘一本正經(jīng)地胡說(shuō)八道’和‘輸出帶有危害性的內(nèi)容’這兩點(diǎn)了 。雖然在 2021 年 OpenAI 似乎暫時(shí)將重點(diǎn)放在了讓模型理解和生成代碼這件事情上,但他們應(yīng)該一直在嘗試解決 GPT-3 的這些問(wèn)題 。
在 2022 年初,OpenAI 發(fā)表了 InstructGPT 的論文(Training language models to follow instructions with human feedback),從中我們可以一窺解決這些問(wèn)題的方法 。論文的核心理念是讓模型接受人類的教導(dǎo)(反?。庖壞閽詒晏庵芯鴕丫諉饕辶?。
GPT-3 之所以會(huì)出現(xiàn)‘一本正經(jīng)地胡說(shuō)八道’和‘輸出有害的內(nèi)容’這樣的問(wèn)題,其根源來(lái)自于它所使用的訓(xùn)練數(shù)據(jù) 。像 GPT-3 這樣的龐然大物,對(duì)數(shù)據(jù)的需求量是海量的 。我們從 GPT-3 的論文中可以找到它的數(shù)據(jù)來(lái)源,大致可以劃分為三類:網(wǎng)頁(yè)內(nèi)容、百科內(nèi)容以及書(shū)籍 。雖然網(wǎng)頁(yè)內(nèi)容的量非常大,但也非常‘臟、亂、差’,自然會(huì)包含很多非真實(shí)性和有害的內(nèi)容 。GPT-3 在這些數(shù)據(jù)上進(jìn)行訓(xùn)練,自然也就學(xué)到了這些東西 。
但作為一款對(duì)外提供服務(wù)的產(chǎn)品 , GPT-3 的回答應(yīng)該更小心一些 。要解決這個(gè)問(wèn)題,其中的一難點(diǎn)在于怎么去定義模型應(yīng)該怎么說(shuō)話 。因?yàn)樯赡P偷妮敵鰞?nèi)容是自然語(yǔ)言本身,而不是一個(gè)分類的標(biāo)簽或一個(gè)實(shí)體名詞這種有明確的、客觀對(duì)錯(cuò)的內(nèi)容 。沒(méi)有明確的對(duì)錯(cuò),就導(dǎo)致無(wú)法像訓(xùn)練經(jīng)典的 NLP 模型那樣直接針對(duì)目標(biāo)設(shè)計(jì)訓(xùn)練任務(wù) 。
而 InstructGPT 給出的解決思路是非常直接的,既然對(duì)于‘好的回答’這個(gè)評(píng)價(jià)指標(biāo)有很多不同的影響因素,這些因素又相互交織在一起 , 那就讓人來(lái)教它怎么寫(xiě)回答 。因?yàn)槿祟愂潜容^善于處理這種‘既有明確的要求,又有模糊的范圍’的問(wèn)題的 , 讓真人寫(xiě)一些‘優(yōu)秀范例’,讓模型去學(xué)習(xí)這些‘優(yōu)秀范例’,這正是 InstructGPT 提出的總體思路 。
具體而言 , InstructGPT 提出了兩個(gè)階段的路徑來(lái)讓 GPT 學(xué)習(xí)人類給出的‘優(yōu)秀范例’,第一階段是監(jiān)督學(xué)習(xí),第二階段是強(qiáng)化學(xué)習(xí) 。在第一階段中(對(duì)應(yīng)下圖中最左邊的 Step 1) , 讓真人根據(jù)不同的 Prompt(粗淺可以認(rèn)為是我們使用 ChatGPT 時(shí),在對(duì)話框里輸入的那條文本,在業(yè)界這個(gè)東西叫做指令)寫(xiě)真實(shí)的、無(wú)害的、有用的回答 。實(shí)際操作過(guò)程中,為了保證這些內(nèi)容的質(zhì)量 , 會(huì)給寫(xiě)回答的標(biāo)注人員一些規(guī)范性的指引,然后讓已經(jīng)經(jīng)過(guò)預(yù)訓(xùn)練的 GPT 模型在這些人類編輯的數(shù)據(jù)上繼續(xù)訓(xùn)練 。這一階段可以看作是對(duì)模型的一種‘規(guī)訓(xùn)’,用一個(gè)不嚴(yán)謹(jǐn)?shù)念惐葋?lái)說(shuō) , 就像語(yǔ)文老師讓你默寫(xiě)優(yōu)秀范文那樣 。
圖片來(lái)自 InstructGPT 論文,提出通過(guò)監(jiān)督式的指令微調(diào)人類反饋的強(qiáng)化學(xué)習(xí)來(lái)讓模型的輸出變得合理 。
第二階段是強(qiáng)化學(xué)習(xí),技術(shù)上分為兩步 。第一步(對(duì)應(yīng)上圖中間的 Step 2)是讓被‘規(guī)訓(xùn)’后的模型根據(jù)不同的 Prompt 生成多個(gè)不同的回答 , 并由人來(lái)給這些回答按照好與差的標(biāo)準(zhǔn)來(lái)排序 。然后用這些標(biāo)注了優(yōu)劣之分的數(shù)據(jù)訓(xùn)練一個(gè)打分模型,讓它可以自動(dòng)給更多的數(shù)據(jù)進(jìn)行排序打分 。強(qiáng)化學(xué)習(xí)階段的第二步(對(duì)應(yīng)上圖中右邊的 Step 3)就是利用這個(gè)打分模型作為強(qiáng)化學(xué)習(xí)中的環(huán)境反饋,以策略梯度(Policy Gradient , 準(zhǔn)確地說(shuō)是 PPO 算法)的方式對(duì)已經(jīng)‘規(guī)訓(xùn)’后的 GPT 模型進(jìn)行訓(xùn)練 。整個(gè)第二階段的過(guò)程可以看作是對(duì)模型的一種‘強(qiáng)化’,再用一個(gè)不嚴(yán)謹(jǐn)?shù)念惐葋?lái)說(shuō),就像語(yǔ)文老師給你寫(xiě)的作文打分,讓你從分?jǐn)?shù)中分辨什么是好與不好 , 然后不斷進(jìn)步 。
因此,用一種非常不嚴(yán)謹(jǐn),但普通人或許也能夠理解的方式來(lái)說(shuō),InstructGPT 先是讓一個(gè)‘口無(wú)遮攔’的 GPT 通過(guò)‘默寫(xiě)人類的優(yōu)秀范文’的方式初步學(xué)會(huì)‘好好說(shuō)話’,然后再‘給它獨(dú)自寫(xiě)出來(lái)的東西打個(gè)分,讓它回去好好領(lǐng)悟,繼續(xù)進(jìn)步’ 。當(dāng)然 , 在技術(shù)上牽涉事情會(huì)更復(fù)雜一些,比如‘優(yōu)秀范文’的具體規(guī)范和數(shù)量等數(shù)據(jù)上的問(wèn)題,以及強(qiáng)化學(xué)習(xí)中打分模型的選擇,算法參數(shù)的設(shè)置等算法上的問(wèn)題,都會(huì)對(duì)最后的效果產(chǎn)生影響 。但最終的結(jié)果表明,這種方式是非常有效的,論文中也指出一個(gè)通過(guò)上述方式訓(xùn)練出來(lái)的 13 億的小模型,效果就能夠超過(guò)沒(méi)有經(jīng)過(guò)這種訓(xùn)練的更大的模型 。
另外論文中還有一些非常值得一提的內(nèi)容 。首先是關(guān)于 Prompt 的一些發(fā)現(xiàn) 。InstructGPT 訓(xùn)練時(shí)所使用的 Prompt 主要由兩部分構(gòu)成,一部分是專門(mén)的 AI 訓(xùn)練師編寫(xiě)的,另一部分自來(lái) OpenAI 的模型在線服務(wù)期間,由用戶使用中編寫(xiě)的內(nèi)容,這時(shí)數(shù)據(jù)飛輪的作用就體現(xiàn)了 。可以發(fā)現(xiàn),無(wú)論是哪種 , 這些 Prompt 都是由真人寫(xiě)出來(lái)的,雖然文章中沒(méi)有對(duì)這些 Prompt 的具體涵蓋范圍、分布情況以及提問(wèn)的方式展開(kāi)詳細(xì)的分析,但可以合理地猜測(cè)這些 Prompt 具有一定的多樣性和較高的質(zhì)量 。其實(shí)文章中對(duì)比了使用這些真人編寫(xiě)的 Prompt 訓(xùn)練的模型和使用一些開(kāi)源 NLP 任務(wù)數(shù)據(jù)集中構(gòu)建的 Prompt(例如 T0 數(shù)據(jù)集、FLAN 數(shù)據(jù)集)訓(xùn)練出來(lái)的模型,結(jié)論是由真人編寫(xiě) Prompt 訓(xùn)練出來(lái)的模型 , 給出的答案更加能被評(píng)測(cè)的人接受 。
另外一點(diǎn)是關(guān)于訓(xùn)練好的模型對(duì)新的 Prompt 的泛化能力的問(wèn)題,可想而知的是,如果訓(xùn)練完成的模型無(wú)法產(chǎn)生 Prompt 的泛化能力,那么現(xiàn)在 ChatGPT 所表現(xiàn)出來(lái)的,幾乎百問(wèn)百答的能力是不太可能產(chǎn)生的 。因?yàn)樵谀P妥鑫⒄{(diào)的階段 , 即便是再多的數(shù)據(jù),也不可能把人們有可能會(huì)輸入的內(nèi)容都覆蓋完整 。而 InstrctGPT 論文中點(diǎn)明了文中所采用的方法是可以產(chǎn)生 Prompt 的泛化能力的 。
之所以花了更多的文字對(duì) InstructGPT 做介紹,因?yàn)楦鶕?jù) ChatGPT 官方頁(yè)面的介紹,InstructGPT 中的方法正是用來(lái)訓(xùn)練 ChatGPT 的方法 , 不同的只是 ChatGPT 使用了對(duì)話式的數(shù)據(jù)組織方式 。
GPT-3.5 時(shí)代和 ChatGPT 的誕生
在隨后的時(shí)間內(nèi),OpenAI 發(fā)布了多個(gè)被稱為 GPT-3.5 系列的模型,雖然這些模型并未有相關(guān)的論文跟隨發(fā)表,但根據(jù)這篇文章的分析,GPT-3.5 系列應(yīng)該是融合了 OpenAI 在 GPT-3 時(shí)代積累的技術(shù)、數(shù)據(jù)以及經(jīng)驗(yàn)開(kāi)發(fā)出來(lái)的 。由于沒(méi)有詳細(xì)的官方公開(kāi)信息參考 , 關(guān)于這些模型的具體資料,外界主要是通過(guò)分析使用的體驗(yàn)、相關(guān)的技術(shù)論文以及 OpenAI 的 API 文檔介紹來(lái)進(jìn)行推測(cè) 。
如何一鍵升降四個(gè)車(chē)窗?車(chē)窗一鍵升降怎么按演示車(chē)窗一鍵升降是指汽車(chē)車(chē)窗玻璃可用一次鍵控制升降就位的系統(tǒng),目前既有通過(guò)車(chē)窗按鈕來(lái)控制,也有可以通過(guò)智能鑰匙的開(kāi)關(guān)所控制 。
根據(jù)分析,GPT-3.5 系列的模型有可能并不是在 GPT-3 上繼續(xù)微調(diào)而來(lái),而很可能是將代碼和自然語(yǔ)言的數(shù)據(jù)融合在一起 , 重新從零開(kāi)始訓(xùn)練了一個(gè)基礎(chǔ)模型 。這個(gè)模型可能比 GPT-3 的 1750 億參數(shù)量更大,它在 OpenAI 的 API 中被命名為 codex-davinci-002 。然后在這個(gè)基礎(chǔ)模型上,通過(guò)指令微調(diào)和人類反饋得到了一系列后續(xù)的模型,包括 ChatGPT 。
GPT 系列模型的發(fā)展路徑 。
簡(jiǎn)要地說(shuō),從 code-davince-002 這個(gè)模型開(kāi)始,經(jīng)過(guò)有監(jiān)督的指令微調(diào)得到 text-davinci-002 。以及后續(xù)的 text-davinci-003 和 ChatGPT,也是在 GPT-3.5 系列的某個(gè)模型上通過(guò)指令微調(diào)以及人類強(qiáng)化學(xué)習(xí)反饋得到的 。并且 text-davinci-003 和 ChatGPT 都是在 2022 年 11 月發(fā)布的,不同的是 text-davinci-003 和 GPT-3 一樣,是一個(gè)文本補(bǔ)全模型 。而根據(jù) ChatGPT 的官方介紹,它是通過(guò)將過(guò)往的數(shù)據(jù)處理成對(duì)話交互的形式,并增加了新的對(duì)話數(shù)據(jù)訓(xùn)練出來(lái)的 。
至此,我們大致回顧了 OpenAI GPT 系列模型從 2018 年的初代 GPT 到現(xiàn)在的 ChatGPT,一路發(fā)展迭代的過(guò)程 。在這個(gè)過(guò)程中,OpenAI 一直保持著對(duì)生成式預(yù)訓(xùn)練模型這一技術(shù)路徑的‘執(zhí)拗’ , 并且也一直從不斷發(fā)展的 NLP 技術(shù)中吸納新的方法,從最初的 Transformer 模型結(jié)構(gòu) , 到后來(lái)的指令微調(diào)(Prompt tuning)等技術(shù)的出現(xiàn),這些因素共同促成了如今 ChatGPT 的成功 。有了對(duì) GPT 系列模型發(fā)展的了解 , 我們可以再回過(guò)頭來(lái)看看如今的 ChatGPT 。
3、走近再看 ChatGPT
在第一章節(jié)中我們闡述了 ChatGPT 出圈的原因主要是:‘它以流暢、符合邏輯的自然語(yǔ)言來(lái)反饋人類對(duì)它輸入的自然語(yǔ)言’,從而給與它交流的人帶來(lái)了很強(qiáng)的‘智能感’ 。在第二章節(jié)中通過(guò)回顧 GPT 系列模型的發(fā)展歷史來(lái)了解 ChatGPT 成功之路 。而這一章節(jié)會(huì)嘗試以盡可能讓圈外人都能理解的方式,稍微深入一些技術(shù)的內(nèi)容 , 并且探討一下當(dāng)前的一些大型文本生成式模型為什么未能做到相同的效果 。這一部份的主要參考來(lái)自于《深入理解語(yǔ)言模型的突現(xiàn)能力》和《拆解追溯 GPT-3.5 各項(xiàng)能力的起源》這兩篇文章以及相關(guān)的一些論文 , 建議希望詳細(xì)了解細(xì)節(jié)的讀者閱讀原文 。
雖然在第一章中指出,ChatGPT 所帶來(lái)的驚艷效果是由許多不同的 NLP 任務(wù)綜合體現(xiàn)出來(lái)的,但在分析它背后的技術(shù)時(shí),還是通過(guò)將它的能力進(jìn)行拆解會(huì)更加清晰明了一些 。總體而言,ChatGPT 所體現(xiàn)出來(lái)的能力可以大致劃分為以下幾個(gè)維度:
- 文本生成的能力:ChatGPT 的所有輸出都是即使生成出來(lái)的文本,所以文本生成的能力是它最基本的要求 。
這一項(xiàng)能力實(shí)際上是來(lái)自于它的訓(xùn)練方式 , ChatGPT 在預(yù)訓(xùn)練時(shí),是一個(gè)標(biāo)準(zhǔn)的自回歸語(yǔ)言模型任務(wù),這是 OpenAI 所有 GPT 系列模型的基底 。所謂的自回歸語(yǔ)言模型任務(wù) , 通俗的理解是這樣的:它可以根據(jù)已經(jīng)輸入的文本 , 預(yù)測(cè)下一個(gè) token 應(yīng)該是什么 。這里所說(shuō)的 token , 所代表的是模型所使用的最小單位的字符片段 , 它可以是字(在中文里采用字是很常見(jiàn)的) , 也可以是詞(英文的每個(gè)詞天然地被空格隔開(kāi)了 , 所以常采用詞),甚至是字母 。但現(xiàn)在的方法通常采用的是子詞(subword,介于字母和詞之間,主要的目的是減少詞表數(shù)量) 。但不論是哪種,自回歸語(yǔ)言模型任務(wù)的基本思路都是根據(jù)已經(jīng)輸入的文本,預(yù)測(cè)下一個(gè)要輸出的文本是什么,就像下圖的例子中那樣:
這個(gè)例子中,BOS 代表了輸入的開(kāi)頭 , 而每個(gè) token 是一個(gè)詞 , GPT 模型根據(jù)輸入的‘今天’和 ‘天氣’兩個(gè)詞,預(yù)測(cè)下一個(gè)要輸出的是‘不錯(cuò)’ 。
在訓(xùn)練的時(shí)候,會(huì)準(zhǔn)備很多文本數(shù)據(jù) , 比如網(wǎng)頁(yè)上的文章、各類書(shū)籍等等,只要是正常的文字內(nèi)容,都可以用來(lái)訓(xùn)練 。值得說(shuō)明的是,這種數(shù)據(jù)不需要進(jìn)行額外的人工標(biāo)注,因?yàn)檫@類數(shù)據(jù)本來(lái)就是人寫(xiě)的,模型要做的事情就是根據(jù)這些人寫(xiě)出的文本,去學(xué)習(xí)‘給定了前面的文字,接著這些文字后面這個(gè)地方應(yīng)該是什么’的問(wèn)題 。這便是業(yè)內(nèi)所稱的‘無(wú)監(jiān)督訓(xùn)練’ , 實(shí)際上模型并不是真的沒(méi)有監(jiān)督(不然模型學(xué)什么呢?),只是它的數(shù)據(jù)不需要額外的人工標(biāo)注 。也正因?yàn)檫@個(gè)任務(wù)是不需要額外標(biāo)注的,因此可以‘免費(fèi)’獲得大量的數(shù)據(jù),得益于互聯(lián)網(wǎng)的普及 , 可以‘輕松地’獲得海量的由真人寫(xiě)出的文本內(nèi)容用來(lái)訓(xùn)練 。這一點(diǎn)也是 GPT 系列模型的特點(diǎn)之一,用海量的數(shù)據(jù),去訓(xùn)練很大的模型 。
那么在我們使用 ChatGPT 的時(shí)候,它是怎么工作的呢?其實(shí)也和它的訓(xùn)練方式一樣,模型會(huì)根據(jù)我們?cè)趯?duì)話框里輸入的內(nèi)容,去預(yù)測(cè)接在這些內(nèi)容的下一個(gè) token 是什么,得到這個(gè) token 后,會(huì)將它與前面的內(nèi)容拼接成一個(gè)新的文本給模型,模型再預(yù)測(cè)下一個(gè) token,如此反復(fù),直到滿足某個(gè)條件后停止 。這個(gè)停止的條件有很多不同的設(shè)計(jì)方式,比如可以是輸出的文本達(dá)到特定的長(zhǎng)度,又或者是模型預(yù)測(cè)出某個(gè)用來(lái)代表停止的特殊 token 。另外值得一提的是 , 模型預(yù)測(cè)下一個(gè) token 時(shí) , 其實(shí)背地里是一個(gè)采樣的過(guò)程 。換句話說(shuō),模型在預(yù)測(cè) token 時(shí),輸出的其實(shí)是所有可能出現(xiàn)的 token 的概率 , 然后從這個(gè)概率分布里采樣一個(gè) token 。因此 , 在使用 ChatGPT 時(shí),會(huì)發(fā)現(xiàn)即便對(duì)于相同的輸入,它的輸出每次也會(huì)不一樣,因?yàn)樵诒车乩锼蓸恿瞬灰粯拥?token 作為輸出 。
了解這些之后,可以再回過(guò)頭來(lái)思考一下模型在學(xué)什么 。它在學(xué)習(xí)怎么回答問(wèn)答嗎?又或者說(shuō)它在學(xué)習(xí)怎么理解自然語(yǔ)言所蘊(yùn)含的信息、邏輯、情感?還是說(shuō)它在學(xué)習(xí)海量的知識(shí)?從訓(xùn)練任務(wù)的設(shè)計(jì)來(lái)看,似乎都沒(méi)有,它只是從海量的文本數(shù)據(jù)里,學(xué)習(xí)了‘根據(jù)輸入的這些文本,一個(gè)人類在后面會(huì)接著寫(xiě)什么’這件事 。但正是這樣的模型,在‘進(jìn)化’到 ChatGPT 時(shí),它卻掌握了豐富的知識(shí)、復(fù)雜的邏輯推理等等 , 它似乎掌握了一個(gè)人類運(yùn)用語(yǔ)言所需要的幾乎所有的能力 。這是一件非常神奇的事情 , 它的‘進(jìn)化’歷程將會(huì)在下一章節(jié)中做更加深入的介紹 。
- 豐富的知識(shí)儲(chǔ)備:ChatGPT 能夠正確回答非常多的問(wèn)題,包括歷史、文學(xué)、數(shù)學(xué)、物理、編程等等 。因?yàn)槟壳鞍姹镜?ChatGPT 并沒(méi)有利用外部知識(shí),因此這些知識(shí)的內(nèi)容是‘儲(chǔ)存’在模型內(nèi)部的 。
ChatGPT 所擁有的豐富知識(shí)儲(chǔ)備 , 來(lái)自于它的訓(xùn)練數(shù)據(jù) , 以及它足夠大的體量 , 以便學(xué)會(huì)這些內(nèi)容 。雖然官方并沒(méi)有公開(kāi) ChatGPT 所使用的訓(xùn)練數(shù)據(jù)的具體細(xì)節(jié),但從它的前身 GPT-3 的論文可以推測(cè) , 這些數(shù)據(jù)大致可以分為三個(gè)大的范疇:網(wǎng)頁(yè)內(nèi)容、書(shū)籍內(nèi)容以及百科內(nèi)容 。可想而知的是 , 這些內(nèi)容天然地蘊(yùn)含了大量的知識(shí),百科和書(shū)籍自然不必說(shuō),而網(wǎng)頁(yè)內(nèi)容也包含了許多新聞、評(píng)論、觀點(diǎn)等,并且網(wǎng)頁(yè)也包括了很多專門(mén)的問(wèn)答垂直類網(wǎng)站,這些都是 ChatGPT 的知識(shí)來(lái)源 。在官方的介紹里指出 ChatGPT 無(wú)法回答 2021 年以后發(fā)生的事情,因此合理的猜測(cè)是訓(xùn)練的數(shù)據(jù)收集截止到 2021 年 。
但數(shù)據(jù)量只是其中一個(gè)方面,要讓模型‘掌握’這些數(shù)據(jù),其自身的體量是不可能小的 。以 GPT-3 為例,它有 1750 億參數(shù),可以粗淺地理解為,這些數(shù)據(jù)的內(nèi)容以及模型的各項(xiàng)能力,都以這一個(gè)個(gè)參數(shù)的具體數(shù)值的形式,固定在了訓(xùn)練完成的模型中 。感性的理解是,假設(shè)一個(gè)模型只有 1 個(gè)參數(shù) , 那它什么也干不了 。更嚴(yán)謹(jǐn)?shù)姆治龊蛯?duì)比可以參考這篇論文《Holistic Evaluation of Language Models》的測(cè)評(píng),方向性的結(jié)論是越大的模型,在需要知識(shí)來(lái)完成的任務(wù)上表現(xiàn)得越好 。
論文地址:https://arxiv.org/pdf/2211.09110.pdf
- 邏輯推理與思維鏈的能力:從第一章圖片中的雞兔同籠的例子可以看出 , ChatGPT 具有很強(qiáng)的邏輯推理能力 。并且它能夠?qū)?fù)雜的內(nèi)容 , 通過(guò)拆解,分成多個(gè)小的步驟,一步步地進(jìn)行推理 , 獲得最后的答案,這種能力被稱為思維鏈 。
從前面的介紹我們知道,模型在訓(xùn)練的時(shí)候并沒(méi)有針對(duì)邏輯推理以及思維鏈做特定的設(shè)計(jì) 。而當(dāng)前的主流觀點(diǎn)認(rèn)為 , 邏輯推理和思維鏈很可能和兩個(gè)因素相關(guān) , 第一個(gè)是模型的體量,第二個(gè)是模型是否在代碼數(shù)據(jù)上進(jìn)行過(guò)訓(xùn)練 。
關(guān)于模型體量與推理、思維鏈能力的關(guān)系,在《深入理解語(yǔ)言模型的突現(xiàn)能力》中有對(duì)應(yīng)的介紹 。下面這張圖展示了思維鏈能力與模型體量的關(guān)系 。
不同模型不同尺寸的思維鏈效果對(duì)比,圖來(lái)自論文 。GSM8K,SVAMP 和 MAWPS 是三個(gè)需要邏輯推理的數(shù)學(xué)應(yīng)用題數(shù)據(jù)集,LaMDA,GPT 和 PaLM 分別是 3 個(gè)不同的模型 。
簡(jiǎn)要地說(shuō),圖表中給出了三個(gè)不同的模型,在三個(gè)數(shù)學(xué)應(yīng)用題數(shù)據(jù)集上的答對(duì)率 。而值得關(guān)注的是以下幾個(gè)方面:
思維鏈的能力(藍(lán)色實(shí)線)在模型體量夠大的時(shí)候產(chǎn)生了效果上的突變;
思維鏈的能力在模型夠大的前提下,效果超過(guò)了標(biāo)準(zhǔn)的指令(Standard prompting,黑色實(shí)線)方法;
思維鏈的能力在模型夠大的情況下,可以接近甚至超過(guò)有監(jiān)督的方法(橙色虛線) 。
用通俗的話來(lái)說(shuō),就是在模型足夠大的時(shí)候 , 思維鏈的能力突然展現(xiàn)了出來(lái),能夠達(dá)到、甚至超過(guò)那些在推理數(shù)據(jù)集上專門(mén)進(jìn)行有監(jiān)督訓(xùn)練的模型 。這個(gè)圖也許部分解釋了現(xiàn)在我們看到的 ChatGPT 所具有的優(yōu)異推理和思維鏈能力 。
而另一個(gè)關(guān)于推理以及思維鏈能力的產(chǎn)生因素,與模型是否在代碼數(shù)據(jù)上做過(guò)訓(xùn)練有關(guān) 。目前這一點(diǎn)只是一個(gè)推論 , 《拆解追溯 GPT-3.5 各項(xiàng)能力的起源》中的分析表明體量類似的大型模型 , 沒(méi)有在代碼上做過(guò)訓(xùn)練的話,只有很弱或幾乎沒(méi)有思維鏈和推理能力 。而 ChatGPT 確實(shí)是在代碼數(shù)據(jù)上進(jìn)行過(guò)訓(xùn)練的,這一點(diǎn)從它能夠理解并生成代碼也可以看出來(lái) 。在第二章回顧發(fā)展歷程中提到了,OpenAI 在 2021 年就發(fā)布了專門(mén)針對(duì)代碼的 CodeX 模型,將代碼數(shù)據(jù)加入 GPT 的訓(xùn)練數(shù)據(jù)應(yīng)該就是從那時(shí)開(kāi)始的 。
- 按照人的提問(wèn)或者指令給予回復(fù)的能力:ChatGPT 除了可以用狹義的基于‘問(wèn)答’形式的交互以外,還能夠按照輸入的要求進(jìn)行回復(fù) 。例如,在應(yīng)對(duì)‘幫我寫(xiě)一封信’這類指令式的要求時(shí),它同樣也展現(xiàn)出了優(yōu)秀的能力 。這種能力讓它不僅是一個(gè)提供答案的‘高級(jí)搜索引擎’,更是一種可以用自然語(yǔ)言來(lái)交互的文字處理工具 。
雖然目前大眾普遍把目光聚焦在將 ChatGPT 作為一種類搜索引擎的工具 , 但查閱相關(guān)知識(shí)并給予回答并不是它的唯一能力 。實(shí)際上,單就 ChatGPT 本身而言,回答知識(shí)性的問(wèn)題并不是它的強(qiáng)項(xiàng),畢竟它本身的訓(xùn)練數(shù)據(jù)被定格在了 2021 年 。即便用更新的數(shù)據(jù)去訓(xùn)練,但它終究跟不上時(shí)事的變化,因此要將它用作知識(shí)性的問(wèn)答工具,還是需要與搜索引擎等外部知識(shí)源做結(jié)合,就像現(xiàn)在 Bing 做的一樣 。
但換一個(gè)角度來(lái)看,ChatGPT 像是一個(gè)‘語(yǔ)言完備’的文本工具,也就是它能夠按照你給它的要求,完成指定的、可以用文本形式表達(dá)出來(lái)的內(nèi)容,就像下面這個(gè)例子 。
按照給定的計(jì)劃內(nèi)容生成英文郵件進(jìn)行匯報(bào) 。
這里所說(shuō)的‘語(yǔ)言完備’ , 指的是運(yùn)用語(yǔ)言的能力 。可以看出上面這個(gè)例子里,其實(shí)不涉及知識(shí)性的內(nèi)容,因?yàn)樾枰鼘?xiě)的內(nèi)容已經(jīng)提供給它了 。但要寫(xiě)出這封郵件,涉及到的是運(yùn)用語(yǔ)言的能力,比如遣詞造句、語(yǔ)種切換、郵件格式等等 。
現(xiàn)在我們回過(guò)頭來(lái),嘗試分析它的這種‘按照指令完成任務(wù)’的能力是怎么獲得的 。在學(xué)界中 , 這種指令被稱為 prompt,實(shí)際上對(duì)話中的用戶輸入、問(wèn)答中的問(wèn)題也是一種 prompt,因此可以粗淺地理解為 , 在聊天框里輸入的所有內(nèi)容都是 prompt 。如果了解我們?cè)诒菊碌谝还?jié)介紹語(yǔ)言模型的內(nèi)容,那么更嚴(yán)謹(jǐn)一些的說(shuō)法應(yīng)該是‘輸入給模型的上文’都是 prompt 。
ChatGPT 根據(jù)輸入的指令(prompt)進(jìn)行回復(fù)的能力,是來(lái)自于一種被稱為指令微調(diào)的模型訓(xùn)練方式(prompt tuning) 。其實(shí)原理很簡(jiǎn)單,模型依然還是‘根據(jù)輸入的內(nèi)容 , 預(yù)測(cè)下一個(gè) token 是什么’,只是在指令微調(diào)的階段,輸入的內(nèi)容被換成了這些事先寫(xiě)好的 prompt , 而 prompt 后面需要生成的內(nèi)容,則是事先寫(xiě)好的答案 。因此在這一階段和一開(kāi)始所說(shuō)的無(wú)監(jiān)督自回歸語(yǔ)言模型訓(xùn)練,最大的不同在于數(shù)據(jù) 。這里的數(shù)據(jù),也就是 prompt 以及對(duì)應(yīng)的回復(fù),都是人寫(xiě)的,換句話說(shuō),這一階段用的是人工標(biāo)注的數(shù)據(jù)進(jìn)行的監(jiān)督訓(xùn)練 。
提到人工標(biāo)注的數(shù)據(jù),就自然牽涉到了所需要的數(shù)據(jù)量了,因?yàn)槊恳粭l標(biāo)注數(shù)據(jù)都是需要成本的 。如果是不需要標(biāo)注(就像第一階段的訓(xùn)練) , 那么自然有海量的文本數(shù)據(jù)可供訓(xùn)練,但如果要標(biāo)注,那到底需要多少這種數(shù)據(jù)呢?要知道,讓標(biāo)注人員手寫(xiě)一個(gè) prompt,然后再手寫(xiě)一個(gè)幾百字的、真實(shí)詳盡的回答,成本是很高的 。根據(jù)論文《Training language models to follow instructions with human feedback》的介紹,所需要的數(shù)據(jù)其實(shí)不需要太多(相比于無(wú)監(jiān)督階段所使用的數(shù)據(jù)來(lái)說(shuō)) 。雖然具體到 ChatGPT 到底使用了多少?zèng)]有確切的信息公開(kāi) , 但可以確定的是在數(shù)量級(jí)上一定遠(yuǎn)比用來(lái)進(jìn)行無(wú)監(jiān)督訓(xùn)練的網(wǎng)頁(yè)、百科和書(shū)籍所構(gòu)成的數(shù)據(jù)集要小非常多 。
只需要相對(duì)少量的人工標(biāo)注的 prompt 數(shù)據(jù)就能達(dá)到讓模型按照指令做出回復(fù)的目的,這一點(diǎn)背后其實(shí)隱含了一個(gè)現(xiàn)象,在學(xué)界內(nèi)被稱為 prompt 的泛化能力 。可以想象一下,如今全世界都在不停的向 ChatGPT 提問(wèn) , 所提的問(wèn)題也必定是千奇百怪的,這些問(wèn)題其實(shí)就是一個(gè)個(gè)的 prompt 。但用來(lái)對(duì) ChatGPT 進(jìn)行指令微調(diào)的 prompt 肯定不會(huì)有這么多,這說(shuō)明模型在學(xué)習(xí)到了一定量的 prompt 和相應(yīng)的答案以后,它能夠‘舉一反三’地對(duì)它沒(méi)有見(jiàn)過(guò)的 prompt 進(jìn)行回答 , 這就是 prompt 的泛化能力 。文章《拆解追溯 GPT-3.5 各項(xiàng)能力的起源》分析指出,這種泛化能力與在指令微調(diào)階段讓模型學(xué)習(xí)的標(biāo)注數(shù)據(jù)數(shù)量以及多樣性相關(guān) 。
此外,用少量的 prompt 數(shù)據(jù)就能微調(diào)出類似于 ChatGPT 這樣擁有強(qiáng)大能力的模型,背后還隱含了另一個(gè)猜測(cè) , 即模型所表現(xiàn)出來(lái)的各項(xiàng)能力,可能在無(wú)監(jiān)督訓(xùn)練的階段就已經(jīng)存在于模型當(dāng)中了 。其實(shí)這也很好理解,畢竟相比于無(wú)監(jiān)督的數(shù)據(jù),這些人工標(biāo)注的 prompt 數(shù)量太少了,很難想象模型是通過(guò)對(duì)這些僅有的標(biāo)注數(shù)據(jù)學(xué)習(xí)而產(chǎn)生了各種各樣的能力 。從這個(gè)角度來(lái)說(shuō),指令微調(diào)的過(guò)程更多只是讓模型學(xué)會(huì)按一定的規(guī)范來(lái)進(jìn)行回復(fù) , 而它的知識(shí)、邏輯等能力是早已存在的 。
- ‘客觀公正’的能力:如果對(duì) ChatGPT 詢問(wèn)一些有害或者有爭(zhēng)議的問(wèn)題,可以看到 ChatGPT 的回答都是非常‘小心’的,很像是經(jīng)過(guò)訓(xùn)練的新聞發(fā)言人般的回答 。雖然它目前依然做得不夠好 , 但這種能力是 OpenAI 敢將它公開(kāi)作為一款產(chǎn)品使用的核心因素 。
讓模型的輸出符合人類的價(jià)值觀是 OpenAI 一直在做的事情 。早在 2020 年 GPT-3 的時(shí)候,OpenAI 就發(fā)現(xiàn)這種通過(guò)網(wǎng)上的數(shù)據(jù)訓(xùn)練出來(lái)的模型,會(huì)生成帶有歧視、危險(xiǎn)、爭(zhēng)議的內(nèi)容 。作為一個(gè)對(duì)外提供服務(wù)的產(chǎn)品,這些有害的內(nèi)容顯然是不合適的 。而現(xiàn)在的 ChatGPT 在這一點(diǎn)上有著明顯的改善,讓模型做出這種‘行為改變’的主要方法也來(lái)自于 InstructGPT 的論文,更確切地說(shuō) , 是通過(guò)有監(jiān)督的指令微調(diào)加上人類反饋的強(qiáng)化學(xué)習(xí)共同完成的,這一點(diǎn)在第二章中也已經(jīng)做過(guò)介紹了 。
通過(guò)上述的分析可以發(fā)現(xiàn),從技術(shù)方法的角度來(lái)說(shuō),ChatGPT 相關(guān)的內(nèi)容都是已知的 , 但為什么當(dāng)前只有它擁有如此驚艷的表現(xiàn)呢 。實(shí)際上從 ChatGPT 推出之后,NLP 社區(qū)就一直在分析這其中的原因,雖然很多結(jié)論是推測(cè)性的 , 但也為同類模型的國(guó)產(chǎn)化帶來(lái)一些啟示 。
模型體量的因素
能力涌現(xiàn)出現(xiàn)的前提是模型體量達(dá)到一定的規(guī)模,雖然沒(méi)有具體的指標(biāo)指引,但從目前的事實(shí)情況來(lái)看,類似于思維鏈等比較‘高級(jí)’的能力,需要在數(shù)百億參數(shù)量以上的模型中才表現(xiàn)得足夠優(yōu)異 。
數(shù)據(jù)量的因素
模型的大小不是唯一的因素 。DeepMind 在這篇論文《Training Compute-Optimal Large Language Models》提供了一些分析性的結(jié)論,指出訓(xùn)練的數(shù)據(jù)量需要隨著模型的體量相應(yīng)地增加,更確切地說(shuō),是模型訓(xùn)練時(shí)‘見(jiàn)過(guò)的 token’數(shù)量,需要隨著模型體量增加 。
數(shù)據(jù)質(zhì)量的因素
對(duì)于無(wú)監(jiān)督的數(shù)據(jù),數(shù)據(jù)量相對(duì)而言并不是很大的障礙,但數(shù)據(jù)質(zhì)量往往更加容易被忽視 。實(shí)際上在 GPT-3 的論文中 , 就有專門(mén)的內(nèi)容介紹數(shù)據(jù)的處理工作 。為了清洗 GPT-3 的訓(xùn)練數(shù)據(jù),OpenAI 專門(mén)訓(xùn)練了一個(gè)數(shù)據(jù)過(guò)濾模型,來(lái)從海量的網(wǎng)頁(yè)數(shù)據(jù)中獲取更高質(zhì)量的數(shù)據(jù) 。相比而言,與 GPT-3 體量相當(dāng)?shù)囊恍╅_(kāi)源模型,例如 Meta 的 Opt 和 BigScience 的 Bloom,似乎沒(méi)有進(jìn)行這一步清洗 。這也許是這兩個(gè)開(kāi)源模型效果劣于 GPT-3 的原因之一 。
此外,數(shù)據(jù)質(zhì)量的衡量維度不是單一的 , 諸如數(shù)據(jù)的多樣性、內(nèi)容重復(fù)度以及數(shù)據(jù)的分布情況都是需要考慮的因素 。例如雖然 GPT-3 所使用的網(wǎng)頁(yè)、百科、書(shū)籍這三大類數(shù)據(jù)中,網(wǎng)頁(yè)數(shù)據(jù)的總量是最多的,但在訓(xùn)練時(shí)這三類數(shù)據(jù)的采樣并不是按照實(shí)際數(shù)據(jù)的多寡進(jìn)行的 。
另外值得一提的是 , 在指令微調(diào)的階段,采用人工編寫(xiě)指令也許是一個(gè)重要的影響因素 。InstructGPT 的論文明確指出在測(cè)評(píng)過(guò)程中 , 采用人工編寫(xiě)的指令訓(xùn)練出來(lái)的模型,比采用現(xiàn)有的 NLP 數(shù)據(jù)集通過(guò)模版的方式構(gòu)建指令訓(xùn)練出來(lái)的模型有更好的效果 。這也許解釋了在 T0、FLAN 等由 NLP 數(shù)據(jù)集構(gòu)成的指令數(shù)據(jù)集訓(xùn)練出來(lái)的模型為什么效果會(huì)差一些 。
訓(xùn)練過(guò)程的影響
這類巨型模型在訓(xùn)練時(shí)通過(guò)集群進(jìn)行訓(xùn)練,同時(shí)采用數(shù)據(jù)并行、模型并行以及 ZeRO 優(yōu)化器(一種降低訓(xùn)練過(guò)程顯存占用的方法) , 這些方式為訓(xùn)練的穩(wěn)定性引入了更多的變量 。如下這篇分析指出甚至模型是否采用 bfloat16 精度都對(duì)結(jié)果有明顯的影響 。
相信了解了上面的這些內(nèi)容,大家對(duì)復(fù)刻一個(gè)類 ChatGPT 的方式以及會(huì)面臨的問(wèn)題會(huì)有一個(gè)大致的了解 。有幸的是 OpenAI 已經(jīng)證明了這技術(shù)路徑是能夠走通的 , ChatGPT 的出現(xiàn)也確實(shí)正在改變 NLP 技術(shù)的發(fā)展走向 。
4、未來(lái)的展望
ChatGPT 從 2022 年 11 月上線以來(lái),引起了極大的關(guān)注 。相信即便是非專業(yè)領(lǐng)域,甚至是與計(jì)算機(jī)也很少打交道的群體,或多或少地都知道它的存在 , 這個(gè)現(xiàn)象本身就已經(jīng)反映出它的出現(xiàn)有些不同尋常 。圈外的大眾更多的是以好奇、驚訝或者驚嘆的方式來(lái)感性地認(rèn)識(shí)它的出現(xiàn) 。而對(duì)從業(yè)者來(lái)說(shuō),它的出現(xiàn)更多的是對(duì)未來(lái)技術(shù)走向的思考 。
從技術(shù)的角度來(lái)說(shuō),ChatGPT 的出現(xiàn)標(biāo)志著 NLP 領(lǐng)域的又一次范式切換 。之所以說(shuō)是‘又’一次 , 是因?yàn)樵?2018 年,也就是初代 GPT 發(fā)布的那一年,與之同年發(fā)布的 BERT 模型以自身優(yōu)異的表現(xiàn),開(kāi)創(chuàng)了 NLP 的‘預(yù)訓(xùn)練微調(diào)’范式的時(shí)代,具體內(nèi)容在第二章中已經(jīng)做過(guò)介紹了 。這里主要介紹由 ChatGPT 開(kāi)啟的‘文本生成指令’的范式 。具體來(lái)說(shuō) , 就是利用訓(xùn)練好的 ChatGPT 或類似的文本生成模型,通過(guò)輸入適當(dāng)?shù)闹噶睿╬rompt)來(lái)完成某一項(xiàng)具體的場(chǎng)景 。
這種范式與此前的 NLP 技術(shù)應(yīng)用有很大的不同 。不論是早期的利用 LDA、RNN 等統(tǒng)計(jì)模型或很小的深度學(xué)習(xí)模型的時(shí)代,還是后來(lái)利用 BERT 等預(yù)訓(xùn)練配合微調(diào)的時(shí)代,技術(shù)所提供的能力是相對(duì)原子化的,距離實(shí)際的應(yīng)用場(chǎng)景有一定的距離 。
就拿前面舉的讓 ChatGPT 根據(jù)要求寫(xiě)英文郵件的例子,按照此前的做法 , 可能需要先抽取實(shí)體、事件等內(nèi)容(比如時(shí)間、地點(diǎn)、事件等),然后通過(guò)模版或是模型形成郵件的樣式,再通過(guò)一個(gè)翻譯模型轉(zhuǎn)化為英文 。當(dāng)然如果數(shù)據(jù)量足夠訓(xùn)練端到端模型的情況下,也可以跳過(guò)中間的若干步驟 。但不論采用哪種方式,要么需要將最終的場(chǎng)景拆解成原子化的 NLP 任務(wù) , 要么需要對(duì)應(yīng)的標(biāo)注數(shù)據(jù) 。而對(duì)于 ChatGPT 來(lái)說(shuō),只需要一個(gè)合適的指令 。
三個(gè)階段的 NLP 技術(shù)范式 。
這種生成式模型搭配 prompt 的方式,直接略過(guò)了中間的各項(xiàng) NLP 能力組件 , 用最直接的方式解決應(yīng)用場(chǎng)景的問(wèn)題 。在這種范式下,完成終端應(yīng)用的技術(shù)路徑將不再是用單點(diǎn) NLP 能力模塊通過(guò)搭積木的方式組合起來(lái) 。
當(dāng)然 , 這個(gè)過(guò)程不是一蹴而就的,也不意味著 NLP 的單點(diǎn)能力變得不重要 。從測(cè)評(píng)的角度來(lái)說(shuō) , 每一個(gè)單點(diǎn)能力的好壞依然可作為評(píng)價(jià)模型效果的指標(biāo) 。并且,就某些場(chǎng)景來(lái)說(shuō)單點(diǎn)能力依舊是一個(gè)強(qiáng)需求 。例如在訂票系統(tǒng)中本身就需要針對(duì)時(shí)間、地點(diǎn)進(jìn)行提取 。但與此前不同的是,ChatGPT 本身也可以完成單點(diǎn)能力,而不需要使用額外的功能模塊 。
ChatGPT 進(jìn)行信息提取 。
ChatGPT 進(jìn)行情感判斷 。
從這個(gè)角度來(lái)說(shuō),可以把 ChatGPT 看作是一個(gè)以自然語(yǔ)言作為交互媒介的 NLP 工具 。如果說(shuō)在過(guò)去 , 我們是通過(guò)模型數(shù)據(jù)設(shè)計(jì)訓(xùn)練任務(wù)的方式來(lái)完成某項(xiàng) NLP 能力,那么 ChatGPT 則是通過(guò)設(shè)計(jì)指令來(lái)完成這些能力 。
可想而知 , ChatGPT 的出現(xiàn)大大降低了 NLP 技術(shù)的應(yīng)用門(mén)檻 。但它目前還不是全能的 。最重要的一點(diǎn)在于它缺乏準(zhǔn)確可靠的垂直領(lǐng)域知識(shí),為了讓它的回答可靠 , 最直接的方式是為它提供外部的知識(shí)來(lái)源,就像微軟將 Bing 的搜索結(jié)果作為它回答的信息來(lái)源那樣 。
因此,‘傳統(tǒng)’的 NLP 技術(shù)并不會(huì)就此完全消亡,而是會(huì)以‘輔助’的角色,作為目前 ChatGPT 短板的補(bǔ)充,這也許會(huì)是未來(lái) NLP 技術(shù)應(yīng)用的新范式 。
【情感與形式pdf 情感有幾種形式】禿尾鼠的命運(yùn):禿尾鼠生活在澳大利亞,喜歡在陰暗的樹(shù)林中生活,因?yàn)槲舶蜎](méi)有毛而得名 。禿尾鼠并不像其它鼠類那樣靈活 , 看上去行動(dòng)有些遲緩,它們最大的特點(diǎn)是懶,平時(shí)大都呆在洞穴里 , 有許多就死在自己的洞穴里 。禿尾鼠的死因很容易猜測(cè),因?yàn)閼卸瑁话阏J(rèn)為它們肯定是餓...
猜你喜歡
- 情感類型的作文 情感類型圖片
- 情感小說(shuō) 情感類簡(jiǎn)介
- 情感治愈的四種方法 表達(dá)情感的四種方法
- 五種情感分類 五種情感
- 導(dǎo)師申請(qǐng)表個(gè)人簡(jiǎn)介 情感導(dǎo)師個(gè)人簡(jiǎn)介
- 表達(dá)情緒的四種方法分別是 表達(dá)情感的四種方法
- 情感類主播文案 情感類主播簡(jiǎn)介
- 人的五種情感 五種情感
- 人們的表情交流至少有幾種 表情交流有幾種情感
- 對(duì)事物的描寫(xiě)方法有幾種方法 情感描寫(xiě)有幾種方法
