【花師小哲】當代煉金術(shù)(神經(jīng)網(wǎng)絡(luò))前沿(16)——語言模型的其他出路
自從實驗室要求變更,最近可是忙得要死,這周讀了14篇論文,也爆發(fā)一波,來一波大的,談?wù)?strong>語言模型(主要是大語言模型)除了走ChatGPT的老路之外,還有哪些值得研究的方向。以下提到的不少論文其實都是谷歌在GPT-3出來之后搞的,可以看出谷歌確實是想針對GPT做些不一樣的,相較于專一(搞錢)的OpenAI,谷歌的路要更廣。

0.調(diào)教模型
有一個知識點好像至今講的不是很多。大家在讀語言模型或大語言模型相關(guān)的論文時,應(yīng)該經(jīng)常能看到few-shot、one-shot、zero-shot、prompt這類的字眼。
傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)想要提升性能,傳統(tǒng)的關(guān)鍵的方法是梯度下降。簡單來說,我們收集大量的數(shù)據(jù),用這些數(shù)據(jù)不斷地修改整個網(wǎng)絡(luò)的參數(shù),使得網(wǎng)絡(luò)更適配一定的任務(wù)。
而大語言模型有了一種不需要梯度就可以提升某一特定任務(wù)的方式,即我們可以給語言模型一些例子,然后再問相似的問題,這時大語言模型就可以很好的回答了。整個過程是不調(diào)整網(wǎng)絡(luò)的參數(shù)的。
最近大家可能看到網(wǎng)上說提示工程師最近比較熱門,這些提示工程師就是來編寫這些例子的,高質(zhì)量的例子能夠使得大語言模型的效果更好。
于是,我們的旅途也從調(diào)教模型開始。

1.通過調(diào)教彌補不足
1.1提升推理能力
編寫例子或指令或提示有很多方法,最近被提及比較多的可能是CoT(思維鏈)了,例如小冰CEO最近表示:小冰不會走ChatGPT的老路,而是結(jié)合CoT做小冰鏈。

思維鏈其實很好理解的,就像我們做數(shù)學題一樣,一個步驟接著一個步驟,通過一步步的分析和推理最終得到答案。用思維鏈的好處是可以使得大語言模型的輸出更加符合邏輯,這一步的主要目的是解決大語言模型在推理能力上的欠缺。一篇思維鏈相關(guān)論文:

那么,可能有朋友問了,這種看起來很舒服的思路為什么之前很少有人提及呢?其實原因也很簡單,目前的研究證明似乎只有大模型能夠hold住思維鏈,在小模型上用思維鏈很容易不work的,甚至使用思維鏈后的效果反而會差很多。這也再次表明了大語言模型真的具有某種固有的“能力”,這種能力只要用得好就能發(fā)揮作用。
1.2提升事實準確性
除了推理能力有欠缺外,大語言模型還有另一項突出的短板:容易胡言亂語,或者說會犯事實類的錯誤。new bing在做的某種程度上就是解決這個問題。但是,通過搜索這種外物來解決這個問題似乎有些作弊(其實肯定不算的了,但總有人要為模型本身正名),于是有了如下的方法:

正如標題所說,先背誦再回答。我們知道,大語言模型在訓練過程中是記憶了很多東西的,而先背誦在回答對于我們?nèi)祟愂怯袔椭?。舉個例子,如果我直接問你π的小說點后五位是什么數(shù)字,你可能沒法一下子回答上來,但如果先讓你背π(3.1415926),再回答問題就簡單多了,你只需要數(shù)數(shù)就可以了。
其實這種方法和借助搜索引擎比較像,都是先獲取信息再回答問題。

2.自我提升
除了人為通過改進提示外,還有看起來更加邪門的一種方案——讓模型自己提升自己。一些文章會說大語言模型已經(jīng)具備自指的能力,不過這部分涉及到哲學,這里就不多展開,但是目前來看還是很恐怖的。這里簡單舉這一篇論文吧(1.2的那一篇也可以算是自我提升):

我們可以粗略看一下它是怎么個架構(gòu):

