谷歌&HuggingFace | 零樣本能力最強(qiáng)的語言模型結(jié)構(gòu)
但有一件事讓人非常疑惑:19 年 T5 通過“調(diào)參”發(fā)現(xiàn),設(shè)計(jì)預(yù)訓(xùn)練模型時,Encoder-Decoder 的模型結(jié)構(gòu) + MLM 任務(wù),在下游任務(wù) finetune 效果是最好的??墒窃?2202 年的當(dāng)下,主流的大模型用的都是僅 decoder 的模型結(jié)構(gòu)設(shè)計(jì),比如 OpenAI 的 GPT 系列、Google 的 PaLM [1]、Deepmind 的 Chinchilla [2] 等等。這是為什么?難道這些大模型設(shè)計(jì)都有問題?
今天帶來一篇 Hugging Face 和 Google 的文章。這篇文章與 T5 在實(shí)驗(yàn)上的思路相似,通過大量對比設(shè)計(jì),得到一個重磅結(jié)論:要是為了模型的 zero-shot 泛化能力,decoder 結(jié)構(gòu) + 語言模型任務(wù)最好;要是再 multitask finetuning,encoder-decoder 結(jié)構(gòu) + MLM 任務(wù)最好。
除了找到最好的訓(xùn)練方式,作者通過大量的實(shí)驗(yàn),還找到了最好的同時還能最節(jié)省成本的訓(xùn)練方式。訓(xùn)練計(jì)算量只需要九分之一!
論文題目:
What Language Model Architecture and Pretraining Objective Work Best for Zero-Shot Generalization?
論文鏈接:
https://arxiv.org/abs/2204.05832
模型設(shè)計(jì)
模型設(shè)計(jì)可以分成圖中的四個方面,即選什么結(jié)構(gòu)?什么訓(xùn)練目標(biāo)?要不要搞 adaptation?multitask finetuning?文章還在兩個 benchmark 進(jìn)行了評測。
模型結(jié)構(gòu)都基于 transformer,有三個選項(xiàng),如圖所示:
- Causal decoder-only (CD):直接只用 transformer decoder。這類模型大多使用語言模型的訓(xùn)練目標(biāo),即通過上文預(yù)測當(dāng)前 token。代表作有 GPT 系列。
- Non-causal decoder-only (ND):為了能在給定條件下生成或基于輸入生成,訓(xùn)練時可以讓前面一部分 token 可見。
- Encoder-decoder (ED):這就是原始 transformer 的結(jié)構(gòu),輸入一個序列,encoder 輸出同樣長度的向量表示序列,decoder 基于 encoder 的輸出做有條件的自回歸生成。
小結(jié)一下,CD 是只用 decoder,ND 是給提示的 decoder,ED 是 encoder-decoder。后面將用縮寫表示。
與模型結(jié)構(gòu)對應(yīng),訓(xùn)練目標(biāo)也有三種:
- Full language modeling (FLM):CD 類的模型架構(gòu)常用 FLM,通過上文預(yù)測當(dāng)前 token。在訓(xùn)練時,每個 token 可以并行計(jì)算出 loss,預(yù)測時要迭代預(yù)測。
- Prefix language modeling (PLM):ND 類和 ED 類的模型架構(gòu)可以用 PLM。首先在 attention 矩陣中定義一段 prefix,訓(xùn)練時要求模型生成 prefix 后面的 tokens。
- Masked language modeling (MLM):只用 Encoder 的模型常用 MLM 目標(biāo)。后來在 T5 這個 seq2seq 模型里,也使用了整段 mask 的 MLM 任務(wù)。
小結(jié)一下,F(xiàn)LM 就是語言模型目標(biāo),PLM 是帶提示的語言模型目標(biāo),MLM 是掩碼目標(biāo)。后面也會用縮寫表示。
適應(yīng)任務(wù)是預(yù)訓(xùn)練之后,換一個新的訓(xùn)練目標(biāo),繼續(xù)訓(xùn)練。與 finetune 不同的是,適應(yīng)的過程并沒有使用新的下游任務(wù)的數(shù)據(jù),只是繼續(xù)使用預(yù)訓(xùn)練的數(shù)據(jù)。適應(yīng)任務(wù)也可以分成兩類。
- Language modeling adaptation (LM-A):預(yù)訓(xùn)練用 MLM,后面再用 PLM 或 FLM 繼續(xù)訓(xùn)練。MLM + FLM 就是 T5 采用的方式,而 MLM + PLM,就是之前非?;鸬倪B續(xù)化 prompt-tuning 的方法,比如 prefix-tuning 等等。
- Non-causal MLM adaptation (NC-A) :預(yù)訓(xùn)練用的是 PLM,后面再用 FLM 繼續(xù)訓(xùn)練。這個方法是本文首次提出的,給 decoder 前面一部分 prefix 固定住,用 PLM 目標(biāo)訓(xùn)練,相當(dāng)于給 GPT 做 prefix-tuning。
多任務(wù)微調(diào) Multitask finetuning
多任務(wù)微調(diào) multitask finetuning (MT-F) 是 Hugging Face 去年年底的工作 [3],即拿到預(yù)訓(xùn)練模型,給他在 171 個任務(wù)上用 prompt 的方式同時 finetune。這種方式可以極大地增加預(yù)訓(xùn)練模型的 zero-shot 能力。
實(shí)驗(yàn)和結(jié)論
這篇文章用了兩個 benchmark:
- EleutherAI LM Evaluation Harness (EAI-Eval):這個任務(wù)是用來評測語言模型(也就是本文中使用 FLM 訓(xùn)練目標(biāo)的模型)的 zero-shot 能力。
- T0 的測試集 (T0-Eval):就是 Hugging Face 之前 multitask finetuning 工作使用的測試集。
這兩個測試集都是用 prompt 的方式進(jìn)行測試,即直接構(gòu)建 prompt 輸入給預(yù)訓(xùn)練模型,讓模型生成預(yù)測結(jié)果。兩個測試集不同的地方在于,EAI-Eval 的每個任務(wù)只給了一個 prompt,因此評測受 prompt 波動影響比較大,因此在本文的測試?yán)?,作者們?yōu)槊總€任務(wù)多設(shè)計(jì)了一些 prompts,來消除隨機(jī)性。
實(shí)驗(yàn)得到如下結(jié)論:
- 只無監(jiān)督預(yù)訓(xùn)練時:
CD 的模型結(jié)構(gòu) + FLM 訓(xùn)練目標(biāo) = zero shot 最好的模型。
這里就跟現(xiàn)在的大模型對上了。大模型都用的是這個組合,有最好的零樣本泛化能力。
- 預(yù)訓(xùn)練之后再加上多任務(wù)微調(diào)時:
ED 的模型結(jié)構(gòu) + MLM 訓(xùn)練目標(biāo) = zero shot 最好的模型。
這張圖左右表示兩個評測集。每張圖上都有九個點(diǎn),代表九個模型架構(gòu)和訓(xùn)練目標(biāo)的組合。左邊 T0-Eval 上結(jié)果非常明顯:可以將九個組合分成三組,左邊是幾個 baseline,中間是三種模型結(jié)構(gòu) + 語言模型訓(xùn)練目標(biāo),右邊是三種模型結(jié)構(gòu) + MLM 訓(xùn)練目標(biāo)。可以明顯看到,MLM 訓(xùn)練目標(biāo)明顯更好,MLM + ED 最好。
- 適應(yīng)任務(wù)的作用:
預(yù)訓(xùn)練之后,換一個新的訓(xùn)練目標(biāo),繼續(xù)訓(xùn)練,這帶來的主要是訓(xùn)練成本的降低。比如左圖,本身我們想要一個 CD + FLM 的結(jié)合,那就先訓(xùn)一個 ND + MLM,然后改成 CD + FLM 再做適應(yīng)任務(wù),這樣可以總體提速 1.6 倍。
經(jīng)過一系列實(shí)驗(yàn),作者最后總結(jié)出一個結(jié)論:如果想最低成本的構(gòu)建效果好的大模型,那就用 CD + FLM 預(yù)訓(xùn)練,然后再改用 ND + MLM 做適應(yīng)任務(wù),最后再使用多任務(wù)微調(diào)。這樣的訓(xùn)練方式要比直接訓(xùn)練提速 9.1 倍,同時效果最好。
總結(jié)
這篇文章跟 T5 非常像,也是用調(diào)參的感覺在設(shè)計(jì)實(shí)驗(yàn),最終找到最好的模型設(shè)計(jì)和訓(xùn)練方式。這樣的論文讀下來也感覺邏輯清晰嚴(yán)謹(jǐn)。
但是從另外一個角度想,這樣的文章似乎也有些無聊:現(xiàn)在大模型的使用,變成了找 prompt 的特征工程。這篇文章的訓(xùn)練和設(shè)計(jì)也變成了調(diào)參,而失去了創(chuàng)新的靈機(jī)一動。這可能代表了大模型領(lǐng)域的內(nèi)卷吧。
參考文獻(xiàn):
[1] Aakanksha Chowdhery, et. el., "Palm: Scaling language modeling with pathways.", https://arxiv.org/abs/2204.02311
[2]Jordan Hoffmann, et. al., "Training Compute-Optimal Large Language Models.", https://arxiv.org/abs/2203.15556[3]Victor Sanh, et. al., "Multitask Prompted Training Enables Zero-Shot Task Generalization", https://arxiv.org/abs/2110.08207*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點(diǎn),如有侵權(quán)請聯(lián)系工作人員刪除。