文章來(lái)源 | 恒源云社區(qū)
原文地址 |未聞Prompt名
原文作者 | Mathor
前言:
個(gè)人覺(jué)得2021年NLP最火的兩個(gè)idea梯啤,一個(gè)是對(duì)比學(xué)習(xí)(Contrastive Learning),另一個(gè)就是Prompt
淺談我對(duì) Prompt 的理解
Prompt 說(shuō)簡(jiǎn)單也簡(jiǎn)單,看了幾篇論文以及博客后發(fā)現(xiàn)其實(shí)就是構(gòu)建一個(gè)語(yǔ)言模版。但是細(xì)想起來(lái)又覺(jué)得復(fù)雜忙干,因?yàn)榭偢杏X(jué)里面還有很多細(xì)節(jié),因此本文就來(lái)從頭梳理一下 Prompt(Prompt 很多地方會(huì)翻譯成「范式」嘁酿,但是「范式」這個(gè)詞本身也不好理解徙硅,因此讀者把他看作是「模板」即可)
今天我還與室友討論預(yù)訓(xùn)練模型(例如 BERT)到底做了什么即碗,我給出的回答是
預(yù)訓(xùn)練模型提供了一個(gè)非常好的初始化參數(shù),這組參數(shù)在預(yù)訓(xùn)練任務(wù)上的表現(xiàn)非常好(預(yù)訓(xùn)練損失非常低)陌凳,但是由于下游任務(wù)千奇百怪剥懒,我們需要在這組參數(shù)的基礎(chǔ)上進(jìn)行 Fine-tune 以適應(yīng)我們的下游任務(wù)(使得下游任務(wù)的損失值非常低)
上面這段話其實(shí)隱含了目前做 NLP 任務(wù)的大致流程,即 "Pre-train, Fine-tune"合敦,而對(duì)我們來(lái)說(shuō)實(shí)際上大部分時(shí)候都是直接拿別人預(yù)訓(xùn)練好的模型做 Fine-tune初橘,并沒(méi)有 Pre-train 這一步
融入了 Prompt 的模式大致可以歸納成 "Pre-train, Prompt, and Predict",在該模式中充岛,下游任務(wù)被重新調(diào)整成類似預(yù)訓(xùn)練任務(wù)的形式保檐。例如,通常的預(yù)訓(xùn)練任務(wù)有 MLM(Masked Language Model)崔梗,在文本情感分類任務(wù)中展东,對(duì)于 "I love this movie" 這句輸入,可以在后面加上 Prompt:"the movie is ___"炒俱,組成如下這樣一句話:
I love this movie, the movie is ___
然后讓預(yù)訓(xùn)練模型用表示情感的答案(例如 "great"盐肃、"terrible" 等)做完形填空,最后再將該答案轉(zhuǎn)換為情感分類的標(biāo)簽权悟。這樣一來(lái)砸王,我們就可以通過(guò)構(gòu)造合適的「模板」,通過(guò)小樣本數(shù)據(jù)集訓(xùn)練一個(gè)模型來(lái)解決各種各樣的下游任務(wù)
注意峦阁,Prompt 設(shè)計(jì)的這種完形填空和 MLM 任務(wù)是有區(qū)別的谦铃,二者雖然都是都是詞分類,但是候選集不同榔昔,MLM 的候選詞是整個(gè)詞庫(kù)驹闰,不過(guò)如果是生成任務(wù),那么 Prompt 和 MLM 的候選集就是一樣的撒会,都是整個(gè)詞庫(kù)
如何構(gòu)建 Prompt
對(duì)于輸入文本 嘹朗,存在一個(gè)函數(shù) Prompt,將 轉(zhuǎn)化成 的形式诵肛,即
該函數(shù)通常會(huì)進(jìn)行兩步操作:
- 使用一個(gè)模板屹培,模板通常為一段自然語(yǔ)言句子,并且該句子包含兩個(gè)空位置:用于填輸入 的位置 怔檩、用于生成答案文本 的位置
- 把輸入 填到 的位置
以前文提到的例子為例褪秀,在文本情感分類任務(wù)中,假設(shè)輸入是
x = "I love this movie"
使用的模板是
[X]. Overall, it was a [Z] movie
那么得到的 就應(yīng)該是
I love this movie. Overall, it was a [Z] movie
在實(shí)際情況中薛训,Prompt 來(lái)填充答案的位置一般在句中或句末媒吗。如果在句中,一般稱這種 Prompt 為 Cloze Prompt乙埃;如果在句末闸英,一般稱這種 Prompt 為 Prefix Prompt锯岖。 和 的位置、數(shù)量以及使用模板句的不同自阱,都有可能對(duì)結(jié)果造成影響嚎莉,因此需要靈活調(diào)整
上面講的都是簡(jiǎn)單的情感分類任務(wù)的 Prompt 設(shè)計(jì)米酬,讀者看到這里自然而然的會(huì)想到沛豌,其他 NLP 任務(wù)的 Prompt 如何設(shè)計(jì)呢?實(shí)際上劉鵬飛大神在他的論文中給我們提供了一些參考
Text Generation 中摘要任務(wù)里有一個(gè)關(guān)鍵字
TL;DR
赃额,這其實(shí)是Too Long; Don't Read
的縮寫
Prompt 的選擇非常重要且困難
有上述 Prompt 的基礎(chǔ)后加派,我們可以得知 Prompt 的設(shè)計(jì)主要包含兩部分:
-
模板 T:例如
[X]. Overall, It was [Z]
- 標(biāo)簽詞映射:即 位置預(yù)測(cè)輸出的詞匯集合與真實(shí)標(biāo)簽 構(gòu)成的映射關(guān)系。例如跳芳,標(biāo)簽 positive 對(duì)應(yīng)單詞 great芍锦,標(biāo)簽 negative 對(duì)應(yīng)單詞 terrible
在基于 Prompt 的微調(diào)方法中,不同的模板和標(biāo)簽詞對(duì)最終結(jié)果影響很大飞盆,下圖是陳丹琦團(tuán)隊(duì)論文中的實(shí)驗(yàn)結(jié)果
從上圖我們可以看出兩點(diǎn):
- 使用相同的「模板」娄琉,不同的「標(biāo)簽詞」會(huì)產(chǎn)生不一樣的效果。例如
great/terribel
和cat/dog
這兩組標(biāo)簽詞的效果不一樣吓歇,而且即便是相同標(biāo)簽詞孽水,互換順序也會(huì)導(dǎo)致最終效果有所變化,例如cat/dog
和dot/cat
- 使用相同「標(biāo)簽詞」城看,對(duì)「模板」進(jìn)行小改動(dòng)(例如增刪標(biāo)點(diǎn))也會(huì)呈現(xiàn)不同的結(jié)果
Prompt 的設(shè)計(jì)
Prompt 大概可以從下面三個(gè)角度進(jìn)行設(shè)計(jì):
- Prompt 的形狀
- 人工設(shè)計(jì)模板
- 自動(dòng)學(xué)習(xí)模板
Prompt 的形狀
Prompt 的形狀主要指的是 和 的位置和數(shù)量女气。上文提到的 Cloze Prompt 與 Maksed Language Model 的訓(xùn)練方式非常類似,因此對(duì)于 MLM 任務(wù)來(lái)說(shuō)测柠,Cloze Prompt 更合適炼鞠;對(duì)于生成任務(wù)或者使用自回歸 LM 解決的任務(wù),Prefix Prompt 更合適
人工設(shè)計(jì)模板
Prompt 的模板最開始是人工設(shè)計(jì)的轰胁,人工設(shè)計(jì)一般基于人類的自然語(yǔ)言知識(shí)谒主,力求得到語(yǔ)義流暢且高效的「模板」。例如赃阀,Petroni 等人在著名的 LAMA 數(shù)據(jù)集中為知識(shí)探針任務(wù)人工設(shè)計(jì)了 Cloze Templates瘩将;Brown 等人為問(wèn)答、翻譯和探針等任務(wù)設(shè)計(jì)了 Prefix Templates凹耙。人工設(shè)計(jì)模板的優(yōu)點(diǎn)是直觀姿现,但缺點(diǎn)是需要很多實(shí)驗(yàn)、經(jīng)驗(yàn)以及語(yǔ)言專業(yè)知識(shí)肖抱。下圖是 GPT Understands, Too 論文中的一個(gè)實(shí)驗(yàn)結(jié)果
可以看到不同的 Prompt 只有細(xì)微的區(qū)別备典,有的甚至只是增加減少一個(gè)詞,但是最后的結(jié)果會(huì)差幾十個(gè)點(diǎn)
自動(dòng)學(xué)習(xí)模板
為了解決人工設(shè)計(jì)模板的缺點(diǎn)意述,許多研究員開始探究如何自動(dòng)學(xué)習(xí)到合適的模板提佣。自動(dòng)學(xué)習(xí)的模板又可以分為離散(Discrete Prompts)和連續(xù)(Continuous Prompts)兩大類吮蛹。離散方法主要包括:Prompt Mining,Prompt Paraphrasing拌屏,Gradient-based Search潮针,Prompt Generation 和 Prompt Scoring;連續(xù)的則主要包括 Prefix Tuning倚喂,Tuning Initialized with Discrete prompts每篷,Hard-Soft Prompt Hybrid Tuning,P-Tuning v2
離散 Prompts
簡(jiǎn)單說(shuō)一下上述幾種方法端圈,首先是離散的 Prompt Mining焦读,這篇文章發(fā)表在 TACL 2020,講的是如何拿預(yù)訓(xùn)練語(yǔ)言模型當(dāng)作「知識(shí)庫(kù)」使用舱权,并且引入了依存樹和 Paraphrase(轉(zhuǎn)述)等方法來(lái)挖掘更好的「模板」矗晃,下圖是實(shí)驗(yàn)結(jié)果
可以看到,被挖掘出來(lái)的若干「連接謂詞」相比于人工設(shè)計(jì)的「模板」結(jié)果提升還是很明顯的
有很多種方法可以實(shí)現(xiàn) Prompt Paraphrsing宴倍,例如「回譯」张症,我們通過(guò) DeepL 翻譯看個(gè)例子:
這樣我們就得到了 x shares a border with y
的一個(gè) Prompt Paraphrasing:x and y share a boundary
論文 BARTScore 干脆給我們提供了一張表,里面有各種詞組的同義替換鸵贬,這個(gè)我再熟悉不過(guò)了俗他,因?yàn)橐郧坝⒄Z(yǔ)考試我也背過(guò)類似的東西
Gradient-based Search(基于梯度的搜索)是由論文 AUTOPROMPT 提出的,這篇文章發(fā)表在 EMNLP 2020恭理,它的主要思想用下面這張圖就可以表示
上圖中拯辙,a real joy
是原始的輸入句子 xinp,紅色的 Trigger tokens 是由 inp「激發(fā)」的相關(guān)詞匯集合 trig颜价,根據(jù) Template 的配置涯保,將 trig 和 inp 組合起來(lái)構(gòu)造最終的輸入 prompt,送入 Masked LM 預(yù)測(cè)情感標(biāo)簽周伦。下面的表格增加了很多 NLP 其他任務(wù)的例子
關(guān)于如何生成 trig 集合夕春,實(shí)際上主要使用的是 HotFlip 和對(duì)抗訓(xùn)練的思想,感興趣的同學(xué)可以看原論文以及 HotFlip: White-box adversarial examples for text classification专挪、Universal Adversarial Triggers for Attacking and Analyzing NLP 這兩篇論文
Prompt Generation 是陳丹琦團(tuán)隊(duì)的一項(xiàng)工作及志,主要是把 Seq2Seq 預(yù)訓(xùn)練模型 T5 應(yīng)用到模板搜索的過(guò)程。T5 基于多種無(wú)監(jiān)督目標(biāo)進(jìn)行預(yù)訓(xùn)練寨腔,其中最有效的一個(gè)無(wú)監(jiān)督目標(biāo)就是:利用 或 替換一個(gè)或多個(gè)連續(xù) span速侈,然后生成對(duì)應(yīng)輸出。例如:
Thank you <X> me to your party <Y> week
T5 會(huì)在 <X> 生成 for inviting
迫卢,在 生成 last
倚搬。很顯然,T5 這種方式很適合生成模板乾蛤,而且不需要指定模板的 token 數(shù)每界。具體來(lái)說(shuō)捅僵,有三種可能的生成方式
<> <span>→</span> <> <> <>
<> <span>→</span> <><> <>
<> <><span>→</span> <> <> <> <>
具體的模板生成過(guò)程如下圖所示:
首先在標(biāo)簽詞前后添加填充位 和 (上面提到的三種生成方式),然后將其送入 T5 模型中眨层,T5 會(huì)自動(dòng)在填充位生成序列庙楚,最后將標(biāo)簽詞(great 或 terribel)轉(zhuǎn)換為 [MASK] 標(biāo)簽,形成多個(gè)模板趴樱。具體過(guò)程中采用 Beam Search 的方法生成多個(gè)候選模板馒闷,然后對(duì)每一個(gè)候選模板利用 dev 集進(jìn)行微調(diào),選擇其中一個(gè)最佳模板
我還想說(shuō)一下這篇論文中另外一個(gè)有意思的點(diǎn)伊佃,最后送入模型進(jìn)行預(yù)測(cè)的句子還拼接上了每種類別的「示例」(Demonstration)窜司,如下圖所示
這種 Prompt 的設(shè)計(jì)有點(diǎn)像是在做語(yǔ)義相似度任務(wù)沛善, 為原始 Input 句子航揉,已知 為正例, 為負(fù)例金刁,構(gòu)造了如下形式的輸入:
X是[MASK]例帅涂?Y為正例;Z為負(fù)例
這有點(diǎn)像是編程語(yǔ)言中的三目運(yùn)算符尤蛮,或者說(shuō)相當(dāng)于讓模型比較 與 媳友、 的語(yǔ)義相似度。這里我們自然而然會(huì)想問(wèn):产捞、 是如何挑選出來(lái)的醇锚?實(shí)際上是依據(jù)下面兩條規(guī)則:
- 對(duì)于每個(gè)原始輸入句子,從每個(gè)類別中隨機(jī)采樣一個(gè)樣本「示例」拼接到 Prompt 中
- 對(duì)于每個(gè)原始輸入句子坯临,在每個(gè)類別中焊唬,通過(guò)與 Sentence-BERT 進(jìn)行相似度計(jì)算,從相似度最高的前 50% 樣本中隨機(jī)選擇一個(gè)樣本「示例」
連續(xù) Prompts
構(gòu)造 Prompt 的初衷是能夠找到一個(gè)合適的方法看靠,讓 Pre-trained Language Model(PLM)更好地輸出我們想要的結(jié)果赶促,但其實(shí)并不一定要將 Prompt 的形式設(shè)計(jì)成人類可以理解的自然語(yǔ)言,只要機(jī)器理解就行了挟炬。因此鸥滨,還有一些方法探索連續(xù)型 Prompts—— 直接作用到模型的 Embedding 空間。連續(xù)型 Prompts 去掉了兩個(gè)約束條件:
- 模版中詞語(yǔ)的 Embedding 可以是整個(gè)自然語(yǔ)言的 Embedding谤祖,不再只是有限的一些 Embedding
- 模版的參數(shù)不再直接取 PLM 的參數(shù)婿滓,而是有自己獨(dú)立的參數(shù),可以通過(guò)下游任務(wù)的訓(xùn)練數(shù)據(jù)進(jìn)行調(diào)整
Prefix Tuning 最開始由 Li 等人提出粥喜,這是一種在輸入句子前添加一組連續(xù)型向量的方法凸主,該方法保持 PLM 的參數(shù)不動(dòng),僅訓(xùn)練前綴(Prefix)向量容客。Prefix Tuning 的提出主要是為了做生成任務(wù)秕铛,因此它根據(jù)不同的模型結(jié)構(gòu)定義了不同的 Prompt 拼接方式约郁,在 GPT 類的 Auto-Regressive(自回歸)模型上采用的是 的方式,在 T5 類的 Encoder-Decoder 模型上采用的是 ′ 的方式
輸入部分 的 Position id 分別記作 但两。Prefix Tuning 初始化一個(gè)可訓(xùn)練的矩陣鬓梅,記作 θ|Pidx|×dim?(hi),其中
上述公式的含義是谨湘,索引 如果屬于前綴的部分绽快,則從 中抽取向量; 如果不是前綴部分紧阔,則由參數(shù)固定的預(yù)訓(xùn)練模型生成對(duì)應(yīng)的向量坊罢。訓(xùn)練目標(biāo)為:
θ本質(zhì)上是一個(gè)矩陣,而生成一個(gè)矩陣的方法又很多擅耽,可以用
nn.Embedding()
活孩,或者nn.Linear()
同樣是在連續(xù)空間上搜索 Prompt,OptiPrompt 構(gòu)建的「模板」并不局限于前綴乖仇,也可以在句子的中間
首先根據(jù) AutoPrompt 定義一個(gè) Prompt 模板:
其中 為一個(gè)連續(xù)型向量(與 BERT 的輸入維度一致)憾儒。OptiPrompt 還考慮以人工構(gòu)建的離散 Prompt 作為起點(diǎn),在連續(xù)空間上進(jìn)行搜索以構(gòu)建較優(yōu)的 Prompt乃沙。例如 可以轉(zhuǎn)換為
將 is
和 citizen
對(duì)應(yīng)的 input Embedding 作為 和 的初始化
Hard-Soft Prompt Hybrid Tuning 方法可以說(shuō)是人工設(shè)計(jì)和自動(dòng)學(xué)習(xí)的結(jié)合起趾,它通常不單純使用可學(xué)習(xí)的 Prompt 模板,而是在人工設(shè)計(jì)的模板中插入一些可學(xué)習(xí)的 Embedding警儒。實(shí)際上有了上面的基礎(chǔ)我們都知道训裆,連續(xù)的 Prompt 要比離散的 Prompt 好一點(diǎn),但是在此基礎(chǔ)上還有什么改進(jìn)的余地嗎蜀铲?Liu 等人提出的 P-Tuning 解決了 Prompt token 之間的關(guān)聯(lián)性問(wèn)題
之前連續(xù)的 Prompt 生成方式無(wú)非都是訓(xùn)練一個(gè)矩陣边琉,然后通過(guò)索引出矩陣的某幾行向量拼起來(lái)。坦白地說(shuō)蝙茶,我們希望這些 prompt token Embedding 之間有一個(gè)比較好的關(guān)聯(lián)性艺骂,而不是獨(dú)立地學(xué)習(xí),為了解決這個(gè)問(wèn)題隆夯,P-Tuning 引入了一個(gè) Prompt Encoder(如下圖 b 所示)
上圖 a 是傳統(tǒng)的離散型 Prompt钳恕,我們把生成離散 Prompt token 的東西叫做 Prompt Generator;上圖 b 首先傳入一些 Virtual(Pseudo)token蹄衷,例如 BERT 詞表中的 [unused1],[unused2],... 當(dāng)然忧额,這里的 token 數(shù)目是一個(gè)超參數(shù),插入的位置也可以調(diào)整愧口。將這些 Pseudo token 通過(guò)一個(gè) Prompt Encoder 得到連續(xù)的向量 睦番,其中
即,Prompt Encoder 是由 BiLSTM+MLP 組成的一個(gè)簡(jiǎn)單網(wǎng)絡(luò)。作者還發(fā)現(xiàn)加入一些 anchor token(領(lǐng)域或者任務(wù)相關(guān)的 token)可以有助于 Template 的優(yōu)化托嚣。例如文本蘊(yùn)含任務(wù)巩检,輸入是前提和假設(shè),判斷是否蘊(yùn)含示启。一個(gè)連續(xù)的模版是
在其中加入一個(gè)anchor token:[?]
效果會(huì)更好兢哭,此時(shí)模板變成
大家可能想問(wèn),如何優(yōu)化 P-tuning夫嗓?實(shí)際上根據(jù)標(biāo)注數(shù)據(jù)量的多少迟螺,分兩種情況討論
- 標(biāo)注數(shù)據(jù)比較少。這種情況舍咖,我們固定 PLM 的參數(shù)矩父,只優(yōu)化 這幾個(gè) token 的 Embedding。換句話說(shuō)排霉,我們只是要更新 Prompt Encoder 的參數(shù)
- 標(biāo)注數(shù)據(jù)很充足窍株。這種情況直接放開所有參數(shù)微調(diào)
就在 P-Tuning 方法提出不久后,Liu 等人又提出了 P-Tuning v2郑诺,主要解決 P-Tuning 的兩個(gè)問(wèn)題:
- 當(dāng)預(yù)訓(xùn)練模型的參數(shù)量低于 100 億(10B)時(shí)夹姥,Prompt tuning 會(huì)比傳統(tǒng)的 Fine-tuning 差
- 諸如序列標(biāo)注這樣對(duì)推理和理解要求高的任務(wù)杉武,prompt tuning 效果會(huì)變差
Liu 等人認(rèn)為先前的 P-Tuning 只用了一層 BiLSTM 來(lái)編碼 Pseudo token辙诞,這是其推理能力不足的原因之一,因此 v2 版本提出 Deep Prompt Tuning轻抱,用 Prefix Tuning 中的深層模型替換 BiLSTM飞涂,如下圖所示
P-Tuning v2 相比于 P-Tuning,區(qū)別在于:
- 取消 Reparameterization:以前的方法利用重參數(shù)化功能來(lái)提高訓(xùn)練速度和魯棒性(例如祈搜,用于 Prefix-Tuning 的 MLP 和用于 P-Tuning 的 LSTM)较店。在 P-Tuning v2 中,作者發(fā)現(xiàn)重參數(shù)化的改進(jìn)很小容燕,尤其是對(duì)于較小的模型梁呈,同時(shí)還會(huì)影響模型的表現(xiàn)
- Multi-task Learning:Deep Prompt Tuning 的優(yōu)化難題可以通過(guò)增加額外的任務(wù)數(shù)據(jù)或者無(wú)標(biāo)注數(shù)據(jù)來(lái)緩解,同時(shí)可微調(diào)的 Prefix Continuous Prompt 也可以用來(lái)做跨任務(wù)的知識(shí)共享蘸秘。例如在 NER 中官卡,可以同時(shí)訓(xùn)練多個(gè)數(shù)據(jù)集,不同數(shù)據(jù)集使用不同的頂層 Classifier醋虏,但是 Prefix Continuous Prompt 是共享的
- 取消 verbalizer:v2 取消了標(biāo)簽映射寻咒,完全變?yōu)樯赡P停梢栽?[CLS] 部分輸出句子級(jí)別的標(biāo)簽(Sentence-level label)颈嚼,也可以在每個(gè) token 位置輸出 token 級(jí)別的標(biāo)簽(Token-level label)毛秘,直接輸出真實(shí)標(biāo)簽
關(guān)于 P-Tuning 還有一些碎碎念,主要是從各個(gè)博客上看到的,匯總在這里叫挟。首先是 v1 版本的 LSTM艰匙,實(shí)際上引入 LSTM 目的是為了幫助「模板」生成的 token(某種程度上)更貼近自然語(yǔ)言,或者說(shuō) token 之間的語(yǔ)義更流暢抹恳,但更自然的方法應(yīng)該是在訓(xùn)練下游任務(wù)的時(shí)候姑曙,不僅預(yù)測(cè)下游任務(wù)的目標(biāo) token(例如 "great"征炼、"terrible"),還應(yīng)該同時(shí)做其他 token 的預(yù)測(cè)
比如,如果是 MLM 模型默色,那么也隨機(jī) MASK 掉其它的一些 token 來(lái)預(yù)測(cè),如果是 LM 模型萤衰,則預(yù)測(cè)完整的序列像捶,而不單單是目標(biāo)詞。這樣做的理由是:因?yàn)槲覀兊?MLM/LM 都是經(jīng)過(guò)自然語(yǔ)言預(yù)訓(xùn)練的扬跋,所以我們認(rèn)為它能夠很好的完成序列的重構(gòu)阶捆,即便一開始不能,隨著迭代輪數(shù)的增加钦听,模型也能很好完成這項(xiàng)任務(wù)洒试。所以這本質(zhì)上是讓模型進(jìn)行「負(fù)重訓(xùn)練」
* 為什么要引入 Prompt?
在標(biāo)準(zhǔn)的 Fine-tune 過(guò)程中(如上圖 b 所示)朴上,新引入的參數(shù)量可能會(huì)很大(獨(dú)立于原始預(yù)訓(xùn)練模型外的參數(shù))垒棋,例如基于 RoBERTa-large 的二分類任務(wù)會(huì)新引入 2048 個(gè)參數(shù)(nn.Linear(1024, 2)
),如果你僅有例如 64 個(gè)標(biāo)注數(shù)據(jù)這樣的小樣本數(shù)據(jù)集痪宰,微調(diào)會(huì)非常困難
為解決這一問(wèn)題叼架,Prompt 應(yīng)運(yùn)而生(如上圖 a 所示),直接將下游任務(wù)轉(zhuǎn)換為輸出空間有限的 MLM 任務(wù)衣撬。值得注意的是:上述方法在預(yù)訓(xùn)練參數(shù)的基礎(chǔ)上進(jìn)行微調(diào)乖订,并且沒(méi)有引入任何新參數(shù),同時(shí)還減少了微調(diào)和預(yù)訓(xùn)練任務(wù)之間的差距具练≌Ч梗總的來(lái)說(shuō),這可以更有效地用于小樣本場(chǎng)景
Prompt 的挑戰(zhàn)與展望
盡管 Prompt 研究搞得如火如荼扛点,但目前仍存在許多問(wèn)題值得研究者們?nèi)ヌ骄?/p>
- Prompt 的設(shè)計(jì)問(wèn)題哥遮。目前使用 Prompt 的工作大多集中于分類任務(wù)和生成任務(wù),其它任務(wù)則較少占键。另外昔善,「模板」和「答案」的聯(lián)系也亟待解決。模型的表現(xiàn)同時(shí)依賴于使用的「模板」和「答案」的映射畔乙,如何同時(shí)搜索或者學(xué)習(xí)出兩者聯(lián)合的最好效果仍然很具挑戰(zhàn)性
- Prompt 的理論分析和可解釋性君仆。盡管 Prompt 方法在很多情況下都取得了成功,但是目前 Prompt-based Learning 理論分析還很少,人們很難了解 Prompt 為什么能達(dá)到好的效果返咱,又為什么在自然語(yǔ)言中意義相近的 Prompt 有時(shí)效果卻相差很大
- Prompt 在 PLM debias 方面的應(yīng)用钥庇。由于 PLM 在預(yù)訓(xùn)練過(guò)程中見(jiàn)過(guò)了大量的人類世界的自然語(yǔ)言,所以很自然地會(huì)受到一些影響咖摹。舉一個(gè)簡(jiǎn)單的例子评姨,比如說(shuō)訓(xùn)練語(yǔ)料中有非常多 "The capital of China is Beijing",導(dǎo)致模型每次看到 "capital" 的時(shí)候都會(huì)預(yù)測(cè)出 "Beijing"萤晴,而不是去分析到底是哪個(gè)國(guó)家的首都吐句。在應(yīng)用的過(guò)程中,Prompt 還暴露了 PLM 學(xué)習(xí)到的很多其它 bias店读,比如種族歧視嗦枢、性別對(duì)立等。這也許會(huì)是一個(gè)值得研究的方向
One More Thing
最后我還想提一個(gè)實(shí)際 Code 過(guò)程中存在的問(wèn)題屯断。我們知道 MLM 任務(wù)會(huì)輸出句子中 [MASK] 位置最有可能的詞文虏,而 Prompt 也類似的,例如下面的例子
這是一條__新聞殖演。中國(guó)足球出線的可能性只有0.001%氧秘,留給中國(guó)隊(duì)的時(shí)間不多了
這是一個(gè)新聞分類問(wèn)題,真實(shí)標(biāo)簽有 "體育"趴久、"財(cái)經(jīng)"丸相、"娛樂(lè)" 等,上面的樣本很明顯是一條體育新聞朋鞍,因此我們希望模型對(duì) [MASK] 部分輸出 "體育"已添,但事實(shí)真的如此嗎?實(shí)際情況模型的輸出可能是 "足球"滥酥,但你認(rèn)為模型預(yù)測(cè)的 "足球" 有問(wèn)題嗎?好像也沒(méi)啥毛病畦幢,因此這就引申出了 Prompt 的一個(gè)問(wèn)題坎吻,是否應(yīng)該限制模型的輸出空間?
還是上面新聞分類的例子宇葱,我們是否應(yīng)該限制模型輸出的空間瘦真,讓他固定只能預(yù)測(cè) "體育"、"財(cái)經(jīng)"黍瞧、"娛樂(lè)" 這幾個(gè)標(biāo)簽诸尽?或者我們干脆把這幾個(gè)標(biāo)簽換成索引,那就是讓模型從 0印颤,1您机,2 這三個(gè)數(shù)字選一個(gè)。Wait Wait Wait,如果這么做的話际看,和 Fine-Tune 有什么區(qū)別咸产,F(xiàn)ine-Tune 也是把標(biāo)簽轉(zhuǎn)換成索引,讓模型看了句子之后仲闽,從這幾個(gè)索引中選一個(gè)作為預(yù)測(cè)值
這么說(shuō)的話脑溢,那我們就不應(yīng)該限制模型的輸出空間,可是這樣的話 [MASK] 位置的輸出就限制的太死了赖欣,必須一定是 "good"屑彻、"財(cái)經(jīng)" 才算對(duì),如果輸出 "nice"顶吮、"財(cái)政" 就算錯(cuò)酱酬。實(shí)際上輸出近義詞或者相似詞,在零樣本的情況下會(huì)經(jīng)常出現(xiàn)云矫,但是如果你用一些有標(biāo)簽的樣本去訓(xùn)練膳沽,模型自己就會(huì)慢慢固定輸出空間。例如 "財(cái)經(jīng)"让禀,它不會(huì)預(yù)測(cè)成 "財(cái)政"挑社,只會(huì)預(yù)測(cè)成其它類型的新聞,例如 "體育"
References
- P-tuning:自動(dòng)構(gòu)建模版巡揍,釋放語(yǔ)言模型潛能
- 必須要 GPT3 嗎痛阻?不,BERT 的 MLM 模型也能小樣本學(xué)習(xí)
- NLP 新寵 —— 淺談 Prompt 的前世今生
- 超大規(guī)模新型預(yù)訓(xùn)練模型詳解:少樣本學(xué)習(xí)等近十個(gè)數(shù)據(jù)集取得第一
- GPT-3 的最強(qiáng)落地方式腮敌?陳丹琦提出小樣本微調(diào)框架 LM-BFF阱当,比普通微調(diào)提升 11%~
- 基于 Prompt 的 MLM 文本分類
- Prompt-based Language Models:模版增強(qiáng)語(yǔ)言模型小結(jié)
- 鵬飛大神的 Pre-train, Prompt, and Predict
- P-tuning:用 “連續(xù)提示微調(diào)” 來(lái)增強(qiáng) “超大規(guī)模語(yǔ)言模型” 的下游能力
- Prompting: Better Ways of Using Language Models for NLP Tasks
- Prompt Based Task Reformulation in NLP 調(diào)研
- PromptPapers