為什麼所有GPT-3復現都失敗了?使用ChatGPT你應該知道這些

王林
發布: 2023-04-08 12:37:55
轉載
884 人瀏覽過

這則推文寫於 2023 年 2 月 12 日,其中皆為個人意見,僅供參考。 

為什麼所有公開的 GPT-3 的複現都失敗了?我們應該在哪些任務上使用 GPT-3.5 或 ChatGPT?

這篇推文將包括,我在仔細重新檢查了一系列文章的細節之後給出的總結,以及對上面兩個問題我個人的思考。這些文章包括且不限於:GPT-3, PaLM, BLOOM, OPT, FLAN-T5/PaLM, HELM 等。如果您有更可靠的參考資料或更實際的經驗,歡迎指正。 

對於想要重現一個屬於自己的 GPT-3 或 ChatGPT 的人而言,第一個問題是關鍵的。第二個問題則對那些想要使用它們的人是重要的(下文提到 GPT-3,主要是指 GPT-3.5 或 InstructGPT 的最新版本,除了一些指向 GPT-3 原文的情況)。

為什麼所有公開的 GPT-3 的複現都失敗了?

這裡,我稱之為“失敗”,是指訓練得出模型有接近GPT-3 或更大的參數量,但仍無法與GPT-3 原始文獻中報告的性能所匹配。在這一標準下,GPT-3 和 PaLM 是 “成功” 的,但這兩個模型都不是公開的。而所有的公開模型(例如:OPT-175B 和 BLOOM-176B)都在一定程度上 “失敗” 了。但是我們仍然可以從這些 “失敗” 中學到一些教訓。

我們需要注意的是,假如能夠多次嘗試各種不同的訓練設置,開源社群可能最終可以復現 GPT-3。但截至目前,訓練另一個版本的OPT-175B 的開銷仍然太過高昂—— 對於如此大規模的模型,一次訓練就將需要在約1000 個80G A100 GPU 上花費至少2 個月的時間(數據來自於OPT 的原始文獻)。

儘管一些文章(例如OPT-175B 和GLM-130B)聲稱它們在一些任務上能夠匹配甚至超過原始的GPT-3 的表現,在更多GPT-3 已經在測試過的任務上,這種聲明仍然是存疑的。同時,根據大多數使用者在更多樣的任務上的經驗,以及 HELM 的評估來看,最近的  OpenAI GPT-3 的 API 表現也仍然比這些開源模型更好。

儘管它背後的模型可能使用了指令微調(instruction tuning, 正如InstructGPT 那樣),類似的使用了指令微調的OPT 版本(OPT-IML)和BLOOM 版本(BLOOMZ )也仍然遠比InstructGPT 和FLAN-PaLM(PaLM 的指令微調版本)差很多。

根據文章的細節,有多個可能的原因導致了比較 GPT-3 和 PaLM 的成功,OPT-175B 和 BLOOM-176B 的失敗。我將其分為兩個部分:預訓練資料和訓練策略。

預訓練資料

#讓我們先觀察 GPT-3 是如何準備和使用預訓練資料的。 GPT-3 在共 300B 的 token 上進行訓練,其中 60% 來自經過篩選的 Common Crawl,其它則來自:webtext2(用於訓練 GPT-2 的語料庫),Books1,Books2 和維基百科。

更新版本的 GPT-3 也用了程式碼資料集進行訓練(例如 Github Code)。每個部分的佔比並不與與原始資料集的大小成比例,相反的,具有更高品質的資料集被更頻繁地取樣。導致OPT-175B 和BLOOM-176B 失敗的,可能是以下三個困難,它們使得開源社群難以收集到類似的資料:

1. 第一點是一個具有良好性能的用於篩選低品質資料的分類器。它被用來建立 GPT-3 和 PaLM 的預訓練資料集,但在 OPT 和 BLOOM 的訓練中卻沒有被採用。一些文章已經展示,一個用更少但質量更高的數據集訓練的預訓練模型,可以在性能上超過另一個用更多的混合質量數據集訓練的模型。當然,數據的多樣性仍然是十分重要的,正如我們將在第三點中討論的那樣。因此,人們應非常小心地處理在資料多樣性和品質之間的權衡。

