作者:楊靖鋒
為什么所有公開的對 GPT-3 的復(fù)現(xiàn)都失敗了?我們應(yīng)該在哪些任務(wù)上使用 GPT-3.5 或 ChatGPT?
這一推文寫于 2023 年 2 月 12 日,其中均為個人意見,僅供參考。
(資料圖)
為什么所有公開的對 GPT-3 的復(fù)現(xiàn)都失敗了?我們應(yīng)該在哪些任務(wù)上使用 GPT-3.5 或 ChatGPT?
這篇推文將包括,我在仔細重新檢查了一系列文章的細節(jié)之后給出的總結(jié),以及對上面兩個問題我個人的思考。這些文章包括且不限于:GPT-3, PaLM, BLOOM, OPT, FLAN-T5/PaLM, HELM 等。如果您有更可靠的參考資料或者更實際的經(jīng)驗,歡迎指正。
對于那些想要復(fù)現(xiàn)一個屬于自己的 GPT-3 或 ChatGPT 的人而言,第一個問題是關(guān)鍵的。第二個問題則對那些想要使用它們的人是重要的(下文提到 GPT-3,主要是指 GPT-3.5 或 InstructGPT 的最新版本,除了一些指向 GPT-3 原文的情況)。
為什么所有公開的對 GPT-3 的復(fù)現(xiàn)都失敗了?
這里,我稱之為 “失敗”,是指訓(xùn)練得出模型有接近 GPT-3 或者更大的參數(shù)量,但仍無法與 GPT-3 原始文獻中報告的性能所匹配。在這一標準下,GPT-3 和 PaLM 是 “成功” 的,但這兩個模型都不是公開的。而所有的公開模型(例如:OPT-175B 和 BLOOM-176B)都在一定程度上 “失敗” 了。但是我們?nèi)匀豢梢詮倪@些 “失敗” 中吸取一些教訓(xùn)。
我們需要注意的是,假如能夠多次嘗試各種不同的訓(xùn)練設(shè)置,開源社區(qū)可能最終可以復(fù)現(xiàn) GPT-3。但截至目前,訓(xùn)練另一個版本的 OPT-175B 的開銷仍然太過高昂 —— 對于如此大規(guī)模的模型,一次訓(xùn)練就將需要在約 1000 個 80G A100 GPU 上花費至少 2 個月的時間(數(shù)據(jù)來自于 OPT 的原始文獻)。
盡管一些文章(例如 OPT-175B 和 GLM-130B)聲稱它們在一些任務(wù)上能夠匹配甚至超過原始的 GPT-3 的表現(xiàn),在更多 GPT-3 已經(jīng)測試過的任務(wù)上,這種聲明仍然是存疑的。同時,根據(jù)大多數(shù)使用者在更多樣的任務(wù)上的經(jīng)驗,以及 HELM 的評估來看,最近的 OpenAI GPT-3 的 API 表現(xiàn)也仍然比這些開源模型更好。
盡管它背后的模型可能使用了指令微調(diào)(instruction tuning, 正如 InstructGPT 那樣),類似的使用了指令微調(diào)的 OPT 版本(OPT-IML)和 BLOOM 版本(BLOOMZ)也仍然遠比 InstructGPT 和 FLAN-PaLM(PaLM 的指令微調(diào)版本)要差得多。
根據(jù)文章的細節(jié),有多個可能的原因?qū)е铝讼啾?GPT-3 和 PaLM 的成功,OPT-175B 和 BLOOM-176B 的失敗。我將其分為兩個部分:預(yù)訓(xùn)練數(shù)據(jù)和訓(xùn)練策略。
預(yù)訓(xùn)練數(shù)據(jù)
讓我們首先觀察 GPT-3 是如何準備和使用預(yù)訓(xùn)練數(shù)據(jù)的。GPT-3 在共計 300B 的 token 上進行訓(xùn)練,其中 60% 來自經(jīng)過篩選的 Common Crawl,其它則來自:webtext2(用于訓(xùn)練 GPT-2 的語料庫),Books1,Books2 和維基百科。
更新版本的 GPT-3 還用了代碼數(shù)據(jù)集進行訓(xùn)練(例如 Github Code)。每個部分的占比并不與與原始數(shù)據(jù)集的大小成比例,相反的,具有更高質(zhì)量的數(shù)據(jù)集被更加頻繁地采樣。導(dǎo)致 OPT-175B 和 BLOOM-176B 失敗的,可能是以下三個難點,它們使得開源社區(qū)難以收集到類似的數(shù)據(jù):
1. 第一點是一個具有良好性能的用于 篩選低質(zhì)量數(shù)據(jù)的分類器。它被用于構(gòu)建 GPT-3 和 PaLM 的預(yù)訓(xùn)練數(shù)據(jù)集,但在 OPT 和 BLOOM 的訓(xùn)練中卻沒有被采用。一些文章已經(jīng)展示,一個用更少但質(zhì)量更高的數(shù)據(jù)集訓(xùn)練的預(yù)訓(xùn)練模型,可以在性能上超過另一個用更多的混合質(zhì)量數(shù)據(jù)集訓(xùn)練的模型。當然,數(shù)據(jù)的多樣性仍然是十分重要的,正如我們將在第三點中討論的。因此,人們應(yīng)當非常小心地處理在數(shù)據(jù)多樣性和質(zhì)量之間的權(quán)衡。
2. 第二點是 預(yù)訓(xùn)練數(shù)據(jù)集的去重。去重有助于避免預(yù)訓(xùn)練模型多次面對相同的數(shù)據(jù)后記住它們或者在其上過擬合,因此有助于提高模型的泛化能力。GPT-3 和 PaLM 采用了文檔級別的去重,這同樣被 OPT 所采用。但 OPT 預(yù)訓(xùn)練的去重 Pile 語料庫中仍有許多重復(fù)存在,這也可能導(dǎo)致它較差的性能(注:在一些最近的文獻中顯示去重對于預(yù)訓(xùn)練語言模型的重要性可能沒有想象中大)。
3. 第三點是 預(yù)訓(xùn)練數(shù)據(jù)集的多樣性,包括領(lǐng)域多樣性、格式多樣性(例如:文本、代碼和表格)和語言多樣性。OPT-175B 所使用的 Pile 語料庫聲稱有著更好的多樣性,但 BLOOM 采用的 ROOTS 語料庫則有太多的已經(jīng)存在的學(xué)術(shù)數(shù)據(jù)集,缺乏 Common Crawl 數(shù)據(jù)所包含的多樣性。這可能導(dǎo)致 BLOOM 性能更差。作為對比,GPT3 來自 Common Crawl 語料的占比則要高得多,而它們是多樣的和來自廣泛領(lǐng)域的,這也可能是 GPT-3 能夠作為首個通用聊天機器人 ChatGPT 的基礎(chǔ)模型的原因之一。
請注意:雖然一般來說,多樣性的數(shù)據(jù)對于訓(xùn)練一個通用的 LLM(Large Language Model,大規(guī)模語言模型)是重要的,但特定的預(yù)訓(xùn)練數(shù)據(jù)分布,則會對 LLM 在特定的下游任務(wù)上的性能產(chǎn)生巨大的影響。例如,BLOOM 和 PaLM 在多語言數(shù)據(jù)上有更高的占比,這導(dǎo)致它們在一些多語言任務(wù)和機器翻譯任務(wù)上的性能更高。
OPT 使用了很多對話數(shù)據(jù)(例如 reddit),這可能是它在對話中表現(xiàn)好的原因之一。PaLM 有很大的占比在社交媒體對話中,這可能是它在多種問答任務(wù)和數(shù)據(jù)集上有著卓越表現(xiàn)的原因。同樣的,PaLM 和更新版本的 GPT-3 有很大比例的代碼數(shù)據(jù)集,這增強了它們在代碼任務(wù)上的能力,以及可能增強了它們 CoT (Chain-of-Thought,思維鏈) 的能力。
一個有趣的現(xiàn)象是 BLOOM 在代碼和 CoT 上的表現(xiàn)仍然是較差的,盡管它在預(yù)訓(xùn)練過程中使用了代碼數(shù)據(jù)。這可能暗示著單獨代碼數(shù)據(jù)本身,并不能保證模型的代碼和 CoT 能力。
總之,一些文章表明了上面三點的重要性,即:通過數(shù)據(jù)去重避免記憶和過擬合,通過數(shù)據(jù)篩選以得到高質(zhì)量數(shù)據(jù),保證數(shù)據(jù)多樣性以確保 LLM 的泛化性。但不幸的是,對于 PaLM 和 GPT-3 預(yù)處理這些數(shù)據(jù)的細節(jié),或者這些預(yù)訓(xùn)練數(shù)據(jù)本身,仍然沒有公布,這使得公共社區(qū)很難去復(fù)現(xiàn)它們。
訓(xùn)練策略
此處訓(xùn)練策略包括訓(xùn)練框架、訓(xùn)練持續(xù)時間、模型架構(gòu) / 訓(xùn)練設(shè)置、訓(xùn)練過程中的修改。在訓(xùn)練非常大的模型時,它們被用于獲得更好的穩(wěn)定性和收斂性。一般來說,由于未知的原因,預(yù)訓(xùn)練過程中廣泛觀察到損失尖峰(loss spike)和無法收斂的情況。因此,眾多的對訓(xùn)練設(shè)置和模型架構(gòu)的修改被提出,用以避免這些問題。但是其中一些修改在 OPT 和 BLOOM 之中還不是最優(yōu)解,這可能導(dǎo)致它們的性能較差。GPT-3 并沒有明確提到他們是如何解決這個問題的。
1. 訓(xùn)練框架。一個參數(shù)量大于 175B 的模型往往需要 ZeRO 式的數(shù)據(jù)并行(分布式的優(yōu)化器)和模型并行(包括張量并行(tensor parallel)、流水線并行(pipeline parallel),有時還包括序列并行(sequence parallel))。OPT 采用了 ZeRO 的 FSDP 實現(xiàn),以及模型并行的 Megatron-LM 實現(xiàn)。BLOOM 采用了 ZeRO 的 Deepspeed 實現(xiàn)和模型并行的 Megatron-LM 實現(xiàn)。
PaLM 采用了 Pathways,這是一個基于 TPU 的模型并行和數(shù)據(jù)并行系統(tǒng)。GPT-3 的訓(xùn)練系統(tǒng)的細節(jié)仍然未知,但它們至少在一定程度上使用了模型并行(一些人稱它使用了 Ray)。不同的訓(xùn)練系統(tǒng)和硬件可能導(dǎo)致不同的訓(xùn)練時的現(xiàn)象。顯然,一些在 PaLM 的文章中呈現(xiàn)的、用于 TPU 訓(xùn)練的設(shè)置,可能并不適用于其它所有模型使用的 GPU 訓(xùn)練。
硬件和訓(xùn)練框架的一個重要的影響是,人們是否可以使用 bfloat16 去存儲模型權(quán)重和中間層激活值等。這已經(jīng)被證明是穩(wěn)定訓(xùn)練的一個重要因素,因為 bfloat16 可以表示更大范圍的浮點數(shù),能夠處理在損失尖峰時出現(xiàn)的大數(shù)值。在 TPU 上 bfloat16 是默認設(shè)置,這可能是 PaLM 能夠成功的一個秘密。但是在 GPU 上,以前人們主要使用 float16,這是 V100 中混合精度訓(xùn)練的唯一選擇。
OPT 使用了 float16,這可能是其不穩(wěn)定的因素之一。BLOOM 發(fā)現(xiàn)了這樣的問題并最終在 A100GPU 上使用了 bfloat16,但它沒有意識到這種設(shè)置的重要性,因此在第一個詞向量層后引入額外的層歸一化(layer normalization),用于解決他們使用 float16 的初步實驗中的不穩(wěn)定性。然而,這種層歸一化已被證明會導(dǎo)致更糟糕的零樣本泛化(zero-shot generalization),這可能是 BLOOM 失敗的一個因素。
2. 訓(xùn)練過程中的修改。OPT 做了很多中途調(diào)整并從最近的 checkpoint 重啟訓(xùn)練,包括改變截斷梯度范數(shù) (clip gradient norm) 和學(xué)習(xí)率,切換到簡單的 SGD 優(yōu)化器然后回到 Adam,重置動態(tài)損失標量 (dynamic loss scalar),切換到更新版本的 Megatron 等等。
這種中途調(diào)整可能是 OPT 失敗的原因之一。相比之下,PaLM 幾乎沒有做任何中途調(diào)整。它只是當損失尖峰出現(xiàn)時,從尖峰開始前大約 100 步的 checkpoint 重新開始訓(xùn)練,并跳過了大約 200-500 個 batch 的數(shù)據(jù)。僅僅依靠這種簡單的重啟,PaLM 就取得神奇的成功。這是由于它在預(yù)訓(xùn)練數(shù)據(jù)構(gòu)建期間就已經(jīng)完成采樣,因此模型具有在 Bit 意義上的確定性,以及它對模型架構(gòu)和訓(xùn)練設(shè)置進行了許多修改以獲得更好的穩(wěn)定性。PaLM 中的此類修改在下一點中展示。
3. 模型架構(gòu) / 訓(xùn)練設(shè)置:為了使訓(xùn)練更穩(wěn)定,PaLM 對模型架構(gòu)和訓(xùn)練設(shè)置進行了多項調(diào)整,包括使用 Adafactor 的修改版本作為優(yōu)化器,縮放在 softmax 之前的輸出 logit,使用輔助損失來鼓勵 softmax 歸一化器接近 0,對詞向量和其他層權(quán)重使用不同的初始化,在前饋層和層歸一化中不使用偏差項,并且在預(yù)訓(xùn)練期間不使用 dropout。
請注意,GLM-130B 中還有更多有價值的內(nèi)容關(guān)于如何穩(wěn)定地訓(xùn)練非常大的模型,例如:使用基于 DeepNorm 的后置層歸一化而不是前置層歸一化,以及詞向量層梯度收縮。以上大多數(shù)模型修改沒有被 OPT 和 BLOOM 采用,這可能會導(dǎo)致它們的不穩(wěn)定和失敗。
4. 訓(xùn)練過程:如下表所示,原始的 GPT-3 預(yù)訓(xùn)練過程見過的 token 數(shù)與 OPT 和 BLOOM 接近,而 PaLM 則遠遠超過了它們。同樣,PaLM 和 GPT-3 預(yù)訓(xùn)練語料庫都大于 BLOOM 和 OPT。因此,在更多的 token 上、用更大規(guī)模的高質(zhì)量語料庫進行預(yù)訓(xùn)練可能是 GPT-3 和 PaLM 成功的一個重要因素。
除了上面列出的四點,還有一些其它因素,它們可能對于更穩(wěn)定的訓(xùn)練并不重要,但仍然可能影響最終的性能。
第一點,PaLM 和 GPT-3 都使用了在訓(xùn)練過程中從小到大逐漸增加的 batch size,這已經(jīng)被展示對于訓(xùn)練一個更好的 LLM 是有效的,然而 OPT 和 BLOOM 都使用了恒定的 batch size。
第二點,OPT 使用了 ReLU 激活函數(shù),而 PaLM 使用 SwiGLU 激活函數(shù),GPT-3 和 BLOOM 使用 GeLU,它通常使得訓(xùn)練的 LLM 的性能更好。
第三點,為了更好的建模更長的序列,PaLM 使用 RoPE 詞向量,BLOOM 使用 ALiBi 詞向量,而原始的 GPT-3 和 OPT 使用學(xué)習(xí)得到的詞向量,這可能影響在長序列上的性能。
我們應(yīng)該在哪些任務(wù)上使用 GPT-3.5 或 ChatGPT?
我嘗試解釋我們應(yīng)該在哪些任務(wù)和應(yīng)用上使用 GPT-3,而哪些則不該使用。為了展示 GPT-3 是否適合某個特定任務(wù),我主要比較了帶有提示(prompting)的 GPT-3 和經(jīng)過微調(diào)的更小的模型,這些小模型有時還加入了其他特殊的設(shè)計。鑒于最近出現(xiàn)的更小的而且可以微調(diào)的 FLAN-T5 模型的良好性能,這一問題更加重要。
在理想情形下,如果微調(diào) GPT-3 的負擔是能夠承擔的,它可能帶來更進一步的提升。然而,在一些任務(wù)上通過微調(diào) PaLM-540B 帶來的提升是如此有限,讓人們懷疑在一些任務(wù)中微調(diào) GPT-3 是否是值得的。從科學(xué)的角度來看,更公平的比較應(yīng)在微調(diào) GPT-3 和提示 GPT-3 之間進行。然而,要使用 GPT-3,人們可能更關(guān)心將提示 GPT-3 和微調(diào)一個更小的模型去進行對比。
注意到,我主要關(guān)心的是將完成任務(wù)的精確度作為度量,但仍然存在很多其它重要的維度,例如:有害性(toxicity)、公平性等,它們也應(yīng)該在決定是否使用 GPT-3 時被納入考慮,正如 HELM 的文章中所呈現(xiàn)的。下圖展示了一個粗略的決策流程,希望它能夠作為一個有用的實踐指南,無論對于已有任務(wù)還是一個全新的任務(wù)。
注 1:由于在對話場景下的良好對齊,ChatGPT 作為一個聊天機器人表現(xiàn)優(yōu)異。但我們通常使用 GPT-3、InstructGPT (GPT-3.5)、以及 Codex 這些 ChatGPT 背后的模型作為在更多任務(wù)和使用場景下的通用模型。
注 2:這一節(jié)中的結(jié)論是基于一些對模型當前版本的發(fā)現(xiàn)得到的,這可能不適用于未來的更強的模型。因為,使用更多與目標數(shù)據(jù)集接近的預(yù)訓(xùn)練數(shù)據(jù)、學(xué)術(shù)數(shù)據(jù)集指令調(diào)整(例如提示一個 FLAN-PaLM 可能會帶來更強的性能,它仍未公開)或者通過 RLHF 以使得模型對目標任務(wù)的更好對齊,這些都可能使得模型在目標任務(wù)中表現(xiàn)更好,即使有時這會犧牲在其他場景下的能力(例如,InstructGPT 的 “對齊稅 / Alignment tax”)。
在這種情況下,很難判斷 GPT 是進行泛化和跨任務(wù)泛化,還是僅僅在預(yù)訓(xùn)練時就已經(jīng)記住了一些測試樣例,或者說見過那些在預(yù)訓(xùn)練時所謂 “沒有見過” 的任務(wù)。然而,記憶在實踐中是否真的是一個嚴重的問題,這仍然值得懷疑。因為用戶與研究人員不同,如果他們發(fā)現(xiàn) GPT 已經(jīng)可以在他們的測試數(shù)據(jù)上表現(xiàn)良好,他們可能不會關(guān)心 GPT 在預(yù)訓(xùn)練期間是否看到了相同或相似的數(shù)據(jù)。
不論如何,為了最大化這一節(jié)在當前的實用價值,我盡最大努力,試圖比較微調(diào)公共的更小型的模型(T5、FALN-T5、一些特殊設(shè)計的微調(diào) SOTA 模型等)和最近的 GPT-3 (GPT-3.5、InstructGPT)、PaLM(或 FLAN-PaLM)的最佳性能,如果這些模型的測評數(shù)據(jù)夠獲得的話。
適合使用GPT-3的任務(wù)
一般來說,有以下這些情況更適合使用提示 GPT-3。令人驚訝的是,如果我們回看 GPT-3 論文的介紹部分,在那里很多初始設(shè)計時的目標涵蓋了這些任務(wù)。這意味著那些當初宏偉的目標已經(jīng)被部分實現(xiàn)了。
1. 創(chuàng)造性和復(fù)雜的任務(wù):包括代碼(代碼補全、自然語言指令生成代碼、代碼翻譯、bug 修復(fù))、文本摘要、翻譯、創(chuàng)造性寫作(例如寫故事、文章、郵件、報告,以及寫作的改進等)。正如原始的 GPT-3 文獻中所示,GPT-3 被設(shè)計用于那些困難和 “不可能標注” 的任務(wù)。在一定程度上,對于這些任務(wù),先前那種經(jīng)過微調(diào)的模型不可能應(yīng)用于真實世界的應(yīng)用;而 GPT-3 使它們成為可能。舉個例子,最近的文章顯示,過去的人類標注的文本摘要已經(jīng)被 LLM 生成的摘要所超越。
在某些需要從低、中資源語言翻譯到英語的機器翻譯任務(wù)中,通過提示 PaLM-540B,它甚至能夠超越微調(diào)模型。
在 BLOOM-176B 中也觀察到了類似的趨勢。這是因為英語數(shù)據(jù)通常在預(yù)訓(xùn)練語料庫中占了很大比例,因此 LLM 擅長于生成英語語句。注意到,為了在代碼任務(wù)中獲得良好性能,盡管 Codex 和 PaLM 已經(jīng)在整體上具有比之前模型更好的性能,我們?nèi)匀恍柙试S LLM 多次(k 次)采樣,以通過測試樣例(使用 pass@k 作為度量)。
2. 只有少數(shù)標注或者沒有標注數(shù)據(jù)的任務(wù)。正如原始的 GPT-3 文獻所說,GPT-3 是為了那些 “昂貴標注” 的任務(wù)設(shè)計的。在這種情況下,用極少量標注數(shù)據(jù)微調(diào)一個更小的模型通常不可能達到 GPT-3 在零樣本(zero-shot)、單樣本(ont-shot)或少樣本(few-shot)的情況下的表現(xiàn)。
3. 分布外(Out-of-distribution, OOD)泛化。給定一些訓(xùn)練數(shù)據(jù),傳統(tǒng)的微調(diào)可能會過擬合訓(xùn)練集并且有較差的分布外泛化能力;而少樣本的上下文學(xué)習(xí)(in-context learning)能夠有更好的分布外泛化性。例如,帶有提示的 PaLM 能夠在對抗自然語言推斷任務(wù)(Adversarial Natural Language Inference,ANLI)上超越經(jīng)過微調(diào)的 SOTA 模型,而它在正常的語言推斷任務(wù)上可能仍然劣于微調(diào)的 SOTA。
另一個例子是提示 LLM 比微調(diào)模型顯示出更好的組合泛化能力。更好的分布外泛化性可能是因為在上下文學(xué)習(xí)期間不需要更新參數(shù),避免了過擬合;或者因為那些過去的分布外樣例對于 LLM 而言是分布內(nèi)的。這種使用場景被闡釋為 GPT-3 的初始設(shè)計目標之一:“微調(diào)模型在特定任務(wù)的數(shù)據(jù)集上的性能可以達到所謂的人類水平,實際上可能夸大了在真實世界中該任務(wù)上的性能,這是因為模型只是學(xué)到了訓(xùn)練集中存在的虛假的相關(guān)性,以及模型過度擬合了這個訓(xùn)練集狹窄的分布?!?/p>
4. 需要處理多種任務(wù)的能力,而非關(guān)注特定任務(wù)上的卓越表現(xiàn)。聊天機器人就是這樣一種場景,其中,用戶期待它能夠正確地響應(yīng)各種各樣的任務(wù)。這可能就是為什么 ChatGPT 是 GPT-3 最成功的使用場景之一。
5. 那些檢索不可行的 知識密集型任務(wù)。存儲在 LLM 中的知識可以顯著地提高在知識密集型任務(wù)的性能,例如閉卷問答和 MMLU(一個基準數(shù)據(jù)集,包括來自于 STEM、人文、社科等 57 個學(xué)科的選擇題,它用于測試 LLM 的世界知識和問題解答的能力)。然而,如果預(yù)先檢索的步驟可以被加入來做檢索增強的生成,一個微調(diào)的更小的模型(例如 Atlas 模型)甚至可以有更好的性能(在閉卷的 NaturalQuestions 和 TrivialQA 數(shù)據(jù)集上,Atlas 比 PaLM 和最新的 InstructGPT 都要更好)。
檢索或者傳統(tǒng)的搜索同樣是將 GPT-3 或 ChatGPT 整合到搜索引擎中的一個必要的步驟,這可以提升生成的準確性,并且提供更多的參考鏈接以增強說服力。但我們應(yīng)該承認,在某些情況下,檢索是不允許或者不容易的,比如參加 USMLE (美國醫(yī)學(xué)執(zhí)照考試),谷歌已經(jīng)證明基于 FLAN-PaLM 的模型可以在其中做得很好。
同樣的,在 MMLU 基準集中,PaLM-540B 有著比其他微調(diào)模型更好的性能,甚至后者結(jié)合了檢索,盡管最新版本的 InstructGPT 還差于這些帶有檢索的微調(diào) SOTA。也請注意,指令調(diào)整一個較小的模型也可以實現(xiàn)與更大規(guī)模的 LLM 模型接近的效果,這已經(jīng)在 FLAN-T5 中展現(xiàn)。
6. 一些困難的任務(wù),其中需要 LLM 的涌現(xiàn)能力,比如帶有 CoT 的推理和 BIG-Bench 中的復(fù)雜任務(wù)(包括邏輯推理、翻譯、問答、數(shù)學(xué)任務(wù)等)。舉個例子,PaLM 已經(jīng)展示,在 7 個包括數(shù)學(xué)和常識推理的多步推理任務(wù)上,8 - 樣例的 CoT 比微調(diào) SOTA 在其中 4 個任務(wù)上更好,在其它 3 個任務(wù)上則基本持平。
這樣的成功表現(xiàn)要同時歸因于更大規(guī)模的模型和 CoT。PaLM 還顯示了在 BIG-Bench 任務(wù)上從 8B 到 62B 再到 540B 模型的不連續(xù)的表現(xiàn)提升,這超出了規(guī)模定律(scailing law),被稱為 LLMs 的涌現(xiàn)能力。另外,帶有 5 個 Prompt 的 PaLM-540B 在 Big-Bench 的 58 項常見任務(wù)中的 44 項上優(yōu)于之前的(少樣本)SOTA。PaLM-540B 在 Big-Bench 的總體表現(xiàn)也優(yōu)于人類的平均表現(xiàn)。
7. 一些需要 模仿人類的場景,或者是其目標是 制作性能達到人類水平的通用人工智能。同樣的,ChatGPT 是其中的一個案例,ChatGPT 使自己更像是一個人,從而取得了現(xiàn)象級的成功。這也被闡釋為 GPT-3 的初始設(shè)計目標之一:“人類不需要大規(guī)模監(jiān)督數(shù)據(jù)集來學(xué)習(xí)大多數(shù)語言任務(wù)。最多只需要幾個例子,人類就可以將各種任務(wù)和技巧無縫地混合在一起或者在它們之間切換。因此傳統(tǒng)的微調(diào)模型導(dǎo)致了與人類的不公平比較,盡管他們聲稱在許多基準數(shù)據(jù)集中有著人類水平的性能?!?/p>
8. 在一些 傳統(tǒng)的接近于語言建模的 NLP 任務(wù)上,少樣本 PaLM-540B 能夠大致匹配或者甚至超過微調(diào)的 SOTA,例如:一段話最后一句和最后一個單詞的完型填空,以及回指(anaphora)解析。需要指出,在這種情況下,零樣本的 LLM 已經(jīng)足夠了,單樣本或少樣本的示例則通常幫助不大。
另一些任務(wù)則并不需要提示(prompt)一個 GPT-3 這樣規(guī)模的模型:
不適合使用GPT-3的任務(wù)
1. 調(diào)用 OpenAI GPT-3 的 API 超出了預(yù)算(例如對于沒有太多錢的創(chuàng)業(yè)公司)。
2. 調(diào)用 OpenAI GPT-3 的 API 存在安全問題(例如數(shù)據(jù)泄露給 OpenAI,或者可能生成的有害內(nèi)容)。
3. 沒有足夠的工程或者硬件資源去部署一個相似大小的模型及消除推斷的延遲問題。例如,在沒有最先進的 80G 的 A100 或者工程資源來優(yōu)化推斷速度的情況下,簡單地使用 Alpa 在 16 個 40G 的 A100 上部署 OPT-175B 需要 10 秒才能完成單個樣例的推斷,這對于大多數(shù)現(xiàn)實世界的在線應(yīng)用程序來說是無法接受的延遲。
4. 如果想用 GPT-3 替代一個性能良好的、高準確度的微調(diào)模型,或者想要在一些特定的單一任務(wù)和使用場景下去部署一個 NLU(Natural Language Understanding,自然語言理解)或 NLG(Natural Language Generating,自然語言生成)模型,請三思這是否值得。
對于一些傳統(tǒng)的 NLU 任務(wù),比如分類任務(wù),我建議首先嘗試微調(diào) FLAN-T5-11B 模型,而不是提示 GPT-3。例如,在 SuperGLUE,一個困難的 NLU 基準數(shù)據(jù)集(包括閱讀理解、文本蘊含、詞義消歧、共指消解和因果推理等任務(wù))上,所有的 PaLM-540B 的少樣本提示性能都劣于微調(diào)的 T5-11B,并在其中大多數(shù)任務(wù)上有著顯著的差距。如果使用原始 GPT3,其提示結(jié)果與微調(diào) SOTA 的結(jié)果之間的差距更大。有趣的是,即使是經(jīng)過微調(diào)的 PaLM 也僅比經(jīng)過微調(diào)的 T5-11B 有著有限的改進,而經(jīng)過微調(diào)的 PaLM 甚至比經(jīng)過微調(diào)的編 - 解碼器模型 32B MoE 模型還要差。這表明使用更合適的架構(gòu)(例如編 - 解碼器模型)微調(diào)較小的模型仍然是比使用非常大的僅解碼器模型更好的解決方案,無論是微調(diào)還是提示來使用這些大模型。根據(jù)最近的一篇論文,即使對于最傳統(tǒng)的 NLU 分類任務(wù) —— 情感分析,ChatGPT 仍然比經(jīng)過微調(diào)的較小模型差。
一些不以現(xiàn)實世界數(shù)據(jù)為基礎(chǔ)的困難任務(wù)。例如,BigBench 中仍然有許多對 LLM 來說困難的任務(wù)。具體地說,在 35% 的 BigBench 任務(wù)上,人類的平均表現(xiàn)仍然高于 PaLM-540B,并且在某些任務(wù)中,擴大模型規(guī)模甚至無濟于事,例如導(dǎo)航和數(shù)學(xué)歸納。在數(shù)學(xué)歸納中,當提示中的假設(shè)不正確時(例如 “2 是奇數(shù)”),PaLM 會犯很多錯誤。在逆規(guī)模定律競賽 (Inverse Scaling Law Challenge) 中,也觀察到了類似的趨勢,例如重新定義數(shù)學(xué)符號(例如提示可能 “將 π 重新定義為 462”)后再使用這個符號。在這種情況下,LLM 中的現(xiàn)實世界先驗知識太強而無法被提示覆蓋,而微調(diào)較小的模型可能可以更好地學(xué)習(xí)這些反事實知識。
在很多多語言任務(wù)和機器翻譯任務(wù)中,使用少樣本的提示 GPT 仍然要比微調(diào)的更小的模型更差。這很可能是由于除英語之外的其它語言在預(yù)訓(xùn)練語料庫中占比很少。
當從英語翻譯為其他語言,以及翻譯高資源語言到英語時,PaLM 和 ChatGPT 仍然比在機器翻譯任務(wù)上微調(diào)的更小的模型要差。
對于多語言問答任務(wù)來說,在少樣本的 PaLM-540B 和微調(diào)的更小模型之間還存在較大差距。
對于多語言文本生成(包括文本摘要和數(shù)據(jù)到文本生成),在少樣本的 PaLM-540B 和微調(diào)的更小模型之間還存在較大差距。在大部分任務(wù)上即使微調(diào)的 PaLM-540B 也僅僅比微調(diào)的 T5-11B 有有限的提升,并仍然劣于微調(diào)的 SOTA。
對于常識推理任務(wù),在最好的少樣本提示 LLM 和微調(diào)的 SOTA 之間仍然存在著較大的差距,例如:OpenbookQA,ARC(包括 Easy 和 Challenge 版本)以及 CommonsenseQA(甚至使用了 CoT 提示)。
對于機器閱讀理解任務(wù),在最好的少樣本提示 LLM 和微調(diào)的 SOTA 之間仍然存在著較大的差距。在大多數(shù)數(shù)據(jù)集上,這個差距可能非常巨大。這可能是因為所有回答問題所需的知識都已經(jīng)包含在給出的文本中,并不需要 LLM 中的額外知識。
總結(jié)一下,上面的這些任務(wù)可以被歸為以下類別之一:
1. 一些 NLU 任務(wù),既不需要額外的知識也不需要 LLM 的生成能力。這意味著測試數(shù)據(jù)大多數(shù)都和手頭的訓(xùn)練數(shù)據(jù)在同一個分布之中。在這些任務(wù)上,過去微調(diào)的較小模型已經(jīng)表現(xiàn)很好了。
2. 一些不需要額外的來自 LLM 中知識的任務(wù),因為每一個例子已經(jīng)在上下文或者提示中包含了足夠的知識,例如機器閱讀理解。
3. 一些需要額外知識,但不太可能從 LLM 中獲得這樣的知識,或者 LLM 不太可能見過類似分布的任務(wù),例如一些低資源語言中的任務(wù),LLM 在這些語言中只有有限的預(yù)訓(xùn)練樣本。
4. 一些任務(wù),需要與 LLM 中包含的知識所不一致的知識,或者并非基于現(xiàn)實世界的語言數(shù)據(jù)的知識。因為 LLM 是在現(xiàn)實世界的語言數(shù)據(jù)上訓(xùn)練的,它難以在新的任務(wù)中利用反事實知識覆蓋原有知識。除了在逆規(guī)模定律挑戰(zhàn)中的 “重新定義數(shù)學(xué)符號” 問題之外,還有另一個任務(wù),即復(fù)述有細微改動的名言,其中 LLM 被要求復(fù)述一個在 prompt 中出現(xiàn)的被修改的名言。在這種情況下,LLM 傾向于重復(fù)出名言的原始版本,而非修改過后的版本。
5. 一些任務(wù)需要來自 LM 的知識,但也嚴重依賴于操縱這些知識,而 LLM 的 “預(yù)測下一個 token” 的目標無法輕易實現(xiàn)這種操縱。一個例子是一些常識推理任務(wù)。CoT 和 least-to-most 提示可以幫助 LLM 推理的原因可能是他們可以更好地調(diào)出那些連續(xù)的預(yù)訓(xùn)練文本,這些連續(xù)文本恰好模仿了規(guī)劃和分解 / 組合知識的過程。
因此,CoT 和 least-to-most 提示在一些數(shù)學(xué)推理、代碼和其他簡單的自然語言推理任務(wù)中表現(xiàn)良好,但在許多常識推理(例如在逆規(guī)模定律競賽中展示的演繹推理任務(wù))和自定義符號推理任務(wù)中仍然表現(xiàn)不佳。這些任務(wù)通常不被自然語言數(shù)據(jù)中的大多數(shù)真實世界的連續(xù)序列所包含,而需要操縱分散在各處的知識來完成。
6. 一些容易受到上下文學(xué)習(xí)樣例或者真實世界數(shù)據(jù)中存在的虛假相關(guān)性影響的任務(wù)。一個例子是來自于逆規(guī)模定律競賽中的涉及否定詞的問答。如果一個 LLM 被提問:“如果一只貓的體溫低于平均水平,它就不在……”,它傾向于回答 “危險之中” 而非 “安全范圍 “。這是因為 LLM 受到常見的 “低于平均體溫” 和 “危險” 之間的關(guān)系所支配,而在否定的情況下,這是一種虛假的相關(guān)性。
7. 一些目標與處理語言數(shù)據(jù)顯著不同的任務(wù),例如:回歸問題,其中微調(diào)模型很難被 LLM 取代。至于多模態(tài)任務(wù),它們不能被 LLM 解決,但是可能能從大規(guī)模的預(yù)訓(xùn)練多模態(tài)模型中受益。
8. 一些任務(wù)不需要 LLM 的涌現(xiàn)能力。為了準確地對更多此類任務(wù)進行鑒別,我們需要更好地了解 LLM 訓(xùn)練期間,涌現(xiàn)能力是從何產(chǎn)生的。
注意到,在現(xiàn)實世界的使用場景中,即使由于無法滿足延遲要求因而無法在線地使用 LLM,仍然可以使用 LLM 離線生成或標注數(shù)據(jù)。此類自動標注的標簽可以在線查找并提供給用戶,或用于微調(diào)較小的模型。使用此類數(shù)據(jù)微調(diào)較小的模型可以減少訓(xùn)練模型所需的人工注釋數(shù)據(jù),并將 LLM 的一些新興能力(例如 CoT)注入較小的模型。
總之,當有足夠的標記數(shù)據(jù)時,考慮到開源 FLAN-T5 在許多任務(wù)中的驚人性能,我推薦那些調(diào)用 OpenAI API 的資源有限的個體,應(yīng)該首先嘗試在目標任務(wù)上微調(diào) FLAN-T5-11B。此外,根據(jù)最近在 MMLU 數(shù)據(jù)集上,F(xiàn)LAN-PaLM-540B 與最新版本的 InstructGPT 的性能(根據(jù) HELM)相比好得驚人的性能,谷歌可能擁有比 OpenAI 更強大的基礎(chǔ)模型,如果 OpenAI 已經(jīng)通過 API 發(fā)布了他們獲得的最強的 LLM。
谷歌唯一剩下的步驟是通過人類反饋使這個 LLM 與對話場景對齊(alignment)。如果他們很快發(fā)布類似 ChatGPT 的或者更好的聊天機器人,我不會感到驚訝 —— 盡管他們最近 “失敗” 地展示了一版可能基于 LaMDA 的 Bard。
網(wǎng)站首頁 |網(wǎng)站簡介 | 關(guān)于我們 | 廣告業(yè)務(wù) | 投稿信箱
Copyright © 2000-2020 hngelin.com All Rights Reserved.
中國網(wǎng)絡(luò)消費網(wǎng) 版權(quán)所有 未經(jīng)書面授權(quán) 不得復(fù)制或建立鏡像
聯(lián)系郵箱:920 891 263@qq.com
庄浪县| 云阳县| 阿克苏市| 垫江县| 东兰县| 芜湖市| 奈曼旗| 凌云县| 扎赉特旗| 光山县| 无极县| 封丘县| 涞源县| 灌云县| 波密县| 中西区| 五莲县| 炎陵县| 花垣县| 武陟县| 弋阳县| 荥阳市| 桐乡市| 寻甸| 福泉市| 尉氏县| 香河县| 双柏县| 红桥区| 兴文县| 苍南县| 布尔津县| 当阳市| 门源| 宝清县| 兴和县| 茂名市| 新营市| 晋江市| 江陵县| 利辛县|