張俊林:由ChatGPT反思大語(yǔ)言模型(LLM)的技術(shù)精要(2)
從目前研究結(jié)果看,Transformer是足夠強(qiáng)大的特征抽取器,尚不需要做特別的改進(jìn)。那么通過(guò)預(yù)訓(xùn)練過(guò)程,Transformer學(xué)到了什么?知識(shí)是如何存取的?我們又如何修正錯(cuò)誤知識(shí)?本節(jié)講述這方面的研究進(jìn)展。
LLM從海量自由文本中學(xué)習(xí)了大量知識(shí),如果把這些知識(shí)做粗略分類(lèi)的話,可以分為語(yǔ)言類(lèi)知識(shí)和世界知識(shí)兩大類(lèi)。
語(yǔ)言類(lèi)知識(shí)指的是詞法、詞性、句法、語(yǔ)義等有助于人類(lèi)或機(jī)器理解自然語(yǔ)言的知識(shí)。關(guān)于LLM能否捕獲語(yǔ)言知識(shí)有較長(zhǎng)研究歷史,自從Bert出現(xiàn)以來(lái)就不斷有相關(guān)研究,很早就有結(jié)論,各種實(shí)驗(yàn)充分證明LLM可以學(xué)習(xí)各種層次類(lèi)型的語(yǔ)言學(xué)知識(shí),這也是為何使用預(yù)訓(xùn)練模型后,各種語(yǔ)言理解類(lèi)自然語(yǔ)言任務(wù)獲得大幅效果提升的最重要原因之一。另外,各種研究也證明了淺層語(yǔ)言知識(shí)比如詞法、詞性、句法等知識(shí)存儲(chǔ)在Transformer的低層和中層,而抽象的語(yǔ)言知識(shí)比如語(yǔ)義類(lèi)知識(shí),廣泛分布在Transformer的中層和高層結(jié)構(gòu)中。
世界知識(shí)指的是在這個(gè)世界上發(fā)生的一些真實(shí)事件(事實(shí)型知識(shí),F(xiàn)actual Knowledge),以及一些常識(shí)性知識(shí)(Common Sense Knowledge)。比如“拜登是現(xiàn)任美國(guó)總統(tǒng)”、“拜登是美國(guó)人”、“烏克蘭總統(tǒng)澤連斯基與美國(guó)總統(tǒng)拜登舉行會(huì)晤”,這些都是和拜登相關(guān)的事實(shí)類(lèi)知識(shí);而“人有兩只眼睛”、“太陽(yáng)從東方升起”這些屬于常識(shí)性知識(shí)。關(guān)于LLM模型能否學(xué)習(xí)世界知識(shí)的研究也有很多,結(jié)論也比較一致:LLM確實(shí)從訓(xùn)練數(shù)據(jù)中吸收了大量世界知識(shí),而這類(lèi)知識(shí)主要分布在Transformer的中層和高層,尤其聚集在中層。而且,隨著Transformer模型層深增加,能夠?qū)W習(xí)到的知識(shí)數(shù)量逐漸以指數(shù)級(jí)增加(可參考:BERTnesia: Investigating the capture and forgetting of knowledge in BERT)。其實(shí),你把LLM看作是一種以模型參數(shù)體現(xiàn)的隱式知識(shí)圖譜,如果這么理解,我認(rèn)為是一點(diǎn)問(wèn)題也沒(méi)有的。
“When Do You Need Billions of Words of Pre-training Data?”這篇文章研究了預(yù)訓(xùn)練模型學(xué)習(xí)到的知識(shí)量與訓(xùn)練數(shù)據(jù)量的關(guān)系,它的結(jié)論是:對(duì)于Bert類(lèi)型的語(yǔ)言模型來(lái)說(shuō),只用1000萬(wàn)到1億單詞的語(yǔ)料,就能學(xué)好句法語(yǔ)義等語(yǔ)言學(xué)知識(shí),但是要學(xué)習(xí)事實(shí)類(lèi)知識(shí),則要更多的訓(xùn)練數(shù)據(jù)。這個(gè)結(jié)論其實(shí)也是在意料中的,畢竟語(yǔ)言學(xué)知識(shí)相對(duì)有限且靜態(tài),而事實(shí)類(lèi)知識(shí)則數(shù)量巨大,且處于不斷變化過(guò)程中。而目前研究證明了隨著增加訓(xùn)練數(shù)據(jù)量,預(yù)訓(xùn)練模型在各種下游任務(wù)中效果越好,這說(shuō)明了從增量的訓(xùn)練數(shù)據(jù)中學(xué)到的更主要是世界知識(shí)。
由上可知,LLM確實(shí)從數(shù)據(jù)中學(xué)到了很多語(yǔ)言類(lèi)及世界知識(shí)。那么,對(duì)于某條具體的知識(shí),LLM把它存儲(chǔ)到了哪里?又是如何提取出來(lái)的?這也是一個(gè)有意思的問(wèn)題。
顯然,知識(shí)一定存儲(chǔ)在Transformer的模型參數(shù)里。從Transformer的結(jié)構(gòu)看,模型參數(shù)由兩部分構(gòu)成:多頭注意力(MHA)部分占了大約參數(shù)總體的三分之一,三分之二的參數(shù)集中在FFN結(jié)構(gòu)中。MHA主要用于計(jì)算單詞或知識(shí)間的相關(guān)強(qiáng)度,并對(duì)全局信息進(jìn)行集成,更可能是在建立知識(shí)之間的聯(lián)系,大概率不會(huì)存儲(chǔ)具體知識(shí)點(diǎn),那么很容易推論出LLM模型的知識(shí)主體是存儲(chǔ)在Transformer的FFN結(jié)構(gòu)里。
但這樣的定位,粒度還是太粗,無(wú)法很好回答具體某條知識(shí)是如何存儲(chǔ)與提取的,比如 “中國(guó)的首都是北京”這條知識(shí),以三元組表達(dá)就是<北京,is-capital-of,中國(guó)>,其中“is-capital-of”代表實(shí)體間關(guān)系。這條知識(shí)它存儲(chǔ)在LLM的哪里呢?
“Transformer Feed-Forward Layers Are Key-Value Memories”給出了一個(gè)比較新穎的觀察視角,它把Transformer的FFN看成存儲(chǔ)大量具體知識(shí)的Key-Value存儲(chǔ)器。如上圖所示(圖左是原始論文圖,其實(shí)不太好理解,可以看做了注釋的圖右,更好理解些),F(xiàn)FN的第一層是個(gè)MLP寬隱層,這是Key層;第二層是MLP窄隱層,是Value層。FFN的輸入層其實(shí)是某個(gè)單詞對(duì)應(yīng)的MHA的輸出結(jié)果Embedding,也就是通過(guò)Self Attention,將整個(gè)句子有關(guān)的輸入上下文集成到一起的Embedding,代表了整個(gè)輸入句子的整體信息。
Key層的每個(gè)神經(jīng)元節(jié)點(diǎn),記載了一對(duì)<Key,Value>信息。比如對(duì)于上圖中FFN第一個(gè)隱層的第 個(gè)節(jié)點(diǎn) ,也許就是它記載了<北京,is-capital-of,中國(guó)>這條知識(shí)。 節(jié)點(diǎn)對(duì)應(yīng)的key向量,其實(shí)指的是節(jié)點(diǎn) 和輸入層每個(gè)節(jié)點(diǎn)的權(quán)重向量;而對(duì)應(yīng)的Value向量,指的是節(jié)點(diǎn) 和FFN第二層的Value層每個(gè)節(jié)點(diǎn)形成連接的權(quán)重向量。每個(gè)神經(jīng)元的Key向量,用于識(shí)別輸入中的某種語(yǔ)言或者知識(shí)模式,是一種模式探測(cè)器。如果輸入中包含它要檢測(cè)的某種模式,那么輸入向量和 節(jié)點(diǎn)的key權(quán)重進(jìn)行向量?jī)?nèi)積計(jì)算,加上Relu,形成 的大數(shù)值響應(yīng),意味著 檢測(cè)到了這個(gè)模式,于是再把這個(gè)響應(yīng)值,通過(guò) 節(jié)點(diǎn)的Value權(quán)重向量向FFN第二層傳播。這等價(jià)于將Value向量的值,用響應(yīng)值加權(quán),然后傳遞并體現(xiàn)到第二層Value層每個(gè)節(jié)點(diǎn)的輸出上。如此這般,F(xiàn)FN的正向傳播計(jì)算過(guò)程,看起來(lái)就像是通過(guò)Key檢測(cè)到某種知識(shí)模式,然后取出對(duì)應(yīng)的Value,并把Value體現(xiàn)在FFN的第二層輸出上。當(dāng)然,F(xiàn)FN第二層每個(gè)節(jié)點(diǎn),會(huì)收集FFN的Key層所有節(jié)點(diǎn)信息,所以是一種混合響應(yīng),而Value層所有節(jié)點(diǎn)的混合響應(yīng),可以解讀為代表輸出單詞的概率分布信息。
聽(tīng)著可能還是比較復(fù)雜,我們用個(gè)極端的例子來(lái)說(shuō)明。我們假設(shè)上圖的節(jié)點(diǎn) 就是記載<北京,is-capital-of,中國(guó)>這條知識(shí)的Key-Value存儲(chǔ)器,它的Key向量,用于檢測(cè)”中國(guó)的首都是…”這個(gè)知識(shí)模式,它的Value向量,基本存儲(chǔ)了與單詞“北京”的Embedding比較接近的向量。當(dāng)Transformer的輸入是“中國(guó)的首都是[Mask]”的時(shí)候, 節(jié)點(diǎn)從輸入層探測(cè)到這個(gè)知識(shí)模式,所以產(chǎn)生較大的響應(yīng)輸出。我們假設(shè)Key層其它神經(jīng)元對(duì)這個(gè)輸入都沒(méi)有任何響應(yīng),那么對(duì)應(yīng)的Value層的節(jié)點(diǎn),其實(shí)只會(huì)接收到“北京”這個(gè)Value對(duì)應(yīng)的單詞embedding,并通過(guò) 的大響應(yīng)值,進(jìn)行了進(jìn)一步的數(shù)值放大。于是,Mask位置對(duì)應(yīng)的輸出,就自然會(huì)輸出“北京”這個(gè)單詞?;揪褪沁@么個(gè)過(guò)程,看著很復(fù)雜,其實(shí)很簡(jiǎn)單。
而且這篇文章還指出,Transformer低層對(duì)句子的表層模式作出反應(yīng),高層對(duì)語(yǔ)義模式作出反應(yīng),就是說(shuō)低層FFN存儲(chǔ)詞法、句法等表層知識(shí),中層和高層存儲(chǔ)語(yǔ)義及事實(shí)概念知識(shí),這和其它研究結(jié)論是一致的。
要我猜,把FFN看成Key-Value存儲(chǔ)器這種思路,很可能不是最終的正確答案,但是距離最終正確答案的距離,估計(jì)也不太遠(yuǎn)。
既然我們已知具體的某條世界知識(shí)存儲(chǔ)在某個(gè)或者某些FFN節(jié)點(diǎn)的參數(shù)里,自然會(huì)引發(fā)另外一個(gè)問(wèn)題:我們能否修正LLM模型里存儲(chǔ)的錯(cuò)誤或者過(guò)時(shí)的知識(shí)呢?比如對(duì)于問(wèn)題:“英國(guó)的現(xiàn)任首相是誰(shuí)?”鑒于近年來(lái)英國(guó)首相頻繁更迭,你猜LLM更傾向輸出“鮑里斯”還是更青睞“蘇納克”?很明顯訓(xùn)練數(shù)據(jù)中包含“鮑里斯”的數(shù)據(jù)會(huì)更多,這種情況很大可能LLM會(huì)給出錯(cuò)誤回答,于是我們就有修正LLM里存儲(chǔ)的過(guò)時(shí)知識(shí)的必要性。
如果歸納下,目前有三類(lèi)不同方法來(lái)修正LLM里蘊(yùn)含的知識(shí):
第一類(lèi)方法從訓(xùn)練數(shù)據(jù)的源頭來(lái)修正知識(shí)?!癟owards Tracing Factual Knowledge in Language Models Back to the Training Data”這篇文章的研究目標(biāo)是:對(duì)于指定的某條知識(shí),我們是否可以定位到是哪些訓(xùn)練數(shù)據(jù)導(dǎo)致LLM學(xué)會(huì)了這條知識(shí)?答案是肯定的,這意味著我們可以逆向追蹤到某條知識(shí)對(duì)應(yīng)的訓(xùn)練數(shù)據(jù)源頭。如果利用這項(xiàng)技術(shù),假設(shè)我們想要?jiǎng)h除某條知識(shí),則可首先定位到其對(duì)應(yīng)的數(shù)據(jù)源頭,刪除數(shù)據(jù)源,然后重新預(yù)訓(xùn)練整個(gè)LLM模型,這樣即可達(dá)成刪除LLM中相關(guān)知識(shí)的目的。但是這里有個(gè)問(wèn)題,如果修正一小部分知識(shí),我們就需要重新做一次模型預(yù)訓(xùn)練,這樣做明顯成本太高。所以這種方法不會(huì)太有發(fā)展前景,可能比較適合那種對(duì)于某個(gè)特定類(lèi)別數(shù)據(jù)的一次性大規(guī)模刪除場(chǎng)合,不適合少量多次的常規(guī)知識(shí)修正場(chǎng)景,比如可能比較適合用來(lái)做去除偏見(jiàn)等去toxic內(nèi)容的處理。
第二類(lèi)方法是對(duì)LLM模型做一次fine-tuning來(lái)修正知識(shí)。一個(gè)直觀能想到的方法是:我們可以根據(jù)要修正成的新知識(shí)來(lái)構(gòu)建訓(xùn)練數(shù)據(jù),然后讓LLM模型在這個(gè)訓(xùn)練數(shù)據(jù)上做fine-tuning,這樣指導(dǎo)LLM記住新的知識(shí),遺忘舊的知識(shí)。這個(gè)方法簡(jiǎn)單直觀,但是也有一些問(wèn)題,首先它會(huì)帶來(lái)災(zāi)難遺忘問(wèn)題,就是說(shuō)除了忘掉該忘的知識(shí),還忘掉了不該忘的知識(shí),導(dǎo)致這么做了之后有些下游任務(wù)效果下降。另外,因?yàn)槟壳暗腖LM模型規(guī)模非常大,即使是做fine-tuning,如果次數(shù)頻繁,其實(shí)成本也相當(dāng)高。對(duì)這種方法感興趣的可以參考“Modifying Memories in Transformer Models”。
另外一類(lèi)方法直接修改LLM里某些知識(shí)對(duì)應(yīng)的模型參數(shù)來(lái)修正知識(shí)。假設(shè)我們想要把舊知識(shí)<英國(guó),現(xiàn)任首相,鮑里斯>,修正到<英國(guó),現(xiàn)任首相,蘇納克>。首先我們想辦法在LLM模型參數(shù)中,定位到存儲(chǔ)舊知識(shí)的FFN節(jié)點(diǎn),然后可以強(qiáng)行調(diào)整更改FFN中對(duì)應(yīng)的模型參數(shù),將舊知識(shí)替換成新的知識(shí)??梢钥闯?,這種方法涉及到兩項(xiàng)關(guān)鍵技術(shù):首先是如何在LLM參數(shù)空間中定位某條知識(shí)的具體存儲(chǔ)位置;其次是如何修正模型參數(shù),來(lái)實(shí)現(xiàn)舊知識(shí)到新知識(shí)的修正。關(guān)于這類(lèi)技術(shù)的細(xì)節(jié),可以參考“Locating and Editing Factual Associations in GPT”和“Mass-Editing Memory in a Transformer”。理解這個(gè)修正LLM知識(shí)的過(guò)程,其實(shí)對(duì)于更深入理解LLM的內(nèi)部運(yùn)作機(jī)制是很有幫助的。
我們知道,近年來(lái),LLM模型規(guī)模在快速增長(zhǎng),目前效果最好的LLM模型,其參數(shù)規(guī)模大都超過(guò)了千億(100B)參數(shù)規(guī)模。比如,OpenAI的GPT 3的規(guī)模為175B,Google的LaMDA規(guī)模為137B,PaLM的規(guī)模為540B,DeepMind的Gogher規(guī)模為280B等,不一而足。國(guó)內(nèi)也有中文巨型模型,比如智源GLM規(guī)模130B,華為“盤(pán)古”規(guī)模200B,百度“文心”規(guī)模260B,浪潮“源1.0”規(guī)模245B。那么,一個(gè)很自然的問(wèn)題就是:隨著LLM模型規(guī)模不斷增長(zhǎng),會(huì)發(fā)生些什么呢?
預(yù)訓(xùn)練模型的應(yīng)用往往是兩階段的:預(yù)訓(xùn)練階段,及具體場(chǎng)景應(yīng)用階段。在預(yù)訓(xùn)練階段,其優(yōu)化目標(biāo)是交叉熵,對(duì)GPT這種自回歸語(yǔ)言模型來(lái)說(shuō),也就是看LLM是否正確預(yù)測(cè)到了下一個(gè)單詞;而場(chǎng)景應(yīng)用階段,一般要看具體場(chǎng)景的評(píng)價(jià)指標(biāo)。一般我們的直覺(jué)是:如果LLM模型在預(yù)訓(xùn)練階段的指標(biāo)越好,自然它解決下游任務(wù)的能力就越強(qiáng)。然而,事實(shí)并非完全如此?,F(xiàn)有研究已證明,預(yù)訓(xùn)練階段的優(yōu)化指標(biāo)確實(shí)和下游任務(wù)表現(xiàn)出正相關(guān)關(guān)系,但是并非完全正相關(guān)。也就是說(shuō),只看預(yù)訓(xùn)練階段的指標(biāo),來(lái)判斷一個(gè)LLM模型是否夠好,這是不夠的?;诖?,我們分頭來(lái)看在這兩個(gè)不同階段,隨著LLM模型增大,有什么影響。
首先,我們先看在預(yù)訓(xùn)練階段,隨著模型規(guī)模逐步增大,會(huì)發(fā)生什么。OpenAI在“Scaling Laws for Neural Language Models”中專(zhuān)門(mén)研究了這個(gè)問(wèn)題,并提出LLM模型所遵循的“伸縮法則”(scaling law)。如上圖所示,這個(gè)研究證明:當(dāng)我們獨(dú)立增加訓(xùn)練數(shù)據(jù)量、模型參數(shù)規(guī)?;蛘哐娱L(zhǎng)模型訓(xùn)練時(shí)間(比如從1個(gè)Epoch到2個(gè)Epoch),預(yù)訓(xùn)練模型在測(cè)試集上的Loss都會(huì)單調(diào)降低,也就是說(shuō)模型效果越來(lái)越好。
既然三個(gè)因素都重要,那么我們?cè)趯?shí)際做預(yù)訓(xùn)練的時(shí)候,就有一個(gè)算力如何分配的決策問(wèn)題:假設(shè)用于訓(xùn)練LLM的算力總預(yù)算(比如多少GPU小時(shí)或者GPU天)給定,那么是應(yīng)該多增加數(shù)據(jù)量、減少模型參數(shù)呢?還是說(shuō)數(shù)據(jù)量和模型規(guī)模同時(shí)增加,減少訓(xùn)練步數(shù)呢?此消彼長(zhǎng),某個(gè)要素規(guī)模增長(zhǎng),就要降低其它因素的規(guī)模,以維持總算力不變,所以這里有各種可能的算力分配方案。最終OpenAI選擇了同時(shí)增加訓(xùn)練數(shù)據(jù)量和模型參數(shù),但是采用早停策略(early stopping)來(lái)減少訓(xùn)練步數(shù)的方案。因?yàn)樗C明了:對(duì)于訓(xùn)練數(shù)據(jù)量和模型參數(shù)這兩個(gè)要素,如果只單獨(dú)增加其中某一個(gè),這不是最好的選擇,最好能按照一定比例同時(shí)增加兩者,它的結(jié)論是優(yōu)先增加模型參數(shù),然后才是訓(xùn)練數(shù)據(jù)量。假設(shè)用于訓(xùn)練LLM的算力總預(yù)算增加了10倍,那么應(yīng)該增加5.5倍的模型參數(shù)量,1.8倍的訓(xùn)練數(shù)據(jù)量,此時(shí)模型效果最佳。
DeepMind的一項(xiàng)研究(參考:Training Compute-Optimal Large Language Models)更深入地探究了這個(gè)問(wèn)題,其基本結(jié)論和OpenAI的結(jié)論差不多,比如確實(shí)需要同時(shí)增加訓(xùn)練數(shù)據(jù)量和模型參數(shù),模型效果才會(huì)更好。而很多大模型在做預(yù)訓(xùn)練的時(shí)候,并沒(méi)有考慮這一點(diǎn),很多LLM大模型只是單調(diào)增加模型參數(shù),而固定住了訓(xùn)練數(shù)據(jù)量,這個(gè)做法其實(shí)是不對(duì)的,限制了LLM模型的潛力。但是它修正了兩者的比例關(guān)系,認(rèn)為訓(xùn)練數(shù)據(jù)量和模型參數(shù)是同等重要的,也就是說(shuō),假設(shè)用于訓(xùn)練LLM的算力總預(yù)算增加了10倍,那么應(yīng)該增加3.3倍的模型參數(shù)量,3.3倍的訓(xùn)練數(shù)據(jù)量,這樣模型效果才最好。
這意味著:增加訓(xùn)練數(shù)據(jù)量的重要性,比我們之前所認(rèn)為的,還要重要?;谶@個(gè)認(rèn)知,DeepMind在設(shè)計(jì)Chinchilla模型時(shí),在算力分配上選擇了另外一種配置:對(duì)標(biāo)數(shù)據(jù)量300B、模型參數(shù)量280B的Gopher模型,Chinchilla選擇增加4倍的訓(xùn)練數(shù)據(jù),但是將模型參數(shù)降低為Gopher的四分之一,大約為70B。但是無(wú)論預(yù)訓(xùn)練指標(biāo),還是很多下游任務(wù)指標(biāo),Chinchilla效果都要優(yōu)于規(guī)模更大的Gopher。
這帶給我們?nèi)缦聠⑹荆何覀兛梢赃x擇放大訓(xùn)練數(shù)據(jù),并同比例地減少LLM模型參數(shù),以達(dá)到在不降低模型效果的前提下,極大縮小模型規(guī)模的目的??s小模型規(guī)模有很多好處,比如在應(yīng)用的時(shí)候,推理速度會(huì)快很多等,無(wú)疑這是一個(gè)很有前途的LLM發(fā)展路線。
以上是從預(yù)訓(xùn)練階段來(lái)看模型規(guī)模的影響,如果從LLM解決下游具體任務(wù)效果的角度來(lái)看,隨著模型規(guī)模增大,不同類(lèi)型的任務(wù)有不同的表現(xiàn),具體而言,有以下三類(lèi)情況。
第一類(lèi)任務(wù)完美體現(xiàn)了LLM模型的scaling law,就是說(shuō)隨著模型規(guī)模逐步放大,任務(wù)的表現(xiàn)越來(lái)越好,如上圖里的(a)圖所示。這類(lèi)任務(wù)通常符合如下共性:它們往往都是知識(shí)密集型任務(wù),也就是說(shuō)如果LLM模型包含的知識(shí)量越多,這類(lèi)任務(wù)表現(xiàn)越好。而很多研究已經(jīng)證明越大的LLM模型學(xué)習(xí)效率越高,也就是說(shuō)相同訓(xùn)練數(shù)據(jù)量,模型越大任務(wù)效果越好,說(shuō)明面對(duì)的即使是同樣的一批訓(xùn)練數(shù)據(jù),更大的LLM模型相對(duì)規(guī)模小一些的模型,從中學(xué)到了更多的知識(shí)。更何況一般情況下,在增大LLM模型參數(shù)的時(shí)候,往往會(huì)同步增加訓(xùn)練數(shù)據(jù)量,這意味著大模型可以從更多數(shù)據(jù)中學(xué)習(xí)更多的知識(shí)點(diǎn)。這些研究可以很好地解釋上圖,為何隨著模型規(guī)模增大,這些知識(shí)密集型的任務(wù)效果越來(lái)越好。大多數(shù)傳統(tǒng)的自然語(yǔ)言理解類(lèi)任務(wù),其實(shí)都屬于這種知識(shí)密集型任務(wù),而很多任務(wù)在近兩年獲得了極大的效果提升,甚至超過(guò)了人類(lèi)表現(xiàn)。很明顯,這大概率是LLM模型的規(guī)模增長(zhǎng)帶來(lái)的,而非歸功于某項(xiàng)具體的技術(shù)改進(jìn)。
第二類(lèi)任務(wù)展現(xiàn)出LLM具備某種“涌現(xiàn)能力(Emergent Ability)”,如上圖(b)所示。所謂“涌現(xiàn)能力”,指的是當(dāng)模型參數(shù)規(guī)模未能達(dá)到某個(gè)閥值時(shí),模型基本不具備解決此類(lèi)任務(wù)的任何能力,體現(xiàn)為其性能和隨機(jī)選擇答案效果相當(dāng),但是當(dāng)模型規(guī)模跨過(guò)閥值,LLM模型對(duì)此類(lèi)任務(wù)的效果就出現(xiàn)突然的性能增長(zhǎng)。也就是說(shuō),模型規(guī)模是解鎖(unlock)LLM新能力的關(guān)鍵,隨著模型規(guī)模越來(lái)越大,會(huì)逐漸解鎖LLM越來(lái)越多的新能力。這是個(gè)很神奇的現(xiàn)象,因?yàn)樗馕吨缦伦屓藢?duì)未來(lái)可報(bào)樂(lè)觀預(yù)期的可能:或許很多任務(wù),目前LLM還不能很好地解決,甚至站在現(xiàn)在這個(gè)時(shí)刻的我們看起來(lái),LLM完全沒(méi)有能力解決這類(lèi)任務(wù),但因LLM具備“涌現(xiàn)能力”,所以如果我們繼續(xù)推大模型,也許某一天它的這項(xiàng)能力就被突然解鎖了。LLM模型的規(guī)模增長(zhǎng)會(huì)給我們帶來(lái)意想不到的精彩禮物。
“Beyond the Imitation Game: Quantifying and extrapolating the capabilities of language models”這篇文章指出,這類(lèi)體現(xiàn)出“涌現(xiàn)能力”的任務(wù)也有一些共性:這些任務(wù)一般由多步驟構(gòu)成,要解決這些任務(wù),往往需要先解決多個(gè)中間步驟,而邏輯推理能力在最終解決這類(lèi)任務(wù)中發(fā)揮重要作用。思維鏈(Chain of Thought)Prompting是典型的增強(qiáng)LLM推理能力的技術(shù),能大幅提升此類(lèi)任務(wù)的效果,關(guān)于CoT技術(shù),在隨后小節(jié)內(nèi)容會(huì)做解釋?zhuān)颂帟翰徽归_(kāi)。
問(wèn)題是,為何LLM會(huì)出現(xiàn)這種“涌現(xiàn)能力”現(xiàn)象呢?上述文章以及“Emergent Abilities of Large Language Models”給出了幾個(gè)可能的解釋?zhuān)?/span>
一種可能解釋是有些任務(wù)的評(píng)價(jià)指標(biāo)不夠平滑。比如說(shuō)有些生成任務(wù)的判斷標(biāo)準(zhǔn),它要求模型輸出的字符串,要和標(biāo)準(zhǔn)答案完全匹配才算對(duì),否則就是0分。所以,即使隨著模型增大,其效果在逐步變好,體現(xiàn)為輸出了更多的正確字符片段,但是因?yàn)闆](méi)有完全對(duì),只要有任何小錯(cuò)誤都給0分,只有當(dāng)模型足夠大,輸出片段全部正確才能得分。也就是說(shuō),因?yàn)橹笜?biāo)不夠平滑,所以不能體現(xiàn)LLM其實(shí)正在逐步改善任務(wù)效果這一現(xiàn)實(shí),看起來(lái)就是“涌現(xiàn)能力”這種外在表現(xiàn)。
另外一種可能的解釋是:有些任務(wù)由若干中間步驟構(gòu)成,隨著模型規(guī)模增大,解決每個(gè)步驟的能力也在逐步增強(qiáng),但是只要有一個(gè)中間步驟是錯(cuò)的,最終答案就是錯(cuò)的,于是也會(huì)導(dǎo)致這種表面的“涌現(xiàn)能力”現(xiàn)象。
當(dāng)然,上面的解釋目前還都是猜想,至于為何LLM會(huì)出現(xiàn)這種現(xiàn)象,還需要進(jìn)一步更深入的研究。
還有少部分任務(wù),隨著模型規(guī)模增長(zhǎng),任務(wù)的效果曲線展現(xiàn)出U形特性:隨著模型規(guī)模逐漸變大,任務(wù)效果逐漸變差,但是當(dāng)模型規(guī)模進(jìn)一步增長(zhǎng),則效果開(kāi)始越來(lái)越好,呈現(xiàn)出U形增長(zhǎng)趨勢(shì),如上圖所示的粉紅色PaLM模型在兩個(gè)任務(wù)上的指標(biāo)****。為何這些任務(wù)表現(xiàn)得如此特殊呢?“Inverse scaling can become U-shaped”這篇文章給出了一種解釋?zhuān)哼@些任務(wù),內(nèi)部其實(shí)隱含了兩種不同類(lèi)型的子任務(wù),一種是真正的任務(wù),另外一種是“干擾任務(wù)(distractor task)”。當(dāng)模型規(guī)模小的時(shí)候,無(wú)法識(shí)別任意一種子任務(wù),所以模型的表現(xiàn)跟隨機(jī)選擇答案差不多,當(dāng)模型增長(zhǎng)到中等規(guī)模的時(shí)候,主要執(zhí)行的是干擾任務(wù),所以對(duì)真正的任務(wù)效果有負(fù)面影響,體現(xiàn)為真正任務(wù)效果的下降,而當(dāng)進(jìn)一步增加模型規(guī)模,則LLM可以忽略干擾任務(wù),執(zhí)行真正的任務(wù),體現(xiàn)為效果開(kāi)始增長(zhǎng)。
對(duì)于那些隨著模型規(guī)模增大,效果一直下降的任務(wù),如果采用思維鏈(CoT)Prompting,則部分任務(wù)的表現(xiàn)轉(zhuǎn)換為遵循Scaling law,即模型規(guī)模越大效果越好,而其它任務(wù)則轉(zhuǎn)換為U性增長(zhǎng)曲線。這其實(shí)側(cè)面說(shuō)明了:此類(lèi)任務(wù)應(yīng)屬于推理類(lèi)型的任務(wù),所以加入CoT后任務(wù)表現(xiàn)會(huì)發(fā)生質(zhì)的變化。
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。