2. 第二點是預訓練資料集的去重。去重有助於避免預訓練模型多次面對相同的資料後記住它們或在其上過擬合,因此有助於提高模型的泛化能力。 GPT-3 和 PaLM 採用了文件層級的去重,這同樣被 OPT 所採用。但OPT 預訓練的去重Pile 語料庫中仍有許多重複存在,這也可能導致它較差的表現(註:在一些最近的文獻中顯示去重對於預訓練語言模型的重要性可能沒有想像中大)。

3. 第三點是預訓練資料集的多樣性,包括領域多樣性、格式多樣性(例如:文本、程式碼和表格)和語言多樣性。 OPT-175B 所使用的 Pile 語料庫聲稱有著更好的多樣性,但 BLOOM 採用的 ROOTS 語料庫則有太多的已經存在的學術資料集,缺乏 Common Crawl 資料所包含的多樣性。這可能導致 BLOOM 效能更差。作為對比,GPT3 來自Common Crawl 語料的佔比則要高得多,而它們是多樣的和來自廣泛領域的,這也可能是GPT-3 能夠作為首個通用聊天機器人ChatGPT 的基礎模型的原因之一。

請注意:雖然一般來說,多樣性的數據對於訓練一個通用的LLM(Large Language Model,大規模語言模型)是重要的,但特定的預訓練數據分佈,則會對LLM 在特定的下游任務上的表現產生巨大的影響。例如,BLOOM 和 PaLM 在多語言資料上有更高的佔比,這導致它們在一些多語言任務和機器翻譯任務上有更高的表現。

OPT 使用了許多對話資料(例如 reddit),這可能是它在對話中表現好的原因之一。 PaLM 有很大的佔比在社群媒體對話中,這可能是它在多種問答任務和資料集上有著卓越表現的原因。同樣的,PaLM 和更新版本的 GPT-3 有很大比例的程式碼資料集,這增強了它們在程式碼任務上的能力,以及可能增強了它們 CoT (Chain-of-Thought,思維鏈) 的能力。

一個有趣的現像是 BLOOM 在程式碼和 CoT 上的表現仍然是較差的,儘管它在預訓練過程中使用了程式碼資料。這可能暗示著單獨程式碼資料本身,並不能保證模型的程式碼和 CoT 能力。

總之,一些文章表明了上面三點的重要性,即:透過數據去重避免記憶和過度擬合,透過數據篩選以獲得高品質數據,保證數據多樣化性以確保LLM 的泛化性。但不幸的是,對於 PaLM 和 GPT-3 預處理這些數據的細節,或者這些預訓練數據本身,仍然沒有公佈,這使得公共社區很難復現它們。

訓練策略

#此處訓練策略包含訓練框架、訓練持續時間、模型架構/ 訓練設定、訓練過程中的修改。在訓練非常大的模型時,它們被用來獲得更好的穩定性和收斂性。一般來說,由於未知的原因,預訓練過程中廣泛觀察到損失尖峰(loss spike)和無法收斂的情況。因此,眾多的訓練設定和模型架構的修改被提出,用來避免這些問題。但是其中一些修改在 OPT 和 BLOOM 之中還不是最優解,這可能導致它們的性能較差。 GPT-3 並沒有明確提到他們是如何解決這個問題的。 

1. 訓練架構。一個參數量大於175B 的模型往往需要ZeRO 式的資料並行(pipeline parallel),有時還包括序列並行(sequence parallel) )。 OPT 採用了 ZeRO 的 FSDP 實現,以及模型並行的 Megatron-LM 實現。 BLOOM 採用了 ZeRO 的 Deepspeed 實作和模型並行的 Megatron-LM 實作。

