內容來源:ChatGPT 及大模型專題研討會
分享嘉賓:新浪新技術研發(fā)負責人、中國中文信息學會理事 張俊林
分享主題:《大型語言模型的涌現能力:現象與解釋》
轉載自:https://zhuanlan.zhihu.com/p/621438653
注1:本文整理自我在今年3 月 11 日 “中國人工智能學會”主辦、達觀數據承辦的「ChatGPT 及大模型專題研討會」上《大型語言模型的涌現能力:現象與解釋》的現場分享,介紹了大語言模型中的涌現現象,以及關于涌現能力背后原因的相關猜想。感謝CSDN幫助整理的文字稿。
注2:另,有人問了,既然很多自然現象也體現出涌現能力,那么大語言模型的涌現現象需要解釋嗎?我個人認為是需要的。畢竟,說大語言模型的某個特殊現象屬于“涌現現象”,也是被個別研究提出來,未有確切證明或證據,是否它和自然現象中出現的涌現現象內在機制是類似或一樣的,其實可以存疑。而且我認為大模型的這個現象,背后應該有些我們可以理解的原因。如果我們不追求現象背后的解釋,僅僅把目前解釋不了的現象統(tǒng)一歸類為涌現或者其它什么概念,就此了之。那么,其實我們也可以把大模型的目前理解不了的很多現象,統(tǒng)一歸類為這是一種“神跡”,那世界上很多事情就簡單多了。另另,用Grokking解釋涌現現象,盡管我把它稱為”用玄學解釋玄學“,但是覺得還是值得深入探索的方向,也許可以把上面的說法,優(yōu)化為”用含玄量較低的玄學解釋另外一個含玄量較高的玄學“。
注3:如果仔細分析的話,大語言模型的這個所謂“涌現現象”,如果僅僅把現象歸因于模型規(guī)模,目前看大概率是把問題簡化了,很有可能影響因素是多樣化的。如果讓我歸納的話,某個任務,大語言模型是否會出現“涌現現象”這個變量 y,很可能是以下多因素影響的某個未知函數:
而關于此,需要進一步更深入的研究與解釋。
一、什么是大模型的涌現能力
復雜系統(tǒng)學科里已經對涌現現象做過很久的相關研究。那么,什么是“涌現現象”?當一個復雜系統(tǒng)由很多微小個體構成,這些微小個體湊到一起,相互作用,當數量足夠多時,在宏觀層面上展現出微觀個體無法解釋的特殊現象,就可以稱之為“涌現現象”。
生活中的涌現現象
在日常生活中也有一些涌現現象,比如雪花的形成、堵車、動物遷徙、渦流形成等。這里以雪花為例來解釋:雪花的構成是水分子,水分子很小,但是大量的水分子如果在外界溫度條件變化的前提下相互作用,在宏觀層面就會形成一個很規(guī)律、很對稱、很美麗的雪花。
那么問題是:超級大模型會不會出現涌現現象?顯然我們很多人都知道答案,答案是會的。
大語言模型參數增長示意圖
我們先來看下大語言模型的規(guī)模增長情況。如果歸納下大語言模型在近兩年里最大的技術進展,很有可能就是模型規(guī)模的快速增長。如今,大規(guī)模模型一般超過 100B,即千億參數。如 Google 發(fā)布的多模態(tài)具身視覺語言模型 PaLM-E,由540B 的 PaLM 文本模型和 22B 的 VIT圖像模型構成,兩者集成處理多模態(tài)信息,所以它的總模型規(guī)模是 566B。
大語言模型規(guī)模不斷增長時,對下游任務有什么影響?對于不同類型的任務,有三種不同的表現:
第一類任務表現出伸縮法則:這類任務一般是知識密集型任務。隨著模型規(guī)模的不斷增長,任務效果也持續(xù)增長,說明這類任務對大模型中知識蘊涵的數量要求較高。
伸縮法則與涌現能力
第二類任務表現出涌現能力:這類任務一般是由多步驟構成的復雜任務。只有當模型規(guī)模大到一定程度時,效果才會急劇增長,在模型規(guī)模小于某個臨界值之前,模型基本不具備任務解決能力。這就是典型的涌現能力的體現。這類任務呈現出一種共性:大多數是由多步驟構成的復雜任務。
第三類任務數量較少,隨著模型規(guī)模增長,任務效果體現出一個U 形曲線。如上圖所示,隨著模型規(guī)模增長,剛開始模型效果會呈下降趨勢,但當模型規(guī)模足夠大時,效果反而會提升。如果對這類任務使用 思維鏈CoT技術,這些任務的表現就會轉化成伸縮法則,效果也會隨著模型規(guī)模增長而持續(xù)上升。
因此,模型規(guī)模增長是必然趨勢,當推進大模型規(guī)模不斷增長的時候,涌現能力的出現會讓任務的效果更加出色。
二、LLM表現出的涌現
目前有兩大類被認為具有涌現能力的任務,第一類是 In Context Learning(“Few-Shot Prompt”),用戶給出幾個例子,大模型不需要調整模型參數,就能夠處理好任務(參考上圖給出的情感計算的例子)。
如上圖展示,利用In Context Learning,已經發(fā)現在各種類型的下游任務中,大語言模型都出現了涌現現象,體現在在模型規(guī)模不夠大的時候,各種任務都處理不好,但是當跨過某個模型大小臨界值的時候,大模型就突然能比較好地處理這些任務。
第二類具備涌現現象的技術是思維鏈( CoT)。CoT本質上是一種特殊的few shot prompt,就是說對于某個復雜的比如推理問題,用戶把一步一步的推導過程寫出來,并提供給大語言模型(如下圖藍色文字內容所示),這樣大語言模型就能做一些相對復雜的推理任務。
從上圖可以看出,無論是數學問題、符號推理問題,CoT 都具備涌現能力。
除此之外,其他任務也有涌現能力,如上圖所示的數學多位數加法、命令理解等。
三、LLM模型規(guī)模和涌現能力的關系
可以看出,涌現能力和模型的規(guī)模大小有一定的關聯(lián)關系 ,那么,我們的問題是,具體而言,兩者是怎樣的關系呢?
我們分頭來看,先看下In Context Learning 的涌現能力和模型規(guī)模的關系。上圖展示了對于不同類型的具體任務, In Context Learning 的涌現能力和模型規(guī)模的對照關系。
從圖中數據可以看出,我們很難給出一個唯一的模型大小數值。不同類型的任務,在In Context Learning方面,模型多大才具備涌現能力,這跟具體的任務有一定的綁定關系。例如:圖表第一行的3位數加法任務,模型只要達到 13B(130億參數),就可以具備涌現能力,但是對倒數第二行的 Word in Context Benchmark任務而言,目前證明,只有540B 大小的模型才可以做到這點。我們只能說,就In Context Learning而言,如果模型達到 100B, 大多數任務可以具備涌現能力。
對于CoT來說,結論也是類似的,就是說要想出現涌現能力,模型規(guī)模大小和具體任務有一定的綁定關系。
四、把模型做小會影響LLM的涌現能力嗎?
因為對很多任務來說,只有模型規(guī)模做到比較大,才能具備涌現能力,所以我個人比較關心下列問題:我們能不能把模型做???把模型做小是否會影響到LLM的涌現能力?這是個很有趣的問題。我們這里拿兩個小模型代表來探討這個問題。
第一個小模型代表,是 DeepMind 2021年發(fā)表的模型 Chinchilla,這個模型目前做各種任務的效果,和 540B大小的PaLM 基本相當。Chinchilla的思路是給更多的數據,但是把模型規(guī)模做小。具體而言,它對標的是Gopher模型,Chinchilla模型大小只有 70B,是Gopher的四分之一,但是付出的代價是訓練數據總量,是Gopher的四倍,所以基本思路是通過放大訓練數據量,來縮小模型規(guī)模。
我們把Chinchilla規(guī)模做小了,問題是它還具備涌現能力嗎?從上圖給出的數據可以看出,起碼我們可以說, Chinchilla 在自然語言處理的綜合任務 MMLU 上是具備涌現能力的。如果小模型也能具備涌現能力,那么這其實側面反映了一個問題:對于類似 GPT3 這樣的模型而言,很可能它175B 這么多的模型參數,并沒有被充分利用,因此,我們在以后訓練模型的時候,可以考慮先增加訓練數據,降低模型參數量,把模型做小,先把模型參數利用充分,在這個基礎上,再繼續(xù)增加數據,并推大模型規(guī)模。也即是說,目前看,我們先把模型做小,再把模型做大,看上去是可行的。
第二個小模型代表是 Meta 發(fā)布的開源模型 LLaMA,它的做法其實很好理解,本質上就是開源的 Chinchilla,它的思路是完全遵照 Chinchilla 來做的,就是說增加訓練數據,但是把模型規(guī)模做小。那么LLaMA是否具備涌現能力呢?從上圖表格數據可以看出, 雖然LLaMA 在MMLU這個任務上比 Chinchilla 稍差一些,但是效果也不錯。這說明LLaMA在MMLU上基本也是具備涌現能力的。
其實,有個工作目前還沒有看到有人做,但是這個工作是很有價值的,就是充分測試當模型變得足夠小(比如10B-50B規(guī)模)以后,各種任務的涌現能力是否還具備?這是個很有價值的事情,因為如果我們的結論是即使把模型規(guī)模做小,各種任務的涌現能力可以保持,那么我們就可以放心地先追求把模型做小。
五、模型訓練中的頓悟現象
這里介紹一個比較新的研究方向,頓悟現象,英文叫 “Grokking”。在這里介紹模型訓練過程中的頓悟,目的是希望建立起它和大模型涌現能力之間的聯(lián)系,我在本文后面會嘗試用頓悟現象來解釋大模型的涌現能力。
我們首先解釋下什么是頓悟現象。如上圖所示,對于一個訓練數據較少的數學任務(通常是數字求和取余數的問題),研究人員發(fā)現一種新奇的現象。比如我們將數據集切成兩塊,50% 數據作為訓練集(圖中紅線展示了隨著訓練過程往后走,任務指標的變化情況),50% 的數據作為驗證集(圖中綠線的走勢展示了訓練動態(tài))。在學習數字求和取余這個任務時,它的訓練動態(tài)會經歷三個階段:
- 第一個階段是記憶期:紅線對應的訓練數據指標突然走高,代表模型記住了50%的訓練數據的結果,而綠線對應的驗證集指標接近0,說明模型完全沒有泛化能力,就是說沒有學會這個任務的規(guī)律。所以這個階段模型只是在單純地記憶訓練數據。
- 第二個階段是平臺期:這個階段是記憶期的延續(xù),體現為驗證集合效果仍然很差,說明模型仍然沒有學會規(guī)律。
- 第三個階段是泛化期:這個階段驗證集合效果突然變好,這說明突然之間,模型學會了任務里的規(guī)律,也就是我們說的,出現了頓悟現象,突然就學明白了。
后續(xù)研究表明:Grokking 本質上是在學習輸入數字的一個好的表征。如圖所示,可以看到由初始化向記憶期再到頓悟現象出現的過程,數字的表征逐步開始體現當前學習任務的任務結構。
那么 ,我們能用Grokking 來解釋大模型的涌現現象嗎?目前,有部分研究暗示兩者實際是存在某些關聯(lián)的,但尚未有研究明確地指出兩者之間的關系。兩者從走勢曲線看是非常接近的,但是有很大區(qū)別,因為Grokking描述的是模型訓練動態(tài)中的表現,而涌現表達的是模型規(guī)模變化時的任務表現,雖然走勢相近,但兩者不是一回事。我認為,要想用Grokking解釋涌現現象,核心是要解釋清楚下列問題:為什么規(guī)模小的語言模型不會出現 ?Grokking ?這是個很關鍵的問題。因為如果規(guī)模小以及規(guī)模大的語言模型都會出現Grokking,那么說明Grokking和模型規(guī)模無關,也就不可能用來解釋大模型的涌現現象。本文后面,我會給出一個自己的猜想,來建立兩者之間的聯(lián)系。