熱點解讀:大模型的突現能力和ChatGPT引爆的范式轉變
最近,人們對大型語言模型所展示的強大能力(例如思維鏈[2]、便簽本[3])產生了極大的興趣,并開展了許多工作。我們將之統稱為大模型的突現能力[4],這些能力可能[5] 只存在于大型模型中,而不存在于較小的模型中,因此稱為 “突現”。其中許多能力都非常令人印象深刻,比如復雜推理、知識推理和分布外魯棒性,我們將在后面詳細討論。
值得注意的是,這些能力很接近 NLP 社區幾十年來一直尋求的能力,因此代表了一種潛在的研究范式轉變,即從微調小模型到使用大模型進行上下文學習。對于先行者來說,范式轉變可能是很顯然的。然而,出于科學的嚴謹性,我們確實需要非常明確的理由來說明為什么人們應該轉向大型語言模型,即使這些模型昂貴[6]、難以使用[7],并且效果可能一般[8]。在本文中,我們將仔細研究這些能力是什么,大型語言模型可以提供什么,以及它們在更廣泛的 NLP / ML 任務中的潛在優勢是什么。
原文鏈接:yaofu.notion.site/A-Closer-Look-at-Large-Language-Models-Emergent-Abilities-493876b55df5479d80686f68a1abd72f
目錄
前提:我們假設讀者具備以下知識:
- 預訓練、精調、提示(普通從業者應具備的自然語言處理 / 深度學習能力)
- 思維鏈提示、便簽本(普通從業者可能不太了解,但不影響閱讀)
一、 存在于大模型而非小模型的突現能力
圖片來自于 Wei. et. al. 2022. Chain-of-Thought Prompting Elicits Reasoning in Large Language Models。X 軸為模型大小。GSM8K 是是一個小學水平的數學問題集。
在以上的效果圖中,我們可以觀察到模型的表現:
- 當尺寸相對小的時候提升并不大
- 當模型變大時有很明顯的提升
這從根本上說明,某些能力可能不存在于小模型中,而是在大模型中獲得的。
有很多種突現能力,比如 Wei 等人在 2022 年[9]所梳理的。有些能力很有意思,但我們在本文不會討論,比如把一串單詞的最后一個字母拼起來,我們認為這是 Python 而不是語言模型要做的任務;或者 3 位數加法,我們認為這是計算器而不是語言模型要做的事。
在本文中,我們主要對以下能力感興趣:
1. NLP 社區近幾年都關注,但之前的 NLP 模型很難達到的能力
2. 源自于人類語言最深層的本質的能力(能力的深度)
3. 可能達到人類智力的最高水平的能力(能力的上限)
二、 突現能力的三個典型例子
很多有意思的能力都可以歸到上文提到的類別里,在它們之中,我們主要討論以下三種典型能力:
- 復雜推理
- 知識推理
- 分布外魯棒性
接下來讓我們一個個詳細討論。
復雜推理
下面是一個 GSM8K 數據集中,用提示詞顯著超過精調的例子:
雖然這道題對于 10 歲的孩子來說很容易,但對語言模型來說卻很難,主要是由于數學和語言混合在一起。
GSM8K 最初由 OpenAI 于2021 年 10 月[10]提出。當時他們用第一版[11]GPT3 在全部訓練集上進行了精調,準確率約為 35%。這個結果讓作者相當悲觀,因為他們的結果顯示了語言模型的縮放規律:隨著模型大小呈指數增長,性能呈線性增長(我之后會討論)。因此,他們在第 4.1 節中思考:
“175B 模型似乎需要至少額外兩個數量級的訓練數據才能達到 80% 的求解率。”
三個月后,即2022 年 1 月,Wei 等人[12] 基于540BPaLM 模型,僅使用了 8 個思維鏈提示示例便將準確率提高到 56.6%(無需將訓練集增加兩個數量級)。之后在 2022 年 3 月,Wang 等人[13] 基于相同的 540B PaLM 模型,通過多數投票的方法將準確率提高到74.4%。當前的 SOTA 來自我自己在 AI2 的工作(Fu et. al. Nov 2022[14]),我們通過使用復雜的思維鏈在 175B Codex 上實現了 82.9% 的準確率。從以上進展可以看到,技術進步確實呈指數級增長。
思維鏈提示是一個展示模型隨著規模突現出能力的典型例子:
- 從突現能力來看:只有模型大于 100B ,才能使思維鏈的效果大于的僅有回答提示。所以這種能力只存在于大型模型中。
- 從效果來看:思想鏈提示的性能明顯優于其之前的精調[15]方法。
- 從標注效率上來看:思維鏈提示只需要 8 個示例的注釋,而微調需要完整的訓練集。
有些同學可能會認為模型能做小學數學代表不了什么(從某種意義上說,他們確實沒有那么酷)。但 GSM8K 只是一個開始,最近的工作已經把前沿問題推向了高中[16]、大學[17],甚至是國際數學奧林匹克問題[18]。現在更酷了嗎?
知識推理
下一個例子是需要知識的推理能力(例如問答和常識推理)。在這種情況下,對大型模型進行提示不一定優于精調小型模型(哪個模型更好還有待觀察)。但是這個情況下的注釋效率被放大了,因為:
- 在許多數據集中,為了獲得所需的背景 / 常識知識,(以前很小的)模型需要一個外部語料庫 / 知識圖譜來檢索[19],或者需要通過多任務學習在增強[20]的數據上進行訓練
- 對于大型語言模型,可以直接去掉檢索器[21],僅依賴模型的內部知識[22],且無需精調
圖片來自于 Yu et. al. 2022. 以前的 SOTA 模型需要從外部知識源中檢索。GPT-3 的性能與以前的模型相當 / 優于以前的模型,且無需檢索。
如表中所示,與數學題的例子不同,GPT-3 并沒有明顯優于之前的精調模型。但它不需要從外部文檔中檢索,本身就包含了知識[23]。
為了理解這些結果的重要性,我們可以回顧一下歷史:NLP 社區從一開始就面臨著如何有效編碼知識的挑戰。人們一直在不斷探究把知識保存在模型外部或者內部的方法。上世紀九十年代以來,人們一直試圖將語言和世界的規則記錄到一個巨大的圖書館中,將知識存儲在模型之外。但這是十分困難的,畢竟我們無法窮舉所有規則。因此,研究人員開始構建特定領域的知識庫,來存儲非結構化文本、半結構化(如維基百科)或完全結構化(如知識圖譜)等形式的知識。通常,結構化知識很難構建(因為要設計知識的結構體系),但易于推理(因為有體系結構),非結構化知識易于構建(直接存起來就行),但很難用于推理(沒有體系結構)。然而,語言模型提供了一種新的方法,可以輕松地從非結構化文本中提取知識,并在不需要預定義模式的情況下有效地根據知識進行推理。下表為優缺點對比:
分布外魯棒性
我們討論的第三種能力是分布外的魯棒性。在 2018 年至 2022 年期間,NLP、CV 和通用機器學習領域有大量關于分布偏移 / 對抗魯棒性 / 組合生成的研究,人們發現當測試集分布與訓練分布不同時,模型的行為性能可能會顯著下降。然而,在大型語言模型的上下文學習中似乎并非如此。Si 等人[24] 在 2022 年的研究顯示:
數據來自于 Si et. al. 2022. 雖然 GPT-3 在同分布設置下比 RoBERTa 要差,但在非同分布設置下優于 RoBERTa,性能下降明顯更小。
同樣,在此實驗中,同分布情況下基于提示詞的 GPT-3 的效果并沒有精調后的 RoBERTa 要好。但它在三個其他分布(領域切換、噪聲和對抗性擾動)中優于 RoBERTa,這意味著 GPT3 更加魯棒。
此外,即使存在分布偏移,好的提示詞所帶來的泛化性能依舊會繼續保持。比如:
圖片來自于 Fu et. al. 2022. 即使測試分布與訓練分布不同,復雜提示也始終比簡單提示的表現更好。
Fu 等人 2022 年[25] 的研究顯示,輸入提示越復雜,模型的性能就越好。這種趨勢在分布轉移的情況下也會繼續保持:無論測試分布與原分布不同、來自于噪聲分布,或者是從另一個分布轉移而來的,復雜提示始終優于簡單提示。
到目前為止的總結
在上文中,我討論了只有大型模型才有的三種突現能力。它們是:
- 復雜推理,大型模型在沒有使用全部訓練數據的情況下便顯著優于以前的小型模型。
- 知識推理,大型模型可能沒有小模型效果好,但大模型不需要額外的知識來源(知識可能很昂貴,或者很難從非結構化數據中抽取)。
- 分布外魯棒性,這是之前進行模型精調時需要努力解決的問題。大型模型雖然在同分布情況下的效果不如以前的方法,但非同分布情況下的泛化性能卻好得多。
三、突現能力推翻比例定律
鑒于上文列出的優點,大家可能會開始覺得大型語言模型確實很好了。在進一步討論之前,讓我們再回顧一下之前的工作,就會發現一個很奇怪的問題:GPT-3 在 2020 年就發布了,但為什么直到現在我們才發現并開始思考范式的轉變?
這個問題的答案就藏在兩種曲線中:對數線性曲線和相變曲線。如下圖:
左圖:比例定律。當模型大小呈指數增長時,相應的模型性能呈線性增長。右圖:當模型尺寸達到一定規模時,會出現突現能力,讓性能急劇增加。
最初,(OpenAI)的研究者認為語言模型的性能與模型尺寸的關系可以通過對數線性曲線預測,即模型尺寸呈指數增長時,性能會隨之線性增加。這種現象被稱為語言模型的縮放定律,正如 Kaplan 等人在 2020 年[26] 最初[27] 的 GPT3 文章中討論的那樣。重要的是,在那個階段,即便最大的 GPT-3 在有提示的情況下也不能勝過小模型精調。所以當時并沒有必要去使用昂貴的大模型(即使提示詞的標注效率很高)。直到 2021 年,Cobbe 等人[28] 發現縮放定律同樣適用于精調。這是一個有點悲觀的發現,因為它意味著我們可能被鎖定在模型規模上 —— 雖然模型架構優化可能會在一定程度上提高模型性能,但效果仍會被鎖定在一個區間內(對應模型規模),很難有更顯著的突破。
在縮放定律的掌控下(2020 年到 2021),由于 GPT-3 無法勝過精調 T5-11B,同時 T5-11B 微調已經很麻煩了,所以 NLP 社區的關注點更多的是研究更小的模型或者高效參數適應。Prefix tuning[29] 就是提示和適應交叉的一個例子,后來由 He 等人[30] 在 2021 統一。當時的邏輯很簡單:如果精調效果更好,我們就應該在高效參數適應上多下功夫;如果提示詞的方法更好,我們應該在訓練大型語言模型上投入更多精力。
之后在 2022 年 1 月,思維鏈的工作被放出來了。正如作者所展示的那樣,思維鏈提示在性能 - 比例曲線中表現出明顯的相變。當模型尺寸足夠大時,性能會顯著提高并明顯超越比例曲線。
當使用思維鏈進行提示時,大模型在復雜推理上的表現明顯優于微調,在知識推理上的表現也很有競爭力,并且分布魯棒性也存在一定的潛力。要達到這樣的效果只需要 8 個左右的示例,這就是為什么范式可能會轉變(注:本文完成于 ChatGPT 上線之前的一個月;在 ChatGPT 上線之后,整個領域為之震撼,意識到范式已經轉變了)。
四、 范式轉變意味著什么?
范式轉變究竟意味著什么?下面我們給出精調和提示詞方法的對比:
提示詞的好處很明顯:我們不再需要繁瑣的數據標注和在全量數據上進行精調,只需要編寫提示詞并獲得滿足要求的結果,這比精調要快很多。
另外要注意的兩點是:
上下文學習是監督學習嗎?
- 坦白講,我不確定。
- 相似之處在于,上下文學習也需要像訓練數據一樣的示例
- 不同之處在于,上下文學習的泛化行為并不同于監督學習,這使得之前的泛化理論(例如 Rademancher Complexity 或 Neural Tangent Kernel)均不適用。
上下文學習真的比監督學習效果要好嗎?
- 答案還未知。
- 大多數提示詞和精調的對比都只比了 提示詞 + 大模型 vs 精調 + 小模型,但公平的對比應該是 提示詞 + 大模型 vs 精調 + 大模型,且對比時的基座模型應該一樣。所以在最初的思維鏈文章中,如果 Wei 等人要說明提示詞好于精調,他們應該對比精調后的 PaLM,而不是 GPT3。
- 我的假設是:精調可以提高分布內的性能,但會損害分布外的魯棒性。提示詞在分布轉化的場景中表現更好,但在同分布場景下不如精調。
- 如果假設是真的,那么一個值得研究的問題就是如何在不犧牲其上下文學習能力的情況下進行精調
- 注意分布外精調的效果同樣會隨著模型尺寸變化。比如 Yang 等人在 2022 年的工作中,第四張表就顯示,Bart-based 的分布外泛化能力會下降,但 Bart-large 則提升。對于大模型,當測試集的分布和訓練集相差不大時,分布內的精調效果也應該會提升。
再回顧一下前文提到的的邏輯:如果精調更好,我們應該努力研究如何進行參數高效的優化;如果提示詞更好,我們應該努力去訓練更好的大型語言模型。
所以,盡管我們相信大型語言模型有巨大的潛力,仍然沒有確鑿的證據表明精調和提示詞哪種方法更好,因此我們不確定范式是否真的應該轉變、或應該轉變到什么程度。仔細比較這兩種范式,使我們對未來有一個清晰的認識,是非常有意義的。我們將更多討論留到下一篇文章。
五、 模型應該多大才夠?
兩個數字:62B 和 175B。
- 模型至少需要 62B,使思維鏈的效果才能大于標準的提示詞方法。
- 模型至少需要 175B(GPT3 的尺寸),思維鏈的效果才能大于精調小模型(T5 11B)的效果。
62B 這個數字來自于 Chung 等人 2022 年[31] 工作的第五張表:
對于所有小于 62B 的模型,直接用提示詞都好于思維鏈。第一個用思維鏈更好的模型是 Flan-cont-PaLM 62B 在 BBH 上的結果。540B 的模型使用思維鏈會在更多任務上得到好的效果,但也不是全部任務都好于精調。另外,理想的尺寸可以小于 540B,在 Suzgun 等人 2022 年[32]的工作中,作者展示了 175B 的 InstructGPT 和 175B 的 Codex 使用思維鏈都好于直接用提示詞。綜合以上結果,我們得到了 63B 和 175B 兩個數字。所以,如果想要參與這場游戲,首先要有一個大于平均尺寸的模型。
不過,還有其他大型模型在思維鏈下的表現差了很多,甚至不能學到思維鏈,比如 OPT、BLOOM 和 GPT-3 的第一個版本。他們的尺寸都是 175B。這就引出了我們下一個要討論的問題。
六、 規模是唯一的因素嗎?
不是。
規模是一個必要但不充分的因素。有些模型足夠大(比如 OPT 和 BLOOM,都是 175B),但并不能做思維鏈。
有兩種模型[33] 可以做思維鏈:
- GPT3 系列的模型,包括 text-davinci-002 和 code-davinci-002 (Codex)。這是僅有的兩個具有強大突現能力并可公開訪問的模型。
- 除了以上兩個模型,其他 GPT3 模型,包括原來的 GPT3,text-davinci-001,以及其他更小的 GPT-3 模型,都不能做思維鏈。
- 當說 “能做思維鏈” 時,我們是指使用思維鏈方法的效果比直接用提示詞、精調 T5-11B 效果更好。
- 另外要注意的是,code-davinci-002 在語言任務上的性能始終優于[34] text-davinci-002。這個觀察非常有趣且耐人尋味。這表明基于代碼數據訓練的語言模型可以勝過根據語言訓練的語言模型。目前為止我們還不知道是為什么。
- PaLM 系列模型,包括 PaLM、U-PaLM、Flan-PaLM 和 Minerva。這些模型目前還未開放訪問(此處 @谷歌,快開源吧)。
為什么會有突現能力目前還不清楚,但我們找出了一下可能產生突現能力的因素:
- 指令精調:GPT-3 text-davinci-002 就是用指令 + 強化學習[35] 精調的產物。在這之前,text-davinci-001 做思維鏈的效果并不好。同時 PaLM[36] 在經過指令精調后[37]的效果也有提升。
- 在代碼上精調:Codex code-davinci-002 是在代碼上進行精調的,它的效果持續好于 text-davinci-002。PaLM 也在代碼上進行了調整。從表面上看,代碼與語言關系不大,但似乎起了很大作用,我們會在之后的文章進行討論。
- 用思維鏈精調:在 text-davinci-002 發布時,谷歌已經發布 PaLM 3 個月了。所以 OpenAI 應該看到了思維鏈相關的工作。還有一些工作[38] 表明,直接用思維鏈數據進行精調可以激發模型的思維鏈能力。
然而,所有這些因素在現階段都是推測。揭示如何訓練才能讓模型產生突現能力是非常有意義的,我們將更多討論留到??下一篇文章??。
七、總結 Conclusion
在本文中,我們仔細研究了語言模型的突現能力。我們強調了復雜推理、知識推理和分布外魯棒性的重要性和其中存在的機會。突現能力是非常令人興奮的,因為它們可以超越比例定律,并在比例曲線中表現出相變。我們詳細討論了研究范式是否會真的從精調轉向上下文學習,但我們目前還沒有確切答案,因為精調和上下文學習在分布內、分布外場景下的效果仍有待對比。最后,我們討論了產生突現能力的三個潛在因素:指令精調、代碼精調和思維鏈精調。非常歡迎大家提出建議和討論。
另外我們還提到了兩個尚未討論的有趣問題:
- 我們是否能公平對比精調和上下文學習的效果?
- 我們是如何訓練大模型,才能讓模型具備突現能力、思維鏈能力?
對于這兩個問題,我們會在??之后的文章???中進行討論。