PaLM 採用了 Pathways,這是一個基於 TPU 的模型並行和資料並行系統。 GPT-3 的訓練系統的細節仍然未知,但它們至少在一定程度上使用了模型並行(有些人稱它使用了 Ray)。不同的訓練系統和硬體可能導致不同的訓練時的現象。顯然,一些在 PaLM 的文章中呈現的、用於 TPU 訓練的設置,可能並不適用於其它所有模型使用的 GPU 訓練。

硬體和訓練框架的一個重要的影響是,人們是否可以使用 bfloat16 去儲存模型權重和中間層激活值等。這已經被證明是穩定訓練的一個重要因素,因為 bfloat16 可以表示更大範圍的浮點數,能夠處理在損失尖峰時出現的大數值。在 TPU 上 bfloat16 是預設設置,這可能是 PaLM 能夠成功的一個秘密。但在 GPU 上,以前人們主要使用 float16,這是 V100 中混合精度訓練的唯一選擇。

OPT 使用了 float16,這可能是其不穩定的因素之一。 BLOOM 發現了這樣的問題並最終在A100GPU 上使用了bfloat16,但它沒有意識到這種設置的重要性,因此在第一個詞向量層後引入額外的層歸一化(layer normalization),用於解他們使用float16 的初步實驗中的不穩定性。然而,這種層歸一化已被證明會導致更糟糕的零樣本泛化(zero-shot generalization),這可能是 BLOOM 失敗的一個因素。 

2. 訓練過程中的修改。 OPT 做了很多中途調整並從最近的checkpoint 重啟訓練,包括改變截斷梯度範數(clip gradient norm) 和學習率,切換到簡單的SGD 優化器然後回到Adam,重置動態損失標量(dynamic loss scalar ),切換到更新版本的Megatron 等等。

這個中途調整可能是 OPT 失敗的原因之一。相比之下,PaLM 幾乎沒有做任何中途調整。它只是當損失尖峰出現時,從尖峰開始前大約 100 步的 checkpoint 重新開始訓練,並跳過了大約 200-500 個 batch 的資料。僅僅依靠這種簡單的重啟,PaLM 就取得神奇的成功。這是由於它在預訓練資料建置期間就已經完成採樣,因此模型具有在 Bit 意義上的確定性,以及它對模型架構和訓練設定進行了許多修改以獲得更好的穩定性。 PaLM 中的此類修改在下一點中展示。

3. 模型架構/ 訓練設定:為了使訓練更穩定,PaLM 對模型架構和訓練設定進行了多項調整,包括使用Adafactor 的修改版本作為優化器,縮放在softmax 之前的輸出logit,使用輔助損失來鼓勵softmax 歸一化器接近0,對詞向量和其他層權重使用不同的初始化,在前饋層和層歸一化中不使用偏差項,並且在預訓練期間不使用dropout。

請注意,GLM-130B 中還有更多有價值的內容關於如何穩定地訓練非常大的模型,例如:使用基於DeepNorm 的後置層歸一化而不是前置層歸一化,以及詞向量層梯度收縮。以上大多數模型修改沒有被 OPT 和 BLOOM 採用,這可能會導致它們的不穩定和失敗。 

4. 訓練過程:如下表所示,原始的 GPT-3 預訓練過程所見過的 token 數與 OPT 和 BLOOM 接近,而 PaLM 則遠遠超過了它們。同樣,PaLM 和 GPT-3 預訓練語料庫都大於 BLOOM 和 OPT。因此,在更多的 token 上、用更大規模的高品質語料庫進行預訓練可能是 GPT-3 和 PaLM 成功的一個重要因素。

為什麼所有GPT-3復現都失敗了?使用ChatGPT你應該知道這些

#除了上面列出的四點,還有一些其它因素,它們可能對於更穩定的訓練並不重要,但仍可能影響最終的表現。

