【花師小哲】當代煉金術(神經(jīng)網(wǎng)絡)前沿(7)——GPT史
今天下午剛開完會,有了自己的一些感觸,雖然GPT的幾篇原始論文還沒看完,但基本上已經(jīng)有了一個比較完整的理解了,于是加急趕一篇專欄。
就講講GPT史。

0.Transformer
Transformer和BERT之前講過,這里不再展開:
【花師小哲】面向一般大眾的神經(jīng)網(wǎng)絡科普(2)-NLP領域
之所以把Transformer放在最開始講,是因為Transformer可能是之后整個過程中最有創(chuàng)造力的一篇基準了,BERT和GPT都是基于Transformer進行開發(fā)的,那么BERT和GPT做了什么呢?其實就兩件事:1.拆解和運用Transformer(這下真的變形金剛了);2.砸錢

2.GPT-1
GPT-1是先于BERT出來的,當時預訓練范式還是在探索當中。當時已經(jīng)有了ELMo,是采用雙向LSTM來做的,GPT用Transformer來做了這件事。GPT用的是單向Transformer,而之后出現(xiàn)的BERT使用的是雙向Transformer,三者主要對比如下:

這個圖大家可能覺得是有區(qū)別但又不太清楚區(qū)別在哪里,不要著急,下一節(jié)會講。當時GPT確實是被BERT在很多地方超越了。但是GPT-1證明了“預訓練-微調”范式是有用的。

3.GPT-2
相比于BERT的雙向Transformer,GPT的單向Transformer似乎性能會差一些,但是也有一定的優(yōu)勢,正如GPT的全名(Generative Pre-Training,生成式預訓練)所說,單向Transformer更適合語言生成,換句話說,預測下一個詞。而BERT更關注的是上下文的結構,而不是通過不斷預測下一個詞來生成一段文本。
對于GPT-1來說,要處理NLP的一個子任務似乎都要專門訓練一個網(wǎng)絡,于是GPT-2的想法是,對于所有任務,我們都只使用一個模型。這個想法其實挺樸素的,相比于GPT-1,GPT-2所做的無非就是增加參數(shù)、微調網(wǎng)絡結構、獲取更好的數(shù)據(jù)集而已。
但是,GPT-2即將打開一個很恐怖的口子,即似乎我們只要有足夠的語料,所有的自然語言監(jiān)督任務似乎都是無監(jiān)督預訓練任務的一個子集,換句話說,大模型是可以做到無所不包的。

4.GPT-3
于是乎,增大參數(shù)量就是GPT-3要做的事情了,它將參數(shù)量從GPT-2的15億直接提升到了恐怖的1750億,沒錯,基本上是一種赤裸裸的炫富行為。
所以某種程度上來說,從GPT-1到GPT-3并沒有什么很強的創(chuàng)新,只是在堆參數(shù)量而已。當然,這樣的參數(shù)量確實使得預訓練方式有些改變,但前提也只不過是模型真的有那么大。

5.InstructGPT
這是ChatGPT的姐妹模型或者說是ChatGPT的前身,因為它倆都用了在GPT-3的接口上使用了RLHF方法,很多人也稱它們?yōu)镚PT-3.5。由于ChatGPT不開源論文和代碼(而且在可以預見的將來應該也不會開源),關于ChatGPT的技術我們目前似乎也只能從InstructGPT中找答案。
InstructGPT似乎是克制了很多,參數(shù)量沒那么大了(因為據(jù)說對于GPT-3,OpenAI自己都燒不起第二次),作為問答系統(tǒng),要解決的一個問題是:ChatGPT的生成文本中會有大量不可控的內(nèi)容。于是,RLHF算法出現(xiàn)了:

其實這個算法沒什么好講的,要講專業(yè)點就是關注如何求導等技術細節(jié)了。重點是我們不知道ChatGPT是如何標注的、請了多少人、砸了多少錢。
其實關鍵就在于第二步,即對于第一步訓練好的模型,我們要去評估其生成的答案的質量究竟如何。做法很簡單,對于一些問題先讓模型生成一些回答,然后借助人去對這些答案進行排序,然后借助強化學習中常用的PPO算法來進行優(yōu)化。
或者說的更加直白,ChatGPT就是把當初在阿爾法Go上用過的技術改造了一下,然后在語言大模型上跑了一遍。
當然,還是有些啟發(fā)的,例如未來的AI是否能達成人與AI的和諧互動,AI的最終大結局是否是借由人的智能來最終完成。這些都是有可能的。

6.GPT-4
那么即將到來的號稱“地表最強模型”的GPT-4到底會帶來什么樣的改變呢?是有更大的參數(shù)量呢還是加入了多模態(tài)呢?這個也只能慢慢等待了。