為什么所有GPT-3復(fù)現(xiàn)都失敗了?使用ChatGPT你應(yīng)該知道這些
為什么所有公開(kāi)的對(duì) GPT-3 的復(fù)現(xiàn)都失敗了?我們應(yīng)該在哪些任務(wù)上使用 GPT-3.5 或 ChatGPT?
這一推文寫(xiě)于 2023 年 2 月 12 日,其中均為個(gè)人意見(jiàn),僅供參考。
為什么所有公開(kāi)的對(duì) GPT-3 的復(fù)現(xiàn)都失敗了?我們應(yīng)該在哪些任務(wù)上使用 GPT-3.5 或 ChatGPT?
這篇推文將包括,我在仔細(xì)重新檢查了一系列文章的細(xì)節(jié)之后給出的總結(jié),以及對(duì)上面兩個(gè)問(wèn)題我個(gè)人的思考。這些文章包括且不限于:GPT-3, PaLM, BLOOM, OPT, FLAN-T5/PaLM, HELM 等。如果您有更可靠的參考資料或者更實(shí)際的經(jīng)驗(yàn),歡迎指正。
對(duì)于那些想要復(fù)現(xiàn)一個(gè)屬于自己的 GPT-3 或 ChatGPT 的人而言,第一個(gè)問(wèn)題是關(guān)鍵的。第二個(gè)問(wèn)題則對(duì)那些想要使用它們的人是重要的(下文提到 GPT-3,主要是指 GPT-3.5 或 InstructGPT 的最新版本,除了一些指向 GPT-3 原文的情況)。
為什么所有公開(kāi)的對(duì) GPT-3 的復(fù)現(xiàn)都失敗了?
這里,我稱(chēng)之為 “失敗”,是指訓(xùn)練得出模型有接近 GPT-3 或者更大的參數(shù)量,但仍無(wú)法與 GPT-3 原始文獻(xiàn)中報(bào)告的性能所匹配。在這一標(biāo)準(zhǔn)下,GPT-3 和 PaLM 是 “成功” 的,但這兩個(gè)模型都不是公開(kāi)的。而所有的公開(kāi)模型(例如:OPT-175B 和 BLOOM-176B)都在一定程度上 “失敗” 了。但是我們?nèi)匀豢梢詮倪@些 “失敗” 中吸取一些教訓(xùn)。
我們需要注意的是,假如能夠多次嘗試各種不同的訓(xùn)練設(shè)置,開(kāi)源社區(qū)可能最終可以復(fù)現(xiàn) GPT-3。但截至目前,訓(xùn)練另一個(gè)版本的 OPT-175B 的開(kāi)銷(xiāo)仍然太過(guò)高昂 —— 對(duì)于如此大規(guī)模的模型,一次訓(xùn)練就將需要在約 1000 個(gè) 80G A100 GPU 上花費(fèi)至少 2 個(gè)月的時(shí)間(數(shù)據(jù)來(lái)自于 OPT 的原始文獻(xiàn))。
盡管一些文章(例如 OPT-175B 和 GLM-130B)聲稱(chēng)它們?cè)谝恍┤蝿?wù)上能夠匹配甚至超過(guò)原始的 GPT-3 的表現(xiàn),在更多 GPT-3 已經(jīng)測(cè)試過(guò)的任務(wù)上,這種聲明仍然是存疑的。同時(shí),根據(jù)大多數(shù)使用者在更多樣的任務(wù)上的經(jīng)驗(yàn),以及 HELM 的評(píng)估來(lái)看,最近的 OpenAI GPT-3 的 API 表現(xiàn)也仍然比這些開(kāi)源模型更好。
盡管它背后的模型可能使用了指令微調(diào)(instruction tuning, 正如 InstructGPT 那樣),類(lèi)似的使用了指令微調(diào)的 OPT 版本(OPT-IML)和 BLOOM 版本(BLOOMZ)也仍然遠(yuǎn)比 InstructGPT 和 FLAN-PaLM(PaLM 的指令微調(diào)版本)要差得多。 根據(jù)文章的細(xì)節(jié),有多個(gè)可能的原因?qū)е铝讼啾?GPT-3 和 PaLM 的成功,OPT-175B 和 BLOOM-176B 的失敗。我將其分為兩個(gè)部分:預(yù)訓(xùn)練數(shù)據(jù)和訓(xùn)練策略。
預(yù)訓(xùn)練數(shù)據(jù)
讓我們首先觀(guān)察 GPT-3 是如何準(zhǔn)備和使用預(yù)訓(xùn)練數(shù)據(jù)的。GPT-3 在共計(jì) 300B 的 token 上進(jìn)行訓(xùn)練,其中 60% 來(lái)自經(jīng)過(guò)篩選的 Common Crawl,其它則來(lái)自:webtext2(用于訓(xùn)練 GPT-2 的語(yǔ)料庫(kù)),Books1,Books2 和維基百科。
更新版本的 GPT-3 還用了代碼數(shù)據(jù)集進(jìn)行訓(xùn)練(例如 Github Code)。每個(gè)部分的占比并不與與原始數(shù)據(jù)集的大小成比例,相反的,具有更高質(zhì)量的數(shù)據(jù)集被更加頻繁地采樣。導(dǎo)致 OPT-175B 和 BLOOM-176B 失敗的,可能是以下三個(gè)難點(diǎn),它們使得開(kāi)源社區(qū)難以收集到類(lèi)似的數(shù)據(jù):
1. 第一點(diǎn)是一個(gè)具有良好性能的用于篩選低質(zhì)量數(shù)據(jù)的分類(lèi)器。它被用于構(gòu)建 GPT-3 和 PaLM 的預(yù)訓(xùn)練數(shù)據(jù)集,但在 OPT 和 BLOOM 的訓(xùn)練中卻沒(méi)有被采用。一些文章已經(jīng)展示,一個(gè)用更少但質(zhì)量更高的數(shù)據(jù)集訓(xùn)練的預(yù)訓(xùn)練模型,可以在性能上超過(guò)另一個(gè)用更多的混合質(zhì)量數(shù)據(jù)集訓(xùn)練的模型。當(dāng)然,數(shù)據(jù)的多樣性仍然是十分重要的,正如我們將在第三點(diǎn)中討論的。因此,人們應(yīng)當(dāng)非常小心地處理在數(shù)據(jù)多樣性和質(zhì)量之間的權(quán)衡。
2. 第二點(diǎn)是預(yù)訓(xùn)練數(shù)據(jù)集的去重。去重有助于避免預(yù)訓(xùn)練模型多次面對(duì)相同的數(shù)據(jù)后記住它們或者在其上過(guò)擬合,因此有助于提高模型的泛化能力。GPT-3 和 PaLM 采用了文檔級(jí)別的去重,這同樣被 OPT 所采用。但 OPT 預(yù)訓(xùn)練的去重 Pile 語(yǔ)料庫(kù)中仍有許多重復(fù)存在,這也可能導(dǎo)致它較差的性能(注:在一些最近的文獻(xiàn)中顯示去重對(duì)于預(yù)訓(xùn)練語(yǔ)言模型的重要性可能沒(méi)有想象中大)。
3. 第三點(diǎn)是預(yù)訓(xùn)練數(shù)據(jù)集的多樣性,包括領(lǐng)域多樣性、格式多樣性(例如:文本、代碼和表格)和語(yǔ)言多樣性。OPT-175B 所使用的 Pile 語(yǔ)料庫(kù)聲稱(chēng)有著更好的多樣性,但 BLOOM 采用的 ROOTS 語(yǔ)料庫(kù)則有太多的已經(jīng)存在的學(xué)術(shù)數(shù)據(jù)集,缺乏 Common Crawl 數(shù)據(jù)所包含的多樣性。這可能導(dǎo)致 BLOOM 性能更差。作為對(duì)比,GPT3 來(lái)自 Common Crawl 語(yǔ)料的占比則要高得多,而它們是多樣的和來(lái)自廣泛領(lǐng)域的,這也可能是 GPT-3 能夠作為首個(gè)通用聊天機(jī)器人 ChatGPT 的基礎(chǔ)模型的原因之一。
請(qǐng)注意:雖然一般來(lái)說(shuō),多樣性的數(shù)據(jù)對(duì)于訓(xùn)練一個(gè)通用的 LLM(Large Language Model,大規(guī)模語(yǔ)言模型)是重要的,但特定的預(yù)訓(xùn)練數(shù)據(jù)分布,則會(huì)對(duì) LLM 在特定的下游任務(wù)上的性能產(chǎn)生巨大的影響。例如,BLOOM 和 PaLM 在多語(yǔ)言數(shù)據(jù)上有更高的占比,這導(dǎo)致它們?cè)谝恍┒嗾Z(yǔ)言任務(wù)和機(jī)器翻譯任務(wù)上的性能更高。
OPT 使用了很多對(duì)話(huà)數(shù)據(jù)(例如 reddit),這可能是它在對(duì)話(huà)中表現(xiàn)好的原因之一。PaLM 有很大的占比在社交媒體對(duì)話(huà)中,這可能是它在多種問(wèn)答任務(wù)和數(shù)據(jù)集上有著卓越表現(xiàn)的原因。同樣的,PaLM 和更新版本的 GPT-3 有很大比例的代碼數(shù)據(jù)集,這增強(qiáng)了它們?cè)诖a任務(wù)上的能力,以及可能增強(qiáng)了它們 CoT (Chain-of-Thought,思維鏈) 的能力。
一個(gè)有趣的現(xiàn)象是 BLOOM 在代碼和 CoT 上的表現(xiàn)仍然是較差的,盡管它在預(yù)訓(xùn)練過(guò)程中使用了代碼數(shù)據(jù)。這可能暗示著單獨(dú)代碼數(shù)據(jù)本身,并不能保證模型的代碼和 CoT 能力。
總之,一些文章表明了上面三點(diǎn)的重要性,即:通過(guò)數(shù)據(jù)去重避免記憶和過(guò)擬合,通過(guò)數(shù)據(jù)篩選以得到高質(zhì)量數(shù)據(jù),保證數(shù)據(jù)多樣性以確保 LLM 的泛化性。但不幸的是,對(duì)于 PaLM 和 GPT-3 預(yù)處理這些數(shù)據(jù)的細(xì)節(jié),或者這些預(yù)訓(xùn)練數(shù)據(jù)本身,仍然沒(méi)有公布,這使得公共社區(qū)很難去復(fù)現(xiàn)它們。
訓(xùn)練策略
此處訓(xùn)練策略包括訓(xùn)練框架、訓(xùn)練持續(xù)時(shí)間、模型架構(gòu) / 訓(xùn)練設(shè)置、訓(xùn)練過(guò)程中的修改。在訓(xùn)練非常大的模型時(shí),它們被用于獲得更好的穩(wěn)定性和收斂性。一般來(lái)說(shuō),由于未知的原因,預(yù)訓(xùn)練過(guò)程中廣泛觀(guān)察到損失尖峰(loss spike)和無(wú)法收斂的情況。因此,眾多的對(duì)訓(xùn)練設(shè)置和模型架構(gòu)的修改被提出,用以避免這些問(wèn)題。但是其中一些修改在 OPT 和 BLOOM 之中還不是最優(yōu)解,這可能導(dǎo)致它們的性能較差。GPT-3 并沒(méi)有明確提到他們是如何解決這個(gè)問(wèn)題的。
1. 訓(xùn)練框架。一個(gè)參數(shù)量大于 175B 的模型往往需要 ZeRO 式的數(shù)據(jù)并行(分布式的優(yōu)化器)和模型并行(包括張量并行(tensor parallel)、流水線(xiàn)并行(pipeline parallel),有時(shí)還包括序列并行(sequence parallel))。OPT 采用了 ZeRO 的 FSDP 實(shí)現(xiàn),以及模型并行的 Megatron-LM 實(shí)現(xiàn)。BLOOM 采用了 ZeRO 的 Deepspeed 實(shí)現(xiàn)和模型并行的 Megatron-LM 實(shí)現(xiàn)。
PaLM 采用了 Pathways,這是一個(gè)基于 TPU 的模型并行和數(shù)據(jù)并行系統(tǒng)。GPT-3 的訓(xùn)練系統(tǒng)的細(xì)節(jié)仍然未知,但它們至少在一定程度上使用了模型并行(一些人稱(chēng)它使用了 Ray)。不同的訓(xùn)練系統(tǒng)和硬件可能導(dǎo)致不同的訓(xùn)練時(shí)的現(xiàn)象。顯然,一些在 PaLM 的文章中呈現(xiàn)的、用于 TPU 訓(xùn)練的設(shè)置,可能并不適用于其它所有模型使用的 GPU 訓(xùn)練。
硬件和訓(xùn)練框架的一個(gè)重要的影響是,人們是否可以使用 bfloat16 去存儲(chǔ)模型權(quán)重和中間層激活值等。這已經(jīng)被證明是穩(wěn)定訓(xùn)練的一個(gè)重要因素,因?yàn)?bfloat16 可以表示更大范圍的浮點(diǎn)數(shù),能夠處理在損失尖峰時(shí)出現(xiàn)的大數(shù)值。在 TPU 上 bfloat16 是默認(rèn)設(shè)置,這可能是 PaLM 能夠成功的一個(gè)秘密。但是在 GPU 上,以前人們主要使用 float16,這是 V100 中混合精度訓(xùn)練的唯一選擇。
OPT 使用了 float16,這可能是其不穩(wěn)定的因素之一。BLOOM 發(fā)現(xiàn)了這樣的問(wèn)題并最終在 A100GPU 上使用了 bfloat16,但它沒(méi)有意識(shí)到這種設(shè)置的重要性,因此在第一個(gè)詞向量層后引入額外的層歸一化(layer normalization),用于解決他們使用 float16 的初步實(shí)驗(yàn)中的不穩(wěn)定性。然而,這種層歸一化已被證明會(huì)導(dǎo)致更糟糕的零樣本泛化(zero-shot generalization),這可能是 BLOOM 失敗的一個(gè)因素。
2. 訓(xùn)練過(guò)程中的修改。OPT 做了很多中途調(diào)整并從最近的 checkpoint 重啟訓(xùn)練,包括改變截?cái)嗵荻确稊?shù) (clip gradient norm) 和學(xué)習(xí)率,切換到簡(jiǎn)單的 SGD 優(yōu)化器然后回到 Adam,重置動(dòng)態(tài)損失標(biāo)量 (dynamic loss scalar),切換到更新版本的 Megatron 等等。
這種中途調(diào)整可能是 OPT 失敗的原因之一。相比之下,PaLM 幾乎沒(méi)有做任何中途調(diào)整。它只是當(dāng)損失尖峰出現(xiàn)時(shí),從尖峰開(kāi)始前大約 100 步的 checkpoint 重新開(kāi)始訓(xùn)練,并跳過(guò)了大約 200-500 個(gè) batch 的數(shù)據(jù)。僅僅依靠這種簡(jiǎn)單的重啟,PaLM 就取得神奇的成功。這是由于它在預(yù)訓(xùn)練數(shù)據(jù)構(gòu)建期間就已經(jīng)完成采樣,因此模型具有在 Bit 意義上的確定性,以及它對(duì)模型架構(gòu)和訓(xùn)練設(shè)置進(jìn)行了許多修改以獲得更好的穩(wěn)定性。PaLM 中的此類(lèi)修改在下一點(diǎn)中展示。
3. 模型架構(gòu) / 訓(xùn)練設(shè)置:為了使訓(xùn)練更穩(wěn)定,PaLM 對(duì)模型架構(gòu)和訓(xùn)練設(shè)置進(jìn)行了多項(xiàng)調(diào)整,包括使用 A****ctor 的修改版本作為優(yōu)化器,縮放在 softmax 之前的輸出 logit,使用輔助損失來(lái)鼓勵(lì) softmax 歸一化器接近 0,對(duì)詞向量和其他層權(quán)重使用不同的初始化,在前饋層和層歸一化中不使用偏差項(xiàng),并且在預(yù)訓(xùn)練期間不使用 dropout。
請(qǐng)注意,GLM-130B 中還有更多有價(jià)值的內(nèi)容關(guān)于如何穩(wěn)定地訓(xùn)練非常大的模型,例如:使用基于 DeepNorm 的后置層歸一化而不是前置層歸一化,以及詞向量層梯度收縮。以上大多數(shù)模型修改沒(méi)有被 OPT 和 BLOOM 采用,這可能會(huì)導(dǎo)致它們的不穩(wěn)定和失敗。
4. 訓(xùn)練過(guò)程:如下表所示,原始的 GPT-3 預(yù)訓(xùn)練過(guò)程見(jiàn)過(guò)的 token 數(shù)與 OPT 和 BLOOM 接近,而 PaLM 則遠(yuǎn)遠(yuǎn)超過(guò)了它們。同樣,PaLM 和 GPT-3 預(yù)訓(xùn)練語(yǔ)料庫(kù)都大于 BLOOM 和 OPT。因此,在更多的 token 上、用更大規(guī)模的高質(zhì)量語(yǔ)料庫(kù)進(jìn)行預(yù)訓(xùn)練可能是 GPT-3 和 PaLM 成功的一個(gè)重要因素。
除了上面列出的四點(diǎn),還有一些其它因素,它們可能對(duì)于更穩(wěn)定的訓(xùn)練并不重要,但仍然可能影響最終的性能。
第一點(diǎn),PaLM 和 GPT-3 都使用了在訓(xùn)練過(guò)程中從小到大逐漸增加的 batch size,這已經(jīng)被展示對(duì)于訓(xùn)練一個(gè)更好的 LLM 是有效的,然而 OPT 和 BLOOM 都使用了恒定的 batch size。
第二點(diǎn),OPT 使用了 ReLU 激活函數(shù),而 PaLM 使用 SwiGLU 激活函數(shù),GPT-3 和 BLOOM 使用 GeLU,它通常使得訓(xùn)練的 LLM 的性能更好。
第三點(diǎn),為了更好的建模更長(zhǎng)的序列,PaLM 使用 RoPE 詞向量,BLOOM 使用 ALiBi 詞向量,而原始的 GPT-3 和 OPT 使用學(xué)習(xí)得到的詞向量,這可能影響在長(zhǎng)序列上的性能。
我們應(yīng)該在哪些任務(wù)上使用 GPT-3.5 或 ChatGPT?
我嘗試解釋我們應(yīng)該在哪些任務(wù)和應(yīng)用上使用 GPT-3,而哪些則不該使用。為了展示 GPT-3 是否適合某個(gè)特定任務(wù),我主要比較了帶有提示(prompting)的 GPT-3 和經(jīng)過(guò)微調(diào)的更小的模型,這些小模型有時(shí)還加入了其他特殊的設(shè)計(jì)。鑒于最近出現(xiàn)的更小的而且可以微調(diào)的 FLAN-T5 模型的良好性能,這一問(wèn)題更加重要。
在理想情形下,如果微調(diào) GPT-3 的負(fù)擔(dān)是能夠承擔(dān)的,它可能帶來(lái)更進(jìn)一步的提升。然而,在一些任務(wù)上通過(guò)微調(diào) PaLM-540B 帶來(lái)的提升是如此有限,讓人們懷疑在一些任務(wù)中微調(diào) GPT-3 是否是值得的。從科學(xué)的角度來(lái)看,更公平的比較應(yīng)在微調(diào) GPT-3 和提示 GPT-3 之間進(jìn)行。然而,要使用 GPT-3,人們可能更關(guān)心將提示 GPT-3 和微調(diào)一個(gè)更小的模型去進(jìn)行對(duì)比。
注意到,我主要關(guān)心的是將完成任務(wù)的精確度作為度量,但仍然存在很多其它重要的維度,例如:有害性(toxicity)、公平性等,它們也應(yīng)該在決定是否使用 GPT-3 時(shí)被納入考慮,正如 HELM 的文章中所呈現(xiàn)的。下圖展示了一個(gè)粗略的決策流程,希望它能夠作為一個(gè)有用的實(shí)踐指南,無(wú)論對(duì)于已有任務(wù)還是一個(gè)全新的任務(wù)。
注 1:由于在對(duì)話(huà)場(chǎng)景下的良好對(duì)齊,ChatGPT 作為一個(gè)聊天機(jī)器人表現(xiàn)優(yōu)異。但我們通常使用 GPT-3、InstructGPT (GPT-3.5)、以及 Codex 這些 ChatGPT 背后的模型作為在更多任務(wù)和使用場(chǎng)景下的通用模型。
注 2:這一節(jié)中的結(jié)論是基于一些對(duì)模型當(dāng)前版本的發(fā)現(xiàn)得到的,這可能不適用于未來(lái)的更強(qiáng)的模型。因?yàn)椋褂酶嗯c目標(biāo)數(shù)據(jù)集接近的預(yù)訓(xùn)練數(shù)據(jù)、學(xué)術(shù)數(shù)據(jù)集指令調(diào)整(例如提示一個(gè) FLAN-PaLM 可能會(huì)帶來(lái)更強(qiáng)的性能,它仍未公開(kāi))或者通過(guò) RLHF 以使得模型對(duì)目標(biāo)任務(wù)的更好對(duì)齊,這些都可能使得模型在目標(biāo)任務(wù)中表現(xiàn)更好,即使有時(shí)這會(huì)犧牲在其他場(chǎng)景下的能力(例如,InstructGPT 的 “對(duì)齊稅 / Alignment tax”)。
在這種情況下,很難判斷 GPT 是進(jìn)行泛化和跨任務(wù)泛化,還是僅僅在預(yù)訓(xùn)練時(shí)就已經(jīng)記住了一些測(cè)試樣例,或者說(shuō)見(jiàn)過(guò)那些在預(yù)訓(xùn)練時(shí)所謂 “沒(méi)有見(jiàn)過(guò)” 的任務(wù)。然而,記憶在實(shí)踐中是否真的是一個(gè)嚴(yán)重的問(wèn)題,這仍然值得懷疑。因?yàn)橛脩?hù)與研究人員不同,如果他們發(fā)現(xiàn) GPT 已經(jīng)可以在他們的測(cè)試數(shù)據(jù)上表現(xiàn)良好,他們可能不會(huì)關(guān)心 GPT 在預(yù)訓(xùn)練期間是否看到了相同或相似的數(shù)據(jù)。
不論如何,為了最大化這一節(jié)在當(dāng)前的實(shí)用價(jià)值,我盡最大努力,試圖比較微調(diào)公共的更小型的模型(T5、FALN-T5、一些特殊設(shè)計(jì)的微調(diào) SOTA 模型等)和最近的 GPT-3 (GPT-3.5、InstructGPT)、PaLM(或 FLAN-PaLM)的最佳性能,如果這些模型的測(cè)評(píng)數(shù)據(jù)夠獲得的話(huà)。
適合使用GPT-3的任務(wù)
一般來(lái)說(shuō),有以下這些情況更適合使用提示 GPT-3。令人驚訝的是,如果我們回看 GPT-3 論文的介紹部分,在那里很多初始設(shè)計(jì)時(shí)的目標(biāo)涵蓋了這些任務(wù)。這意味著那些當(dāng)初宏偉的目標(biāo)已經(jīng)被部分實(shí)現(xiàn)了。
1. 創(chuàng)造性和復(fù)雜的任務(wù):包括代碼(代碼補(bǔ)全、自然語(yǔ)言指令生成代碼、代碼翻譯、bug 修復(fù))、文本摘要、翻譯、創(chuàng)造性寫(xiě)作(例如寫(xiě)故事、文章、郵件、報(bào)告,以及寫(xiě)作的改進(jìn)等)。正如原始的 GPT-3 文獻(xiàn)中所示,GPT-3 被設(shè)計(jì)用于那些困難和 “不可能標(biāo)注” 的任務(wù)。在一定程度上,對(duì)于這些任務(wù),先前那種經(jīng)過(guò)微調(diào)的模型不可能應(yīng)用于真實(shí)世界的應(yīng)用;而 GPT-3 使它們成為可能。舉個(gè)例子,最近的文章顯示,過(guò)去的人類(lèi)標(biāo)注的文本摘要已經(jīng)被 LLM 生成的摘要所超越。
在某些需要從低、中資源語(yǔ)言翻譯到英語(yǔ)的機(jī)器翻譯任務(wù)中,通過(guò)提示 PaLM-540B,它甚至能夠超越微調(diào)模型。
在 BLOOM-176B 中也觀(guān)察到了類(lèi)似的趨勢(shì)。這是因?yàn)橛⒄Z(yǔ)數(shù)據(jù)通常在預(yù)訓(xùn)練語(yǔ)料庫(kù)中占了很大比例,因此 LLM 擅長(zhǎng)于生成英語(yǔ)語(yǔ)句。注意到,為了在代碼任務(wù)中獲得良好性能,盡管 Codex 和 PaLM 已經(jīng)在整體上具有比之前模型更好的性能,我們?nèi)匀恍柙试S LLM 多次(k 次)采樣,以通過(guò)測(cè)試樣例(使用 pass@k 作為度量)。
2. 只有少數(shù)標(biāo)注或者沒(méi)有標(biāo)注數(shù)據(jù)的任務(wù)。正如原始的 GPT-3 文獻(xiàn)所說(shuō),GPT-3 是為了那些 “昂貴標(biāo)注” 的任務(wù)設(shè)計(jì)的。在這種情況下,用極少量標(biāo)注數(shù)據(jù)微調(diào)一個(gè)更小的模型通常不可能達(dá)到 GPT-3 在零樣本(zero-shot)、單樣本(ont-shot)或少樣本(few-shot)的情況下的表現(xiàn)。
3. 分布外(Out-of-distribution, OOD)泛化。給定一些訓(xùn)練數(shù)據(jù),傳統(tǒng)的微調(diào)可能會(huì)過(guò)擬合訓(xùn)練集并且有較差的分布外泛化能力;而少樣本的上下文學(xué)習(xí)(in-context learning)能夠有更好的分布外泛化性。例如,帶有提示的 PaLM 能夠在對(duì)抗自然語(yǔ)言推斷任務(wù)(Adversarial Natural Language Inference,ANLI)上超越經(jīng)過(guò)微調(diào)的 SOTA 模型,而它在正常的語(yǔ)言推斷任務(wù)上可能仍然劣于微調(diào)的 SOTA。
另一個(gè)例子是提示 LLM 比微調(diào)模型顯示出更好的組合泛化能力。更好的分布外泛化性可能是因?yàn)樵谏舷挛膶W(xué)習(xí)期間不需要更新參數(shù),避免了過(guò)擬合;或者因?yàn)槟切┻^(guò)去的分布外樣例對(duì)于 LLM 而言是分布內(nèi)的。這種使用場(chǎng)景被闡釋為 GPT-3 的初始設(shè)計(jì)目標(biāo)之一:“微調(diào)模型在特定任務(wù)的數(shù)據(jù)集上的性能可以達(dá)到所謂的人類(lèi)水平,實(shí)際上可能夸大了在真實(shí)世界中該任務(wù)上的性能,這是因?yàn)槟P椭皇菍W(xué)到了訓(xùn)練集中存在的虛假的相關(guān)性,以及模型過(guò)度擬合了這個(gè)訓(xùn)練集狹窄的分布?!?nbsp;
4. 需要處理多種任務(wù)的能力,而非關(guān)注特定任務(wù)上的卓越表現(xiàn)。聊天機(jī)器人就是這樣一種場(chǎng)景,其中,用戶(hù)期待它能夠正確地響應(yīng)各種各樣的任務(wù)。這可能就是為什么 ChatGPT 是 GPT-3 最成功的使用場(chǎng)景之一。
5. 那些檢索不可行的知識(shí)密集型任務(wù)。存儲(chǔ)在 LLM 中的知識(shí)可以顯著地提高在知識(shí)密集型任務(wù)的性能,例如閉卷問(wèn)答和 MMLU(一個(gè)基準(zhǔn)數(shù)據(jù)集,包括來(lái)自于 STEM、人文、社科等 57 個(gè)學(xué)科的選擇題,它用于測(cè)試 LLM 的世界知識(shí)和問(wèn)題解答的能力)。然而,如果預(yù)先檢索的步驟可以被加入來(lái)做檢索增強(qiáng)的生成,一個(gè)微調(diào)的更小的模型(例如 Atlas 模型)甚至可以有更好的性能(在閉卷的 NaturalQuestions 和 TrivialQA 數(shù)據(jù)集上,Atlas 比 PaLM 和最新的 InstructGPT 都要更好)。
檢索或者傳統(tǒng)的搜索同樣是將 GPT-3 或 ChatGPT 整合到搜索引擎中的一個(gè)必要的步驟,這可以提升生成的準(zhǔn)確性,并且提供更多的參考鏈接以增強(qiáng)說(shuō)服力。但我們應(yīng)該承認(rèn),在某些情況下,檢索是不允許或者不容易的,比如參加 USMLE (美國(guó)醫(yī)學(xué)執(zhí)照考試),谷歌已經(jīng)證明基于 FLAN-PaLM 的模型可以在其中做得很好。
同樣的,在 MMLU 基準(zhǔn)集中,PaLM-540B 有著比其他微調(diào)模型更好的性能,甚至后者結(jié)合了檢索,盡管最新版本的 InstructGPT 還差于這些帶有檢索的微調(diào) SOTA。也請(qǐng)注意,指令調(diào)整一個(gè)較小的模型也可以實(shí)現(xiàn)與更大規(guī)模的 LLM 模型接近的效果,這已經(jīng)在 FLAN-T5 中展現(xiàn)。
6. 一些困難的任務(wù),其中需要 LLM 的涌現(xiàn)能力,比如帶有 CoT 的推理和 BIG-Bench 中的復(fù)雜任務(wù)(包括邏輯推理、翻譯、問(wèn)答、數(shù)學(xué)任務(wù)等)。舉個(gè)例子,PaLM 已經(jīng)展示,在 7 個(gè)包括數(shù)學(xué)和常識(shí)推理的多步推理任務(wù)上,8 - 樣例的 CoT 比微調(diào) SOTA 在其中 4 個(gè)任務(wù)上更好,在其它 3 個(gè)任務(wù)上則基本持平。
這樣的成功表現(xiàn)要同時(shí)歸因于更大規(guī)模的模型和 CoT。PaLM 還顯示了在 BIG-Bench 任務(wù)上從 8B 到 62B 再到 540B 模型的不連續(xù)的表現(xiàn)提升,這超出了規(guī)模定律(scailing law),被稱(chēng)為 LLMs 的涌現(xiàn)能力。另外,帶有 5 個(gè) Prompt 的 PaLM-540B 在 Big-Bench 的 58 項(xiàng)常見(jiàn)任務(wù)中的 44 項(xiàng)上優(yōu)于之前的(少樣本)SOTA。PaLM-540B 在 Big-Bench 的總體表現(xiàn)也優(yōu)于人類(lèi)的平均表現(xiàn)。
7. 一些需要模仿人類(lèi)的場(chǎng)景,或者是其目標(biāo)是制作性能達(dá)到人類(lèi)水平的通用人工智能。同樣的,ChatGPT 是其中的一個(gè)案例,ChatGPT 使自己更像是一個(gè)人,從而取得了現(xiàn)象級(jí)的成功。這也被闡釋為 GPT-3 的初始設(shè)計(jì)目標(biāo)之一:“人類(lèi)不需要大規(guī)模監(jiān)督數(shù)據(jù)集來(lái)學(xué)習(xí)大多數(shù)語(yǔ)言任務(wù)。最多只需要幾個(gè)例子,人類(lèi)就可以將各種任務(wù)和技巧無(wú)縫地混合在一起或者在它們之間切換。因此傳統(tǒng)的微調(diào)模型導(dǎo)致了與人類(lèi)的不公平比較,盡管他們聲稱(chēng)在許多基準(zhǔn)數(shù)據(jù)集中有著人類(lèi)水平的性能?!?nbsp;
8. 在一些傳統(tǒng)的接近于語(yǔ)言建模的 NLP 任務(wù)上,少樣本 PaLM-540B 能夠大致匹配或者甚至超過(guò)微調(diào)的 SOTA,例如:一段話(huà)最后一句和最后一個(gè)單詞的完型填空,以及回指(anaphora)解析。需要指出,在這種情況下,零樣本的 LLM 已經(jīng)足夠了,單樣本或少樣本的示例則通常幫助不大。
另一些任務(wù)則并不需要提示(prompt)一個(gè) GPT-3 這樣規(guī)模的模型:
不適合使用GPT-3的任務(wù)
1. 調(diào)用 OpenAI GPT-3 的 API 超出了預(yù)算(例如對(duì)于沒(méi)有太多錢(qián)的創(chuàng)業(yè)公司)。
2. 調(diào)用 OpenAI GPT-3 的 API 存在安全問(wèn)題(例如數(shù)據(jù)泄露給 OpenAI,或者可能生成的有害內(nèi)容)。
3. 沒(méi)有足夠的工程或者硬件資源去部署一個(gè)相似大小的模型及消除推斷的延遲問(wèn)題。例如,在沒(méi)有最先進(jìn)的 80G 的 A100 或者工程資源來(lái)優(yōu)化推斷速度的情況下,簡(jiǎn)單地使用 Alpa 在 16 個(gè) 40G 的 A100 上部署 OPT-175B 需要 10 秒才能完成單個(gè)樣例的推斷,這對(duì)于大多數(shù)現(xiàn)實(shí)世界的在線(xiàn)應(yīng)用程序來(lái)說(shuō)是無(wú)法接受的延遲。
4. 如果想用 GPT-3 替代一個(gè)性能良好的、高準(zhǔn)確度的微調(diào)模型,或者想要在一些特定的單一任務(wù)和使用場(chǎng)景下去部署一個(gè) NLU(Natural Language Understanding,自然語(yǔ)言理解)或 NLG(Natural Language Generating,自然語(yǔ)言生成)模型,請(qǐng)三思這是否值得。
- 對(duì)于一些傳統(tǒng)的 NLU 任務(wù),比如分類(lèi)任務(wù),我建議首先嘗試微調(diào) FLAN-T5-11B 模型,而不是提示 GPT-3。例如,在 SuperGLUE,一個(gè)困難的 NLU 基準(zhǔn)數(shù)據(jù)集(包括閱讀理解、文本蘊(yùn)含、詞義消歧、共指消解和因果推理等任務(wù))上,所有的 PaLM-540B 的少樣本提示性能都劣于微調(diào)的 T5-11B,并在其中大多數(shù)任務(wù)上有著顯著的差距。如果使用原始 GPT3,其提示結(jié)果與微調(diào) SOTA 的結(jié)果之間的差距更大。有趣的是,即使是經(jīng)過(guò)微調(diào)的 PaLM 也僅比經(jīng)過(guò)微調(diào)的 T5-11B 有著有限的改進(jìn),而經(jīng)過(guò)微調(diào)的 PaLM 甚至比經(jīng)過(guò)微調(diào)的編 - ****模型 32B MoE 模型還要差。這表明使用更合適的架構(gòu)(例如編 - ****模型)微調(diào)較小的模型仍然是比使用非常大的僅****模型更好的解決方案,無(wú)論是微調(diào)還是提示來(lái)使用這些大模型。根據(jù)最近的一篇論文,即使對(duì)于最傳統(tǒng)的 NLU 分類(lèi)任務(wù) —— 情感分析,ChatGPT 仍然比經(jīng)過(guò)微調(diào)的較小模型差。
- 一些不以現(xiàn)實(shí)世界數(shù)據(jù)為基礎(chǔ)的困難任務(wù)。例如,BigBench 中仍然有許多對(duì) LLM 來(lái)說(shuō)困難的任務(wù)。具體地說(shuō),在 35% 的 BigBench 任務(wù)上,人類(lèi)的平均表現(xiàn)仍然高于 PaLM-540B,并且在某些任務(wù)中,擴(kuò)大模型規(guī)模甚至無(wú)濟(jì)于事,例如導(dǎo)航和數(shù)學(xué)歸納。在數(shù)學(xué)歸納中,當(dāng)提示中的假設(shè)不正確時(shí)(例如 “2 是奇數(shù)”),PaLM 會(huì)犯很多錯(cuò)誤。在逆規(guī)模定律競(jìng)賽 (Inverse Scaling Law Challenge) 中,也觀(guān)察到了類(lèi)似的趨勢(shì),例如重新定義數(shù)學(xué)符號(hào)(例如提示可能 “將 π 重新定義為 462”)后再使用這個(gè)符號(hào)。在這種情況下,LLM 中的現(xiàn)實(shí)世界先驗(yàn)知識(shí)太強(qiáng)而無(wú)法被提示覆蓋,而微調(diào)較小的模型可能可以更好地學(xué)習(xí)這些反事實(shí)知識(shí)。
- 在很多多語(yǔ)言任務(wù)和機(jī)器翻譯任務(wù)中,使用少樣本的提示 GPT 仍然要比微調(diào)的更小的模型更差。這很可能是由于除英語(yǔ)之外的其它語(yǔ)言在預(yù)訓(xùn)練語(yǔ)料庫(kù)中占比很少。
- 當(dāng)從英語(yǔ)翻譯為其他語(yǔ)言,以及翻譯高資源語(yǔ)言到英語(yǔ)時(shí),PaLM 和 ChatGPT 仍然比在機(jī)器翻譯任務(wù)上微調(diào)的更小的模型要差。
- 對(duì)于多語(yǔ)言問(wèn)答任務(wù)來(lái)說(shuō),在少樣本的 PaLM-540B 和微調(diào)的更小模型之間還存在較大差距。
- 對(duì)于多語(yǔ)言文本生成(包括文本摘要和數(shù)據(jù)到文本生成),在少樣本的 PaLM-540B 和微調(diào)的更小模型之間還存在較大差距。在大部分任務(wù)上即使微調(diào)的 PaLM-540B 也僅僅比微調(diào)的 T5-11B 有有限的提升,并仍然劣于微調(diào)的 SOTA。
- 對(duì)于常識(shí)推理任務(wù),在最好的少樣本提示 LLM 和微調(diào)的 SOTA 之間仍然存在著較大的差距,例如:OpenbookQA,ARC(包括 Easy 和 Challenge 版本)以及 CommonsenseQA(甚至使用了 CoT 提示)。
- 對(duì)于機(jī)器閱讀理解任務(wù),在最好的少樣本提示 LLM 和微調(diào)的 SOTA 之間仍然存在著較大的差距。在大多數(shù)數(shù)據(jù)集上,這個(gè)差距可能非常巨大。這可能是因?yàn)樗谢卮饐?wèn)題所需的知識(shí)都已經(jīng)包含在給出的文本中,并不需要 LLM 中的額外知識(shí)。
總結(jié)一下,上面的這些任務(wù)可以被歸為以下類(lèi)別之一:
1. 一些 NLU 任務(wù),既不需要額外的知識(shí)也不需要 LLM 的生成能力。這意味著測(cè)試數(shù)據(jù)大多數(shù)都和手頭的訓(xùn)練數(shù)據(jù)在同一個(gè)分布之中。在這些任務(wù)上,過(guò)去微調(diào)的較小模型已經(jīng)表現(xiàn)很好了。
2. 一些不需要額外的來(lái)自 LLM 中知識(shí)的任務(wù),因?yàn)槊恳粋€(gè)例子已經(jīng)在上下文或者提示中包含了足夠的知識(shí),例如機(jī)器閱讀理解。
3. 一些需要額外知識(shí),但不太可能從 LLM 中獲得這樣的知識(shí),或者 LLM 不太可能見(jiàn)過(guò)類(lèi)似分布的任務(wù),例如一些低資源語(yǔ)言中的任務(wù),LLM 在這些語(yǔ)言中只有有限的預(yù)訓(xùn)練樣本。
4. 一些任務(wù),需要與 LLM 中包含的知識(shí)所不一致的知識(shí),或者并非基于現(xiàn)實(shí)世界的語(yǔ)言數(shù)據(jù)的知識(shí)。因?yàn)?LLM 是在現(xiàn)實(shí)世界的語(yǔ)言數(shù)據(jù)上訓(xùn)練的,它難以在新的任務(wù)中利用反事實(shí)知識(shí)覆蓋原有知識(shí)。除了在逆規(guī)模定律挑戰(zhàn)中的 “重新定義數(shù)學(xué)符號(hào)” 問(wèn)題之外,還有另一個(gè)任務(wù),即復(fù)述有細(xì)微改動(dòng)的名言,其中 LLM 被要求復(fù)述一個(gè)在 prompt 中出現(xiàn)的被修改的名言。在這種情況下,LLM 傾向于重復(fù)出名言的原始版本,而非修改過(guò)后的版本。
5. 一些任務(wù)需要來(lái)自 LM 的知識(shí),但也嚴(yán)重依賴(lài)于操縱這些知識(shí),而 LLM 的 “預(yù)測(cè)下一個(gè) token” 的目標(biāo)無(wú)法輕易實(shí)現(xiàn)這種操縱。一個(gè)例子是一些常識(shí)推理任務(wù)。CoT 和 least-to-most 提示可以幫助 LLM 推理的原因可能是他們可以更好地調(diào)出那些連續(xù)的預(yù)訓(xùn)練文本,這些連續(xù)文本恰好模仿了規(guī)劃和分解 / 組合知識(shí)的過(guò)程。
因此,CoT 和 least-to-most 提示在一些數(shù)學(xué)推理、代碼和其他簡(jiǎn)單的自然語(yǔ)言推理任務(wù)中表現(xiàn)良好,但在許多常識(shí)推理(例如在逆規(guī)模定律競(jìng)賽中展示的演繹推理任務(wù))和自定義符號(hào)推理任務(wù)中仍然表現(xiàn)不佳。這些任務(wù)通常不被自然語(yǔ)言數(shù)據(jù)中的大多數(shù)真實(shí)世界的連續(xù)序列所包含,而需要操縱分散在各處的知識(shí)來(lái)完成。
6. 一些容易受到上下文學(xué)習(xí)樣例或者真實(shí)世界數(shù)據(jù)中存在的虛假相關(guān)性影響的任務(wù)。一個(gè)例子是來(lái)自于逆規(guī)模定律競(jìng)賽中的涉及否定詞的問(wèn)答。如果一個(gè) LLM 被提問(wèn):“如果一只貓的體溫低于平均水平,它就不在……”,它傾向于回答 “危險(xiǎn)之中” 而非 “安全范圍 “。這是因?yàn)?LLM 受到常見(jiàn)的 “低于平均體溫” 和 “危險(xiǎn)” 之間的關(guān)系所支配,而在否定的情況下,這是一種虛假的相關(guān)性。
7. 一些目標(biāo)與處理語(yǔ)言數(shù)據(jù)顯著不同的任務(wù),例如:回歸問(wèn)題,其中微調(diào)模型很難被 LLM 取代。至于多模態(tài)任務(wù),它們不能被 LLM 解決,但是可能能從大規(guī)模的預(yù)訓(xùn)練多模態(tài)模型中受益。
8. 一些任務(wù)不需要 LLM 的涌現(xiàn)能力。為了準(zhǔn)確地對(duì)更多此類(lèi)任務(wù)進(jìn)行鑒別,我們需要更好地了解 LLM 訓(xùn)練期間,涌現(xiàn)能力是從何產(chǎn)生的。
注意到,在現(xiàn)實(shí)世界的使用場(chǎng)景中,即使由于無(wú)法滿(mǎn)足延遲要求因而無(wú)法在線(xiàn)地使用 LLM,仍然可以使用 LLM 離線(xiàn)生成或標(biāo)注數(shù)據(jù)。此類(lèi)自動(dòng)標(biāo)注的標(biāo)簽可以在線(xiàn)查找并提供給用戶(hù),或用于微調(diào)較小的模型。使用此類(lèi)數(shù)據(jù)微調(diào)較小的模型可以減少訓(xùn)練模型所需的人工注釋數(shù)據(jù),并將 LLM 的一些新興能力(例如 CoT)注入較小的模型。
總之,當(dāng)有足夠的標(biāo)記數(shù)據(jù)時(shí),考慮到開(kāi)源 FLAN-T5 在許多任務(wù)中的驚人性能,我推薦那些調(diào)用 OpenAI API 的資源有限的個(gè)體,應(yīng)該首先嘗試在目標(biāo)任務(wù)上微調(diào) FLAN-T5-11B。此外,根據(jù)最近在 MMLU 數(shù)據(jù)集上,F(xiàn)LAN-PaLM-540B 與最新版本的 InstructGPT 的性能(根據(jù) HELM)相比好得驚人的性能,谷歌可能擁有比 OpenAI 更強(qiáng)大的基礎(chǔ)模型,如果 OpenAI 已經(jīng)通過(guò) API 發(fā)布了他們獲得的最強(qiáng)的 LLM。
谷歌唯一剩下的步驟是通過(guò)人類(lèi)反饋使這個(gè) LLM 與對(duì)話(huà)場(chǎng)景對(duì)齊(alignment)。如果他們很快發(fā)布類(lèi)似 ChatGPT 的或者更好的聊天機(jī)器人,我不會(huì)感到驚訝 —— 盡管他們最近 “失敗” 地展示了一版可能基于 LaMDA 的 Bard。
關(guān)于作者
英文原版作者:楊靖鋒,現(xiàn)任亞馬遜科學(xué)家,本科畢業(yè)于北大,碩士畢業(yè)于佐治亞理工學(xué)院,師從 Stanford 楊笛一教授。
楊昊桐 譯,王驍 修訂 。
感謝靳弘業(yè)對(duì)第一版稿件的建議,感謝陳三星,符堯的討論和建議。
英文原版:https://jingfengyang.github.io/gpt
推特原文:https://twitter.com/JingfengY/status/1625003999387881472
參考文獻(xiàn)
[1] HELM: Holistic Evaluation of Language Models and its board: https://crfm.stanford.edu/helm/v0.2.0/?group=core_scenarios[2] GPT3: Language Models are Few-Shot Learners[3] PaLM: Scaling Language Modeling with Pathways[4] OPT: Open Pre-trained Transformer Language Models[5] BLOOM: A 176B-Parameter Open-Access Multilingual Language Model[6] FLAN-T5/PaLM: Scaling Instruction-Finetuned Language Models[7] The Flan Collection: Designing Data and Methods for Effective Instruction Tuning[8] InstructGPT: Training language models to follow instructions with human feedback[9] Yao Fu’s blog on “Tracing Emergent Abilities of Language Models to their Sources”[10] Inverse Scaling Prize: https://github.com/inverse-scaling/prize[11] Is ChatGPT a General-Purpose Natural Language Processing Task Solver?
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀(guān)點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。