第一點,PaLM 和GPT-3 都使用了在訓練過程中從小到大逐漸增加的batch size,這已經被展示對於訓練一個更好的LLM 是有效的,然而OPT 和BLOOM 都使用了恆定的batch size。

第二點,OPT 使用了 ReLU 激活函數,而 PaLM 使用 SwiGLU 激活函數,GPT-3 和 BLOOM 使用 GeLU,它通常使得訓練的 LLM 的性能更好。

第三點,為了更好的建模更長的序列,PaLM 使用RoPE 詞向量,BLOOM 使用ALiBi 詞向量,而原始的GPT-3 和OPT 使用學習得到的詞向量,這可能影響在長序列上的表現。

我們應該在哪些任務上使用 GPT-3.5 或 ChatGPT?

我嘗試解釋我們應該在哪些任務和應用上使用 GPT-3,而哪些則不該使用。為了展示 GPT-3 是否適合某個特定任務,我主要比較了帶有提示(prompting)的 GPT-3 和經過微調的較小的模型,這些小模型有時還加入了其他特殊的設計。鑑於最近出現的更小的而且可以微調的 FLAN-T5 模型的良好性能,這一問題更加重要。

在理想情況下,如果微調 GPT-3 的負擔是能夠承擔的,它可能會帶來更進一步的提升。然而,在一些任務上透過微調 PaLM-540B 帶來的提升是如此有限,讓人們懷疑在一些任務中微調 GPT-3 是否是值得的。從科學的角度來看,更公平的比較應在微調 GPT-3 和提示 GPT-3 之間進行。然而,要使用 GPT-3,人們可能更關心將提示 GPT-3 和微調一個較小的模型去進行比較。

注意到,我主要關心的是將完成任務的精確度作為度量,但仍然存在許多其它重要的維度,例如:有害性(toxicity)、公平性等,它們也應該在決定是否使用GPT-3 時被納入考慮,正如HELM 的文章中所呈現的那樣。下圖展示了一個粗略的決策流程,希望它能夠作為一個有用的實踐指南,無論對於已有任務還是一個全新的任務。

為什麼所有GPT-3復現都失敗了?使用ChatGPT你應該知道這些

註1

:由於在對話場景下的良好對齊,ChatGPT 作為一個聊天機器人表現優異。但我們通常使用 GPT-3、InstructGPT (GPT-3.5)、以及 Codex 這些 ChatGPT 背後的模型作為在更多任務和使用情境下的通用模型。

註2

#:這一節的結論是基於一些對模型目前版本的發現所得到的,這可能不適用於未來的更強的模型。因為,使用更多與目標資料集接近的預訓練資料、學術資料集指令調整(例如提示一個FLAN-PaLM 可能會帶來更強的效能,它仍未公開)或透過RLHF 以使得模型對目標任務的更好對齊,這些都可能使得模型在目標任務中表現更好,即使有時這會犧牲在其他場景下的能力(例如,InstructGPT 的“對齊稅/ Alignment tax”)。

在這種情況下,很難判斷GPT 是進行泛化和跨任務泛化,還是僅僅在預訓練時就已經記住了一些測試範例,或者說見過那些在預訓練時所謂「沒有見過」 的任務。然而,記憶在實踐中是否真的是一個嚴重的問題,這仍然值得懷疑。因為使用者與研究人員不同,如果他們發現 GPT 已經可以在他們的測試資料上表現良好,他們可能不會關心 GPT 在預訓練期間是否看到了相同或相似的資料。

不論如何,為了最大化這一節在當前的實用價值,我盡最大努力,試圖比較微調公共的更小型的模型(T5、FALN-T5、一些特殊設計的微調SOTA 模型等)和最近的GPT-3 (GPT-3.5、InstructGPT)、PaLM(或FLAN-PaLM)的最佳性能,如果這些模型的測評數據夠獲得的話。

