【花師小哲】當(dāng)代煉金術(shù)(神經(jīng)網(wǎng)絡(luò))前沿(11)——GPT與上下文學(xué)習(xí)
近期有一篇挺有意思的論文:

是的,又是關(guān)于GPT的研究,所以GPT-4什么時(shí)候才能出來(lái)呢?這篇論文就簡(jiǎn)單說(shuō)一些,畢竟原文內(nèi)容本來(lái)就很少。

1.神經(jīng)網(wǎng)絡(luò)訓(xùn)練復(fù)習(xí)
如果是看過(guò)之前我的一些專(zhuān)欄的朋友,應(yīng)該已經(jīng)很清楚神經(jīng)網(wǎng)絡(luò)的基本流程,不過(guò)這里還是稍微再換一種方式復(fù)習(xí)一下。
大家初高中應(yīng)該都見(jiàn)過(guò)這樣的題目,一條直線y=ax+b過(guò)A和B兩個(gè)點(diǎn),求這條直線。神經(jīng)網(wǎng)絡(luò)的思想其實(shí)和這道題目差不多,只不過(guò)函數(shù)形式要復(fù)雜的多,參數(shù)量也非常的大,并且沒(méi)有準(zhǔn)確解,只有一些近似解。并且,求最優(yōu)解也是無(wú)法用解析的方法完成的,所以才有了神經(jīng)網(wǎng)絡(luò)參數(shù)優(yōu)化的一些基本步驟:
(1)初始化神經(jīng)網(wǎng)絡(luò)參數(shù)
(2)根據(jù)訓(xùn)練集(x值),經(jīng)過(guò)神經(jīng)網(wǎng)絡(luò)正向傳播(得到y(tǒng)的預(yù)測(cè)值值)
(3)根據(jù)y的預(yù)測(cè)值和真實(shí)值計(jì)算損失函數(shù)
(4)反向傳播,優(yōu)化所有(或部分)參數(shù)
(5)回到(2),直到達(dá)到結(jié)束條件(收斂、超時(shí)等)
這個(gè)過(guò)程是非常漫長(zhǎng)的,于是又出現(xiàn)了“預(yù)訓(xùn)練-微調(diào)”。簡(jiǎn)單來(lái)說(shuō),我們把訓(xùn)練的全過(guò)程切分成兩個(gè)部分,第一個(gè)部分比較大,這部分的訓(xùn)練稱(chēng)為“預(yù)訓(xùn)練”;另一部分比較小,這部分的訓(xùn)練稱(chēng)為“微調(diào)”。這樣,預(yù)訓(xùn)練就可以由大公司來(lái)做,然后一般用戶(hù)只需要在預(yù)訓(xùn)練好的模型上微調(diào)即可。
之后,隨著預(yù)訓(xùn)練的發(fā)展、無(wú)監(jiān)督、自監(jiān)督、大模型等紛紛出現(xiàn)。

2.上下文學(xué)習(xí)
GPT我們也講過(guò)很多次了,簡(jiǎn)單來(lái)說(shuō),隨著GPT參數(shù)模型的逐步增大,研究人員發(fā)現(xiàn)其“解鎖”了小模型不具有的一個(gè)特殊能力,即“上下文學(xué)習(xí)”。
上下文學(xué)習(xí)是說(shuō),我們可以給GPT模型一些例子,然后它就可以完成類(lèi)似的任務(wù)。
例如,如果我們單獨(dú)問(wèn)一個(gè)GPT模型“二加三等于幾?”,它可能回答不上來(lái),但如果我們先告訴它“一加一等于二,一加二等于三”,然后再問(wèn)“二加三等于幾?”,它可能就答上來(lái)了。而且,最重要的一點(diǎn)是,這個(gè)過(guò)程并沒(méi)有進(jìn)行第一部分的(4)步驟,即整個(gè)模型的參數(shù)實(shí)質(zhì)上是沒(méi)有變化的。
某種程度上這很離譜,就像同一個(gè)函數(shù)f(x),你單獨(dú)用時(shí)f(1)是1,但是在計(jì)算前你給他說(shuō)幾句話后f(1)就是2了。
學(xué)過(guò)數(shù)電的朋友這時(shí)候應(yīng)該已經(jīng)注意到了,這一定代表著這個(gè)函數(shù)內(nèi)部存在某種類(lèi)似于“記憶”的機(jī)制,使得后續(xù)的計(jì)算結(jié)果是依賴(lài)前面的計(jì)算的,或者說(shuō),上下文對(duì)于函數(shù)的計(jì)算是有幫助的,這種能力就是上下文學(xué)習(xí)。
用過(guò)ChatGPT的朋友應(yīng)該能體會(huì)到其上下文學(xué)習(xí)能力有多強(qiáng)。

3.元學(xué)習(xí)
元學(xué)習(xí)這個(gè)概念有些麻煩(而且我也沒(méi)搞得特別清楚),這里挖個(gè)坑,只舉幾個(gè)簡(jiǎn)單的例子。
神經(jīng)網(wǎng)絡(luò)的訓(xùn)練是需要大量的訓(xùn)練集和訓(xùn)練時(shí)間的,我們想讓神經(jīng)網(wǎng)絡(luò)區(qū)分貓和狗,我們可能需要成千上百?gòu)垼ㄉ踔粮啵┴埞返膱D片讓網(wǎng)絡(luò)去學(xué)習(xí)。然而,對(duì)于人類(lèi)來(lái)說(shuō),要做到這點(diǎn)只需要幾張圖片就夠了,我們學(xué)習(xí)新事物的能力遠(yuǎn)比神經(jīng)網(wǎng)絡(luò)強(qiáng)多了。元學(xué)習(xí)就類(lèi)似于人類(lèi)的學(xué)習(xí)。
某種程度上來(lái)說(shuō),上下文學(xué)習(xí)已經(jīng)很類(lèi)似于元學(xué)習(xí)了。

4.為什么GPT會(huì)有上下文學(xué)習(xí)能力
論文認(rèn)為,GPT的上下文學(xué)習(xí)實(shí)質(zhì)上就是一種隱式的微調(diào),并對(duì)上下文學(xué)習(xí)和微調(diào)做了對(duì)比(里面包含一些公式推導(dǎo),這里就不放出來(lái)了),這里不多展開(kāi)(畢竟我個(gè)人還是認(rèn)為這篇論文的說(shuō)服力還不夠,等后續(xù)研究了):

其實(shí)之前也講過(guò),現(xiàn)在一般認(rèn)為,上下文的提示實(shí)質(zhì)上并沒(méi)有使得GPT-3獲得新的能力,只是將能力激發(fā)出來(lái)或者說(shuō)將模型的注意力集中在某個(gè)特殊問(wèn)題上罷了。這種行為也很接近人類(lèi)了。

5.結(jié)語(yǔ)
不得不說(shuō),大模型還有太多謎團(tuán)等待被解釋?zhuān)缥冶容^感性的是究竟到什么程度才能使模型能力發(fā)生“質(zhì)變”,然而訓(xùn)練大模型需要大量的時(shí)間金錢(qián)導(dǎo)致我們目前對(duì)這個(gè)過(guò)程還是很難研究的。語(yǔ)言大模型的成功似乎也在告訴我們,語(yǔ)言在我們?nèi)粘I钪写_實(shí)有著很關(guān)鍵的作用,語(yǔ)言大模型似乎已經(jīng)摸到人類(lèi)智能的邊界了(維特根斯坦狂喜),不過(guò)路依然是挺漫長(zhǎng)的。