打破不可能三角、比肩5400億模型,IDEA封神榜團(tuán)隊(duì)僅2億級(jí)模型達(dá)到零樣本學(xué)習(xí)SOTA
自從 GPT-3 問世,展現(xiàn)出千億級(jí)模型的強(qiáng)大實(shí)力以來,NLP 任務(wù)面臨著規(guī)模、樣本、Fine-tuning 性能的不可能三角。如何在保證 10 億參數(shù)以下的語言模型可以達(dá)到 SOTA 的 Few-Shot (甚至是 Zero-shot)還有 Fine-tuning 的性能?一定要上千億的參數(shù)并且忍受不穩(wěn)定的 prompt 提示才可以解決 zero-shot 場(chǎng)景嗎?本文中,IDEA 研究院封神榜團(tuán)隊(duì)介紹了一種新的「表現(xiàn)型」UniMC,僅有 2 億參數(shù)即可達(dá)到 Zero-shot 的 SOTA。相關(guān)工作已經(jīng)被 EMNLP 2022 接收。
在今年的一篇文章 [1] 中指出,自預(yù)訓(xùn)練技術(shù)被提出以來,NLP 界一直存在著一個(gè)不可能三角(如下圖 1),即一個(gè)模型不能同時(shí)滿足:
- 中等模型大?。?0 億以下);
- SOTA 的 Few-Shot (甚至是 Zero-shot)性能;
- SOTA 的 Fine-tuning 性能。
圖 1
不可能三角存在的原因是,當(dāng)前預(yù)訓(xùn)練模型的參數(shù)量只有達(dá)到一定的數(shù)量級(jí),并且使用提示學(xué)習(xí)才能體現(xiàn)出強(qiáng)大的 few/zero-shot 性能。
最近我們封神榜團(tuán)隊(duì)被 EMNLP 2022 收錄的論文:《Zero-Shot Learners for Natural Language Understanding via a Unified Multiple Choice Perspective》則打破了這一「魔咒」,提供了一個(gè)靈活高效的解決思路。我們的論文提出的 UniMC 在擁有模型參數(shù)量很?。▋H僅是億級(jí))和 SOTA 的 Fine-tuning 能力的前提下,同時(shí)還能擁有(與 5400 億的 PaLM 相當(dāng)?shù)模?SOTA 的 Few/Zero-Shot 性能。
?
- 論文地址:https://arxiv.org/abs/2210.08590
- 模型開源地址:https://github.com/IDEA-CCNL/Fengshenbang-LM/tree/main/fengshen/examples/unimc/
技術(shù)背景
2018 年 BERT 的提出,標(biāo)志著整個(gè) NLP 領(lǐng)域進(jìn)入一個(gè)預(yù)訓(xùn)練時(shí)代,NLP 的百尺竿頭終于更進(jìn)一步。現(xiàn)有的模型如 DeBERTa 等預(yù)訓(xùn)練掩碼語言模型(PMLM)已經(jīng)可以在 10 億級(jí)以下的參數(shù)做到 fine-tuning 的 SOTA 了,但是面對(duì) Zero-shot 場(chǎng)景下的 NLU 任務(wù)時(shí)表現(xiàn)無力。
原因在于,使用 PMLM 的時(shí)候,我們需要在其頂部針對(duì)具體任務(wù)增加一個(gè) MLP 層,如圖 2(c)。并且,這個(gè) MLP 層會(huì)增加額外的參數(shù),這使得這種方法面對(duì) Zero-shot 場(chǎng)景時(shí),只能選擇隨機(jī)初始化,根本沒辦法獲得合理的輸出。而且,在 finetuning 的場(chǎng)景下,增加 MLP 層也會(huì)造成不同任務(wù)之間是無法遷移的(比如,2 分類和 3 分類任務(wù)之間無法遷移)。
針對(duì) Zero-shot 場(chǎng)景,近年來的主流做法是利用上百億乃至千億的預(yù)訓(xùn)練語言模型(PLM)統(tǒng)一將 NLU 任務(wù)轉(zhuǎn)化為文本生成任務(wù),這樣可以通過人工構(gòu)造 prompt 或者是人工設(shè)計(jì) verbalizer 使得大模型可以應(yīng)用于 zero-shot 任務(wù)上,如圖 2(a)。進(jìn)一步地,F(xiàn)LAN 論文中,使用了大量人工構(gòu)造的模版來統(tǒng)一了不同的任務(wù),使得別的任務(wù)的知識(shí)可以遷移到特定任務(wù)上,如圖 2(b)。不過,這樣的生成模型具有以下缺點(diǎn):
- 生成模型需要將 verbalizer(標(biāo)簽描述)給生成出來,而 verbalizer 通常由人工進(jìn)行編寫,不同的 verbalizer 會(huì)導(dǎo)致較大的性能差異;
- prompt 也需要人工設(shè)計(jì),不同的 prompt 會(huì)極大影響下游任務(wù)的效果;
- 生成模型在推理時(shí),需要自回歸的生成答案,速度較慢。并且一般是單向的,無法像 BERT 一樣可以獲取雙向信息;
- 為保證 few/zero-shot 性能,生成模型參數(shù)量往往較大,達(dá)到 GPT-3 的 1750 億或者是 PaLM 的 5400 億;
- 雖然 FLAN 的 Instruction tuning 可以遷移別的任務(wù)的知識(shí)到特定任務(wù)上,但是面對(duì)不同任務(wù)需要新的訓(xùn)練。比如,評(píng)估 A 時(shí),需要在 BCDE 上訓(xùn)練;評(píng)估 B 時(shí),需要在 ACDE 上訓(xùn)練。
而我們提出了圖 2(d)中 UniMC 的方法,避免了上述問題,并且在中英文數(shù)個(gè)任務(wù)中達(dá)到了 SOTA 或者是與最先進(jìn)模型相近的表現(xiàn)。
圖 2
UniMC(一個(gè)新的模型表現(xiàn)型)
模型思路?
大部分的 NLU 任務(wù)都是基于標(biāo)簽的,而生成模型需要將標(biāo)簽給生成出來,這無疑是加重了任務(wù)的難度和模型的學(xué)習(xí)成本。對(duì)于許多基于標(biāo)簽的任務(wù)(Label-based Task)來說,通常只需要給定輸入文本,輸出文本屬于每種 label 的概率即可?;谶@個(gè)思路,我們將 NLU 任務(wù)轉(zhuǎn)化為多項(xiàng)選擇任務(wù)(Multiple-Choice)。即給定文本、問題和選項(xiàng),輸出每個(gè)選項(xiàng)的概率,而不需要將選項(xiàng)生成出來。
在此基礎(chǔ)之上,我們提出一個(gè)新的概念:模型的表現(xiàn)型?,F(xiàn)有的模型表現(xiàn)型,都是在后面添加某個(gè)層,比如分類層。或者是,生成模型 GPT 的表現(xiàn)型是通過 Prompt 來挖掘模型的知識(shí)。而我們提出的 UniMC 方案不需要在 PMLM 引入任何額外的層,挖掘了另一種 PMLM 的表現(xiàn)型。
在本論文中,我們選擇了 ALBERT 作為我們的骨干 PMLM 網(wǎng)絡(luò)。
統(tǒng)一的多項(xiàng)選擇格式
如圖 3,我們希望把基于標(biāo)簽的 NLU 任務(wù)都轉(zhuǎn)換成統(tǒng)一的 MC(Multiple-Choice)格式。我們的理念是,盡可能少添加人工信息。
圖 3
具體地說,我們做了如下兩步:
- 把 label 變成 option;
- 選擇是否添加 question prompt(question 基本來自數(shù)據(jù)集的描述)。
優(yōu)點(diǎn):只設(shè)計(jì)了一種 option prompt,設(shè)計(jì)一種或者是沒有 question prompt。
模型結(jié)構(gòu)?
UniMC 的結(jié)構(gòu)如下圖 4 所示,它采用類似于 BERT 的自編碼結(jié)構(gòu)。主要流程為,我們先統(tǒng)一好不同任務(wù)的輸入,并且限制好輸入信息之間的流通性,經(jīng)過 PMLM 之后,利用 O-MLM、OP 和 MLM 進(jìn)行 MC training,最后使用 O-MLM 和 OP 進(jìn)行 zero-shot 預(yù)測(cè)。接下來我將一步一步地拆解我們的方案。
圖 4
輸入 Input ?
如圖 5 紅色實(shí)線框區(qū)域內(nèi)容。在輸入到 UniMC 之前還要處理一下,變成 UniMC 特有的 token 格式。為了提升計(jì)算效率,我們將所有選項(xiàng)與問題和文本進(jìn)行直接拼接,即 [Options, Question, Passage]。并且我們?cè)诿恳粋€(gè)選項(xiàng)的前面插入一個(gè)特殊的 token,[O-MASK],用來表示 yes 或 no(選不選這個(gè)選項(xiàng))。(注,為了可以提高復(fù)用性,我們復(fù)用了[MASK] token。
如圖 5 綠色虛線框區(qū)域內(nèi)容。我們需要考慮輸入信息源太多,有選項(xiàng)信息、問題信息和文本段信息。它們之間的信息會(huì)相互影響,所以我們希望隔絕不同的信息。比如,我們?cè)谳斎氲臅r(shí)候,假如可以看到別的選項(xiàng),那么這道題的難度就下降了,模型會(huì)有惰性。
因此我們進(jìn)行了如下考慮:
- 使用 Segment ID,告訴模型 option 和 context(question,passage)信息是不同的;
- 修改 Postion ID,需要模型同等地看待不同 option 的位置信息;
- 修改 Attention Mask 矩陣,避免模型可以看到不同 option 的信息導(dǎo)致模型產(chǎn)生惰性。
圖 5
模型如何做選擇題?(O-MLM 和 OP)
如圖 6,我們利用 O-MLM 和 OP 任務(wù)來讓模型可以去「選擇」答案。O-MASK 完全繼承于 MASK token(具體地,為了不添加額外的參數(shù)以及充分利用模型在無監(jiān)督預(yù)訓(xùn)練階段所學(xué)習(xí)到的知識(shí),我們復(fù)用了 MaskLM head 的參數(shù))。唯一不同的是,它是 100% 被 mask 的。O-MLM 任務(wù)的目標(biāo)就是把 O-MASK 解碼出 ‘yes’ 或 ‘no’,其用來預(yù)測(cè)該選項(xiàng)是否被選擇。
而 OP 任務(wù)的作用在于,從各個(gè)選項(xiàng)的‘yes’中預(yù)測(cè)答案。具體地,我們?nèi)∶總€(gè) [O-MASK] 輸出的 ‘yes’ 的 logit 進(jìn)行 softmax 得到每個(gè)選項(xiàng)的概率,取概率最大的的選項(xiàng)最為預(yù)測(cè)答案即可。
圖 6
在一個(gè) Batch 中處理多個(gè) MC 任務(wù)
如圖 7,我們希望在一個(gè) batch 中放入多個(gè) MC 數(shù)據(jù)集,這樣可以增強(qiáng)模型的能力,而且,也更加統(tǒng)一(Unified)。我們?cè)跇?gòu)建 batch 的時(shí)候,發(fā)現(xiàn)了一個(gè)問題:假如,一個(gè) batch 里面有不同選項(xiàng)的 sample 呢?
所以我們?cè)谳敵龅那懊?,再設(shè)計(jì)了一個(gè) logit mask 的方法。直接給無關(guān)的 token 賦予一個(gè)負(fù)無窮大的預(yù)測(cè)值,加起來,我們就可以在計(jì)算 softmax 的時(shí)候消除別的 token 對(duì)于 O-MASK 的影響了。并且,不同數(shù)量的多項(xiàng)選擇題可以在一個(gè) batch 中統(tǒng)一處理。?
圖 7
模型訓(xùn)練和預(yù)測(cè)
MC Training?
與 FLAN 的 Instruction Tuning 不同,我們僅僅在 MC 數(shù)據(jù)集上進(jìn)行訓(xùn)練,這主要是為了讓模型學(xué)會(huì)如何做選擇題,并且 MC 數(shù)據(jù)集具有一定的通用性,比如,不同的數(shù)據(jù)集可能由數(shù)量不等的標(biāo)簽組成。
圖 8
Zero-shot Inference
有趣的是,我們可以發(fā)現(xiàn),這兩個(gè)任務(wù),是可以在 Training 和 zero-shot inference 兩個(gè)階段擁有一致性的。這是因?yàn)槲覀兌际鞘褂昧?O-MLM 和 OP 兩個(gè)任務(wù)來實(shí)現(xiàn)讓模型做選擇題。并且由于我們拋棄了分類層,所有的參數(shù)都可以復(fù)用,這樣一來就激活了 PMLM 的 Zero-shot 能力。
圖 9
UniMC 性能
英文場(chǎng)景?
我們收集了 14 份 multiple -choice 任務(wù)進(jìn)行預(yù)訓(xùn)練,然后做其他 NLU 任務(wù)進(jìn)行 zero-shot 性能測(cè)試。在 4 個(gè) NLI 任務(wù)中, UniMC 取得了 SOTA 并且超越 5400 億參數(shù)的 PaLM 模型。
圖 10
并且我們在分類任務(wù)上擊敗了以 GPT-2 和 GPT-3 為骨干的網(wǎng)絡(luò)。對(duì)于非常困難的 Dbpedia 任務(wù),高達(dá) 13 個(gè)類別,甚至可以達(dá)到 88.9% 的超高準(zhǔn)確率。
圖 11
為了探究 UNIMC 的泛化性,我們和 FLAN 做了對(duì)比??梢钥吹?,我們的 UniMC 幾乎可以在所有任務(wù)中超越 FLAN 或者是接近。
圖 12
中文場(chǎng)景
在中文場(chǎng)景中,我們收集了 40 份有監(jiān)督數(shù)據(jù)集,并統(tǒng)一構(gòu)造成為 MC 的任務(wù)形式對(duì) UniMC 模型進(jìn)行預(yù)訓(xùn)練,然后在 FewCLUE 和 ZeroCLUE 的 9 個(gè)任務(wù)上進(jìn)行測(cè)試。截止 2022 年 8 月 30 日,UniMC 取得了 FewCLUE 和 ZeroCLUE 雙榜第一(圖中的二郎神 - UnifiedMC 即為 UniMC)。
圖 13
圖 14
總結(jié)
我們提出了一個(gè)新穎的 Zero-shot 場(chǎng)景下的 NLU 任務(wù)的解決方案,僅利用億級(jí)的參數(shù)量就戰(zhàn)勝了千倍參數(shù)量的復(fù)雜大模型。
此外,我們幾乎沒有引入任何的人工信息。并且克服了 BERT 類模型的預(yù)訓(xùn)練和微調(diào)不一致的問題,我們的訓(xùn)練和預(yù)測(cè)是具有一致性的。我們甚至可以做到一次訓(xùn)練,多次 zero-shot 預(yù)測(cè),極大地節(jié)約了算力成本。?目前 IDEA 封神榜團(tuán)隊(duì)已經(jīng)推出了超過 70 個(gè)預(yù)訓(xùn)練大模型。
- 模型:https://huggingface.co/IDEA-CCNL
- 封神榜總論文(中英雙語):https://arxiv.org/abs/2209.02970
- 封神榜主頁:https://github.com/IDEA-CCNL/Fengshenbang-LM
引用
[1]Impossible Triangle: What's Next for Pre-trained Language Models?https://readpaper.com/paper/4612531641570566145