######適合使用GPT-3的任務################一般來說,有以下這些情況更適合使用提示GPT -3。令人驚訝的是,如果我們回看 GPT-3 論文的介紹部分,在那裡許多初始設計時的目標涵蓋了這些任務。這意味著那些當初宏偉的目標已經部分實現了。 #######

1. 創意與複雜的任務#:包含程式碼(程式碼補全、自然語言指令產生程式碼、程式碼翻譯、bug 修復)、文字摘要、翻譯、創意寫作(例如寫故事、文章、電子郵件、報告,以及寫作的改進等)。如同原始的 GPT-3 文獻所示,GPT-3 被設計用於那些困難和 「不可能標註」 的任務。在某種程度上,對於這些任務,先前那種經過微調的模型不可能應用於真實世界的應用;而 GPT-3 使它們成為可能。舉個例子,最近的文章顯示,過去的人類標註的文本摘要已經被 LLM 生成的摘要所超越。

在某些需要從低、中​​資源語言翻譯到英語的機器翻譯任務中,透過提示 PaLM-540B,它甚至能夠超越微調模型。

在 BLOOM-176B 中也觀察到了類似的趨勢。這是因為英語資料通常在預訓練語料庫中佔了很大比例,因此 LLM 擅長於生成英語語句。注意到,為了在程式碼任務中獲得良好性能,儘管Codex 和PaLM 已經在整體上具有比之前模型更好的性能,我們仍然需允許LLM 多次(k 次)採樣,以通過測試樣例(使用pass @k 作為度量)。 

2. 只有少數標註或沒有標註資料的任務。正如原始的 GPT-3 文獻所說,GPT-3 是為了那些 “昂貴標註” 的任務設計的。在這種情況下,用極少量標註資料微調一個較小的模型通常不可能達到GPT-3 在零樣本(zero-shot)、單樣本(ont-shot)或少樣本(few-shot)的情況下的表現。 

3. 分佈外(Out-of-distribution, OOD)泛化。給定一些訓練數據,傳統的微調可能會過度擬合訓練集並且有較差的分佈外泛化能力;而少樣本的上下文學習(in-context learning)能夠有更好的分佈外泛化性。例如,帶有提示的 PaLM 能夠在對抗自然語言推斷任務(Adversarial Natural Language Inference,ANLI)上超越經過微調的 SOTA 模型,而它在正常的語言推斷任務上可能仍然劣於微調的 SOTA。

另一個例子是提示 LLM 比微調模型顯示出更好的組合泛化能力。更好的分佈外泛化性可能是因為在上下文學習期間不需要更新參數,避免了過擬合;或者因為那些過去的分佈外樣例對於 LLM 而言是分佈內的。這種使用情境被闡釋為GPT-3 的初始設計目標之一:「微調模型在特定任務的資料集上的表現可以達到所謂的人類水平,實際上可能誇大了在真實世界中該任務上的表現,這是因為模型只是學習了訓練集中存在的虛假的相關性,以及模型過度擬合了這個訓練集狹窄的分佈。」 

##4 . 需要處理多種任務的能力,而非專注於特定任務上的卓越表現。聊天機器人就是這樣一種場景,其中,用戶期待它能夠正確地回應各種各樣的任務。這也許就是為什麼 ChatGPT 是 GPT-3 最成功的使用情境之一。 

#5. 那些檢索不可行的知識密集任務。儲存在LLM 中的知識可以顯著地提高在知識密集型任務的效能,例如閉卷問答和MMLU(一個基準資料集,包括來自於STEM、人文、社科等57 個學科的選擇題,它用於測試LLM 的世界知識和問題解答的能力)。然而,如果預先檢索的步驟可以被加入來做檢索增強的生成,一個微調的更小的模型(例如Atlas 模型)甚至可以有更好的性能(在閉卷的NaturalQuestions 和TrivialQA 數據集上,Atlas 比PaLM而最新的InstructGPT 都要更好)。