其中,LM就是語言模型。整體有四個步驟:
(1)生成指令;(2)識別指令是否是分類任務(wù);(3)生成實例;(4)過濾低質(zhì)量指令。
前三步都是LM來完成,第四步是一個很簡單的過濾程序。這種方法只需要初始很少一部分指令集作為驅(qū)動就可以自己生成大量的指令,這些指令也都可以用以提升自己,可以說的上是自我提升了。

3.底層架構(gòu)
除了在調(diào)教大語言模型方面做文章,我們是否可以改變下大語言模型的底層架構(gòu)呢?會不會有新的架構(gòu)撐起下一代模型的大模型呢?MoE似乎就是一種選擇。
現(xiàn)有的大語言模型基本都是基于transformer的,transformer是谷歌發(fā)明的一種新型網(wǎng)絡(luò)(真的很好用,但是算起來小號也高)。雖然說是換底層架構(gòu),但MoE并不是把transformer換掉。
MoE在大模型上的應(yīng)用主要可以看這一篇:

MoE是什么呢?簡單來說就是多專家系統(tǒng)(不是磚家哦)。日常生活中很多人都有自己的研究領(lǐng)域,他可能對自己的領(lǐng)域研究的很深但對其他領(lǐng)域知之甚少,所以在做決策時我們可以找多個專家共同決定。并且,實際上對于一個問題,可能只有一兩個專家的研究領(lǐng)域和它相關(guān),這時我們只需要結(jié)合這幾位專家的觀點即可。
GLaM就是這樣的模型(或者說是稀疏MoE),雖然看起來它有1.2T個參數(shù)(相當于GPT-3的7倍),但是它分為64個專家,每個專家都可以專注于訓練集的某一部分,最終在運行時只有幾個專家會被激活,參與最終的決策。所以它的速度和耗能會更加優(yōu)秀。

4.工具與自學工具
這部分可以去看這篇專欄:
【花師小哲】當代煉金術(shù)(神經(jīng)網(wǎng)絡(luò))前沿(13)——語言模型自學使用工具?
簡單來說,我們可以讓語言模型學會使用工具來提升自己。

5.優(yōu)化器
我們還可以從優(yōu)化的角度來考察問題。大語言模型有什么讓人頭疼的地方?優(yōu)化慢啊,如何更好的利用GPU、更快的訓練、更節(jié)能環(huán)保都是業(yè)界很頭疼的問題。前不久谷歌發(fā)表了Lion優(yōu)化器,在很多地方比Adam(現(xiàn)在大家一般都在用的東西)更好用、收斂更快:

這里簡單介紹一下優(yōu)化器。想象你是一個盲人,你現(xiàn)在在山腰,你只有一根拐杖,該怎么快速下山呢(不考慮會摔倒的情況,抱歉我想不出更好的比喻了)?一個思路是我們用拐杖向四面八方敲一敲,找到最陡的地方,然后沿著這個方向下山。這就是梯度下降的核心思想。
但在實際優(yōu)化問題中,這個山往往是極度凹凸不平的,按照上述方法很可能會陷入到小溝里出不來,所以我們會有各種各樣的優(yōu)化器幫你盡可能解決這些麻煩。好的優(yōu)化器能幫助模型更快的調(diào)整到一個優(yōu)秀的狀態(tài)。所以這些底層的工作很重要。

6.開源
現(xiàn)在OpenAI經(jīng)常被調(diào)侃稱CloseAI,主要是因為GPT-3和ChatGPT都是未開源的,ChatGPT的RLHF究竟用了多少數(shù)據(jù)我們是不知道的。最近,在大模型領(lǐng)域比較活躍的Meta發(fā)表了這篇論文(你可以稱之為大喇嘛(bushi)):

簡而言之,Meta開源了很多大大小小的語言模型供大家開發(fā)。

7.結(jié)語
可以看到,大語言模型還有很多值得研究的地方,研究范式已經(jīng)開始出現(xiàn)改變了,基于大語言模型API的、只研究prompt的文章開始頻繁出現(xiàn)(又預(yù)言中了?雖然這個想法是直接來源于我導(dǎo)師)。大模型是否會清洗一遍AI業(yè)界呢,也只有時間會告訴我們了(畢竟語言模型出爐都至少幾個月,要洗一遍至少得好幾年)
為了寫這篇真的讀了一大堆論文和文章,好累啊。