檢索或傳統的搜尋同樣是將 GPT-3 或 ChatGPT 整合到搜尋引擎中的一個必要的步驟,這可以提升生成的準確性,並且提供更多的參考連結以增強說服力。但我們應該承認,在某些情況下,檢索是不允許或不容易的,例如參加 USMLE (美國醫學執照考試),谷歌已經證明基於 FLAN-PaLM 的模型可以在其中做得很好。

同樣的,在MMLU 基準集中,PaLM-540B 有著比其他微調模型更好的性能,甚至後者結合了檢索,儘管最新版本的InstructGPT 還差於這些帶有檢索的微調SOTA。也請注意,指令調整一個較小的模型也可以實現與更大規模的 LLM 模型接近的效果,這已經在 FLAN-T5 中展現。

6. 一些困難的任務,其中需要LLM 的湧現能力,例如有CoT 的推理和BIG-Bench 中的複雜任務(包括邏輯推理、翻譯、問答、數學任務等)。舉個例子,PaLM 已經展示,在7 個包括數學和常識推理的多步驟推理任務上,8 - 範例的CoT 比微調SOTA 在其中4 個任務上更好,在其它3 個任務上則基本持平。

這樣的成功表現要同時歸因於更大規模的模型和 CoT。 PaLM 也顯示了在 BIG-Bench 任務上從 8B 到 62B 再到 540B 模型的不連續的表現提升,這超出了規模定律(scailing law),被稱為 LLMs 的湧現能力。另外,帶有 5 個 Prompt 的 PaLM-540B 在 Big-Bench 的 58 項常見任務中的 44 項上優於之前的(少樣本)SOTA。 PaLM-540B 在 Big-Bench 的整體表現也優於人類的平均表現。

7. 一些需要模仿人類的場景,或者是其目標是製作性能達到人類水平的通用人工智慧。同樣的,ChatGPT 是其中的一個案例,ChatGPT 讓自己更像一個人,從而取得了現象級的成功。這也被解釋為GPT-3 的初始設計目標之一:「人類不需要大規模監督資料集來學習大多數語言任務。最多只需要幾個例子,人類就可以將各種任務和技巧無縫地混合在一起或在它們之間切換。因此傳統的微調模型導致了與人類的不公平比較,儘管他們聲稱在許多基準數據集中有著人類水平的性能。」 

8. 在一些傳統的接近語言建模的NLP 任務上,少樣本PaLM-540B 能夠大致匹配或甚至超過微調的SOTA,例如:一段話最後一句和最後一個字的完型填空,以及回指(anaphora)解析。需要指出,在這種情況下,零樣本的 LLM 已經足夠了,單樣本或少樣本的範例則通常幫助不大。

有些任務則不需要提示(prompt)一個GPT-3 這樣規模的模型: 

不適合使用GPT-3的任務

1. 呼叫OpenAI GPT-3 的API 超出了預算(例如對於沒有太多錢的創業公司)。 

2. 呼叫 OpenAI GPT-3 的 API 有安全性問題(例如資料外洩給 OpenAI,或可能產生的有害內容)。

3. 沒有足夠的工程或硬體資源去部署一個相似大小的模型及消除推論的延遲問題。例如,在沒有最先進的80G 的A100 或工程資源來優化推斷速度的情況下,簡單地使用Alpa 在16 個40G 的A100 上部署OPT-175B 需要10 秒才能完成單一樣例的推斷,這對於大多數現實世界的線上應用程式來說是無法接受的延遲。

4. 如果想要用GPT-3 取代一個性能良好的、高準確度的微調模型,或者想要在一些特定的單一任務和使用場景下去部署一個NLU( Natural Language Understanding,自然語言理解)或NLG(Natural Language Generating,自然語言生成)模型,請三思這是否值得。

  • 对于一些传统的 NLU 任务,比如分类任务,我建议首先尝试微调 FLAN-T5-11B 模型,而不是提示 GPT-3。例如,在 SuperGLUE,一个困难的 NLU 基准数据集(包括阅读理解、文本蕴含、词义消歧、共指消解和因果推理等任务)上,所有的 PaLM-540B 的少样本提示性能都劣于微调的 T5-11B,并在其中大多数任务上有着显著的差距。如果使用原始 GPT3,其提示结果与微调 SOTA 的结果之间的差距更大。有趣的是,即使是经过微调的 PaLM 也仅比经过微调的 T5-11B 有着有限的改进,而经过微调的 PaLM 甚至比经过微调的编 - 解码器模型 32B MoE 模型还要差。这表明使用更合适的架构(例如编 - 解码器模型)微调较小的模型仍然是比使用非常大的仅解码器模型更好的解决方案,无论是微调还是提示来使用这些大模型。根据最近的一篇论文,即使对于最传统的 NLU 分类任务 —— 情感分析,ChatGPT 仍然比经过微调的较小模型差。 
  • 一些不以现实世界数据为基础的困难任务。例如,BigBench 中仍然有许多对 LLM 来说困难的任务。具体地说,在 35% 的 BigBench 任务上,人类的平均表现仍然高于 PaLM-540B,并且在某些任务中,扩大模型规模甚至无济于事,例如导航和数学归纳。在数学归纳中,当提示中的假设不正确时(例如 “2 是奇数”),PaLM 会犯很多错误。在逆规模定律竞赛 (Inverse Scaling Law Challenge) 中,也观察到了类似的趋势,例如重新定义数学符号(例如提示可能 “将 π 重新定义为 462”)后再使用这个符号。在这种情况下,LLM 中的现实世界先验知识太强而无法被提示覆盖,而微调较小的模型可能可以更好地学习这些反事实知识。 
  • 在很多多语言任务和机器翻译任务中,使用少样本的提示 GPT 仍然要比微调的更小的模型更差。这很可能是由于除英语之外的其它语言在预训练语料库中占比很少。


  • 当从英语翻译为其他语言,以及翻译高资源语言到英语时,PaLM 和 ChatGPT 仍然比在机器翻译任务上微调的更小的模型要差。
  • 对于多语言问答任务来说,在少样本的 PaLM-540B 和微调的更小模型之间还存在较大差距。
  • 对于多语言文本生成(包括文本摘要和数据到文本生成),在少样本的 PaLM-540B 和微调的更小模型之间还存在较大差距。在大部分任务上即使微调的 PaLM-540B 也仅仅比微调的 T5-11B 有有限的提升,并仍然劣于微调的 SOTA。


  • 对于常识推理任务,在最好的少样本提示 LLM 和微调的 SOTA 之间仍然存在着较大的差距,例如:OpenbookQA,ARC(包括 Easy 和 Challenge 版本)以及 CommonsenseQA(甚至使用了 CoT 提示)。
  • 对于机器阅读理解任务,在最好的少样本提示 LLM 和微调的 SOTA 之间仍然存在着较大的差距。在大多数数据集上,这个差距可能非常巨大。这可能是因为所有回答问题所需的知识都已经包含在给出的文本中,并不需要 LLM 中的额外知识。

总结一下,上面的这些任务可以被归为以下类别之一: 

1. 一些 NLU 任务,既不需要额外的知识也不需要 LLM 的生成能力。这意味着测试数据大多数都和手头的训练数据在同一个分布之中。在这些任务上,过去微调的较小模型已经表现很好了。 

2. 一些不需要额外的来自 LLM 中知识的任务,因为每一个例子已经在上下文或者提示中包含了足够的知识,例如机器阅读理解。 

3. 一些需要額外知識,但不太可能從LLM 中獲得這樣的知識,或者LLM 不太可能看過類似分佈的任務,例如一些低資源語言中的任務,LLM 在這些語言中只有有限的預訓練樣本。

4. 一些任務,需要與LLM 所包含的知識所不一致的知識,或非基於現實世界的語言資料的知識。因為 LLM 是在現實世界的語言資料上訓練的,它難以在新的任務中利用反事實知識來覆蓋原有知識。除了在逆規模定律挑戰中的 「重新定義數學符號」 問題之外,還有另一個任務,即複述有細微改動的名言,其中 LLM 被要求複述一個在 prompt 中出現的被修改的名言。在這種情況下,LLM 傾向於重複出名言的原始版本,而不是修改後的版本。

5. 一些任務需要來自LM 的知識,但也嚴重依賴操縱這些知識,而LLM 的「預測下一個token” 的目標無法輕易實現這種操縱。一個例子是一些常識推理任務。 CoT 和 least-to-most 提示可以幫助 LLM 推理的原因可能是他們可以更好地調出那些連續的預訓練文本,這些連續文本恰好模仿了規劃和分解 / 組合知識的過程。

因此,CoT 和least-to-most 提示在一些數學推理、程式碼和其他簡單的自然語言推理任務中表現良好,但在許多常識推理(例如在逆規模定律競賽中所展示的演繹推理任務)和自訂符號推理任務中仍然表現不佳。這些任務通常不會被自然語言資料中的大多數真實世界的連續序列所包含,而需要操縱分散在各處的知識來完成。 

6. 一些容易受到情境學習範例或真實世界資料中存在的虛假相關性影響的任務。一個例子是來自於逆規模定律競賽中的涉及否定詞的問答。如果一個 LLM 被提問:“如果一隻貓的體溫低於平均水平,它就不在…”,它傾向於回答 “危險之中” 而不是 “安全範圍 “。這是因為 LLM 受到常見的 “低於平均體溫” 和 “危險” 之間的關係所支配,而在否定的情況下,這是一種虛假的相關性。

7. 一些目標與處理語言資料顯著不同的任務,例如:迴歸問題,其中微調模型很難被LLM 取代。至於多模態任務,它們不能被 LLM 解決,但可能能從大規模的預訓練多模態模型中受益。 

8. 有些任務不需要 LLM 的湧現能力。為了準確地對更多此類任務進行鑑別,我們需要更好地了解 LLM 訓練期間,湧現能力是從何產生的。 

注意到,在現實世界的使用情境中,即使因為無法滿足延遲要求因而無法在線上使用 LLM,仍然可以使用 LLM 離線產生或標註資料。此類自動標註的標籤可以在線上找到並提供給用戶,或用於微調較小的模型。使用此類數據微調較小的模型可以減少訓練模型所需的人工註釋數據,並將 LLM 的一些新興能力(例如 CoT)注入較小的模型。

總之,當有足夠的標記資料時,考慮到開源FLAN-T5 在許多任務中的驚人效能,我推薦那些呼叫OpenAI API 的資源有限的個體,應該首先嘗試在目標任務上微調FLAN-T5-11B。此外,根據最近在MMLU 資料集上,FLAN-PaLM-540B 與最新版本的InstructGPT 的效能(根據HELM)相比好得驚人的效能,Google可能擁有比OpenAI 更強大的基礎模型,如果OpenAI 已經通過API發布了他們獲得的最強的LLM。

Google唯一剩下的步驟是透過人類回饋使這個 LLM 與對話場景對齊(alignment)。如果他們很快就發布類似 ChatGPT 的或更好的聊天機器人,我不會感到驚訝 —— 儘管他們最近 “失敗” 地展示了一版可能基於 LaMDA 的 Bard。

關於作者

#英文原版作者:楊靖鋒,現任亞馬遜科學家,大學畢業於北大,碩士畢業於喬治亞理工學院,師事Stanford 楊笛一教授。

楊昊桐 譯,王驍 修訂 。

感謝靳弘業對第一版稿件的建議,感謝陳三星,符堯的討論與建議。

英文原版:https://jingfengyang.github.io/gpt

推特殊原文:https://twitter.com/JingfengY/status/1625003999387881472

以上是為什麼所有GPT-3復現都失敗了?使用ChatGPT你應該知道這些的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:51cto.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!