一條提示詞等同于多少個(gè)數(shù)據(jù)點(diǎn)?

數(shù)據(jù)點(diǎn)(data points)通常用于描述單個(gè)信息單位或觀測值,在本文中,它被用來量化“提示詞”方法相對于傳統(tǒng)方法的效率和效果。文章比較了兩種訓(xùn)練(微調(diào))機(jī)器學(xué)習(xí)模型的方法:一種是使用提示?(prompts),本文也稱之“提示詞”,另一種是使用傳統(tǒng)的分類器頭 (classifier heads),本文也稱之為“分類頭”。通過比較可以發(fā)現(xiàn),使用提示詞的方法通常比使用分類器頭的方法更好。
本文由 Hugging Face 的研究員 Teven Le Scao 撰寫,并于 2021 年 4 月發(fā)表。盡管已經(jīng)過去了很久,但其中的研究方法和發(fā)現(xiàn)仍具有深遠(yuǎn)的學(xué)術(shù)價(jià)值和實(shí)際應(yīng)用意義,特別是對于理解和使用自然語言提示在機(jī)器學(xué)習(xí)中的角色。
本文原文是以 Hugging Face Space 應(yīng)用做的展現(xiàn),對于很多結(jié)果可以進(jìn)行更高級的交互,請?jiān)谖哪┎榭幢疚牡闹杏⑽脑摹?/p>
當(dāng)前 NLP 應(yīng)用的主流方法是針對各式各樣的特定任務(wù),分別對預(yù)訓(xùn)練語言模型的分類頭進(jìn)行微調(diào)。隨著語言模型變得越來越大,各種替代方法相繼涌現(xiàn),開始叫板在 BERT、UniLM 以及 GPT 中廣泛使用的分類頭法。特別地,GPT-3 向大家普及了提示法,該方法通過自然語言輸入來引導(dǎo)預(yù)訓(xùn)練語言模型依靠自身解決任務(wù),而不再需要額外的分類頭。
提示的方式非常獨(dú)特,用戶可以通過它向模型提供信息,這與傳統(tǒng)的 ML 監(jiān)督學(xué)習(xí)有顯著區(qū)別。在與 Alexader Rush 合作的 NAACL 2021 論文 中,我們研究了基于提示的微調(diào),該方法可用于替代當(dāng)前標(biāo)準(zhǔn)的有監(jiān)督微調(diào)法,我們的實(shí)驗(yàn)表明提示通常比標(biāo)準(zhǔn)方法更有優(yōu)勢,因此該方法很有前途。在分析這種優(yōu)勢時(shí),我們認(rèn)為提示為模型帶來了額外的信息,這促使我們想用數(shù)據(jù)點(diǎn)這個(gè)指標(biāo)來量化這種優(yōu)勢,也就是說:提示詞可以等同于多少個(gè)數(shù)據(jù)點(diǎn)?
提示詞法
為了使預(yù)訓(xùn)練語言模型能夠完成特定任務(wù),當(dāng)前的主流方法是用隨機(jī)初始化的線性分類頭替換原模型的最后一層:詞預(yù)測層。然后使用有監(jiān)督的任務(wù)數(shù)據(jù)通過反向傳播來訓(xùn)練修改后的模型,主要學(xué)習(xí)這個(gè)新分類頭的權(quán)重,同時(shí)也可以更新模型其他層的權(quán)重。我們將這種方法稱為?分類頭?法。
一種與之相競爭的方法是?提示法:這類方法主要嘗試使用原語言模型來預(yù)測目標(biāo)類相應(yīng)的單詞來“回答”分類問題,而不是像傳統(tǒng)方法那樣“預(yù)測”類標(biāo)簽。這使得我們可以直接使用語言模型本身來執(zhí)行分類任務(wù)。在這里,提示?就是精心設(shè)計(jì)的、用于生成所需的答案文本的輸入文本。
這聽起來可能很抽象,但這其實(shí)恰恰就是人類在實(shí)際生活中進(jìn)行文本推理時(shí)所使用的非常自然的方法:例如,學(xué)校練習(xí)往往以一個(gè)文本輸入(例如,一篇關(guān)于火星的文章)加上一個(gè)問題(“火星上有生命嗎?”)的形式呈現(xiàn),并期望你提供一個(gè)自然語言的答案(“否”1),該答案其實(shí)就可以映射到分類任務(wù)的某個(gè)類別(這里,“否”對應(yīng)假,“是”對應(yīng)真,本例就是個(gè)二分類問題)。在這種范式中,就像做語法練習(xí)一樣,我們把特定于任務(wù)的數(shù)據(jù)輸入給模型,而模型就像學(xué)生一樣,需要以固定的方式進(jìn)行填空。提示法希望能顯式利用語言模型中包含的預(yù)訓(xùn)練信息,而不是僅以將其隱含表征饋送給線性分類頭的方式隱式利用這些信息。
以下是 SuperGLUE 中的 BoolQ 任務(wù)的示例,其題型為判斷題,每條數(shù)據(jù)包括一個(gè)文本?passage?及其對應(yīng)的問題?question?,其答案為布爾值,要么為真,要么為假。每條數(shù)據(jù)可以和?模板(pattern)?一起組裝成一個(gè)文本序列,該序列只有一個(gè)需預(yù)測的?掩碼詞。預(yù)測出該掩碼詞后,預(yù)測詞會被一個(gè)預(yù)設(shè)的?言語器(verbalizer)?轉(zhuǎn)換為類,也就是說言語器負(fù)責(zé)輸出詞與類別之間的映射:比較該詞被映射為?真?和?假?的概率,如果?真?的概率高,則最終預(yù)測為真,反之則為假。

微調(diào)
這樣,我們就把通用語言模型轉(zhuǎn)變成了針對特定任務(wù)的分類器。這種基于提示的語言模型分類器的用法很多:
預(yù)訓(xùn)練模型中保留的語言建模功能允許它們在沒有額外數(shù)據(jù)的情況下執(zhí)行,這與以隨機(jī)初始化開始因此初始性能也隨機(jī)的線性分類頭模型相反。因此,許多論文將其用于零樣本分類。
為了將有監(jiān)督的任務(wù)數(shù)據(jù)引入模型,我們可以使用反向傳播及語言建模中的交叉熵?fù)p失目標(biāo)來微調(diào):將與正確類別相關(guān)聯(lián)的言語器詞作為正確預(yù)測。PET 使用了這個(gè)方法,T5 也使用了這個(gè)目標(biāo)函數(shù) - 盡管 T5 使用任務(wù)前綴來指示任務(wù),而未使用自然語言提示來描述它。
還有一種方法是使用?潛覺(priming),此時(shí),我們需要為當(dāng)前問題找到若干正確的示例,將其作為原輸入文本的前綴一起輸入給模型。它沒有反向傳播,所以永遠(yuǎn)不會修改語言模型的權(quán)重;相反,它主要靠在推理時(shí)使用注意力機(jī)制去利用正確的示例。GPT3 使用了該方法。
最后,PET 的方法是使用提示模型預(yù)測未標(biāo)注數(shù)據(jù)的軟標(biāo)簽(或稱為偽標(biāo)簽),然后將其作為標(biāo)簽去訓(xùn)練線性分類頭。
在本文中,為了在提示法和分類頭法之間進(jìn)行公平比較,我們采用了統(tǒng)一的基于反向傳播的微調(diào)方法。
一個(gè)提示可以抵多少條數(shù)據(jù)?
正如我們所看到的,分類頭法和提示法都可以用于針對下游任務(wù)進(jìn)行有監(jiān)督微調(diào)。二者的核心區(qū)別在于,除了帶標(biāo)注的原始樣本外,提示法還給了模型一個(gè)用于對特定任務(wù)進(jìn)行粗略描述的句子。從某種意義上說,這句話也是一種監(jiān)督數(shù)據(jù),因?yàn)樗嬖V模型任務(wù)的信息,但它在本質(zhì)上與機(jī)器學(xué)習(xí)中標(biāo)準(zhǔn)的監(jiān)督數(shù)據(jù)又截然不同。我們應(yīng)該如何看待這種新的監(jiān)督數(shù)據(jù)?又該如何量化這種方法的“零樣本”程度?
我們通過在 SuperGLUE 任務(wù)和 MNLI 上比較?分類頭法?和?提示法?來嘗試回答上面的問題。我們使用的具體方法是:對每個(gè)任務(wù),我們通過從數(shù)據(jù)集中選取樣本數(shù)不斷增加的子集,然后在每個(gè)子集上使用這兩種方法對?RoBERTa-large
?進(jìn)行微調(diào),同時(shí)其他所有配置保持不變,最后對評估各自的微調(diào)模型的性能。為了公平起見,我們先調(diào)整基線分類頭模型的超參,并使它們的性能達(dá)到 SuperGLUE 排行榜中 BERT++ 的性能水平,然后在對應(yīng)的提示法模型中采用相同的超參。
下圖繪制了每個(gè)任務(wù)?2?的最終性能(指標(biāo)隨任務(wù)而不同)隨數(shù)據(jù)集大小的變化曲線。有了這個(gè)圖,我們就能夠?qū)煞N方法在給定任務(wù)上達(dá)到一定性能水平所需的數(shù)據(jù)量進(jìn)行對比。我們將這種差異稱為在該性能水平上其中一個(gè)方法相對于其他方法的?數(shù)據(jù)優(yōu)勢。我們將兩種方法都能達(dá)到的性能的范圍稱為?比較窗口。通過在該范圍內(nèi)進(jìn)行積分,我們可以獲得在某任務(wù)上一種方法相對于另一種方法的“平均數(shù)據(jù)優(yōu)勢”。從圖上看,這即是兩條曲線所夾區(qū)域的的面積除以比較窗口的高度。3

下表總結(jié)了在每個(gè)任務(wù)上提示法相對于分類頭法的平均數(shù)據(jù)優(yōu)勢,其誤差范圍由自助采樣法(bootstrapping)獲得,具體做法是對每個(gè)數(shù)據(jù)規(guī)模,我們運(yùn)行 4 次分類頭法和 4 次提示法(即每個(gè)數(shù)據(jù)規(guī)模共 16 種組合),然后計(jì)算這些結(jié)果的標(biāo)準(zhǔn)差。不同任務(wù)的結(jié)果有很大不同;甚至對于同一任務(wù)的不同數(shù)據(jù)集,結(jié)果也會有所不同,例如 MNLI 和 RTE,這倆數(shù)據(jù)集雖然同屬蘊(yùn)涵任務(wù),但結(jié)果就很不同。然而,總的趨勢也很明顯,即:除 WiC?4?之外,提示方法在其他任務(wù)中都具有顯著的優(yōu)勢。提示提供的附加信息始終大致相當(dāng)于數(shù)百個(gè)數(shù)據(jù)點(diǎn)。

模板與言語器
對言語器進(jìn)行控制
當(dāng)前,提示主要被用作零樣本分類的工具,這是一個(gè)很自然的用法。然而,真正操作起來,零樣本一般會很棘手,因?yàn)樾枰獙μ崾竞脱哉Z器進(jìn)行完美對齊。在上文中,我們已經(jīng)表明,提示可以應(yīng)用到更廣泛的場景中,包括在全數(shù)據(jù)場景中。為了對比提示法的零樣本性和自適應(yīng)性,我們考慮一個(gè)?空言語器(null verbalizer),該言語器與任務(wù)完全無關(guān)。對于只需要填寫一個(gè)詞的任務(wù)(因此 COPA 和 WSC 數(shù)據(jù)集不在此列),我們把其言語映射(例如“是”、“否”、“也許”、“對”或“錯(cuò)”)替換成隨機(jī)的。這樣的話,提示模型就會像分類頭模型一樣,在沒有訓(xùn)練數(shù)據(jù)的情況下無法使用。我們對空言語器配置進(jìn)行與上文相同的優(yōu)勢分析,并繪制出相應(yīng)的曲線,如下:


從結(jié)果來看,其數(shù)據(jù)優(yōu)勢噪聲比直接提示法與分類頭法的數(shù)據(jù)優(yōu)勢的噪聲更大。然而,我們也發(fā)現(xiàn),即使僅使用空言語器,語言模型也能夠適應(yīng)任務(wù),即使只有幾個(gè)數(shù)據(jù)點(diǎn),其也能憑借恰當(dāng)?shù)奶崾救〉门c分類頭模型相當(dāng)或更好的性能。因此,我們可以認(rèn)為,即使沒有信息豐富的言語器,提示法帶來的歸納偏差也是有益的。
模板選擇帶來的影響
另一個(gè)可能影響提示法在零樣本分類場景下的成敗的因素是:提示模板的選擇。這里,我們看一下該因素對我們的影響。我們復(fù)用了 PET 中的模板(每個(gè)任務(wù)有兩到三個(gè)完全不同的模板),并對每個(gè)任務(wù)的每種模板進(jìn)行了實(shí)驗(yàn),結(jié)果如下。我們可以看到提示的選擇對結(jié)果沒有顯著影響,其方差小于隨機(jī)種子帶來的方差。

最后的話
通過這項(xiàng)工作,我們研究了一種新的、基于自然語言提示的微調(diào)方法,其目的是通過單詞預(yù)測顯式地利用預(yù)訓(xùn)練模型的語言建模能力,而不是通過基于模型中間表征的線性分類器隱式地利用它。為了公平比較,我們把問題建模為用反向傳播來微調(diào)基于提示的分類器語言模型,我們發(fā)現(xiàn)提示法通常優(yōu)于使用標(biāo)準(zhǔn)微調(diào)線性分類頭的方法。我們用數(shù)據(jù)點(diǎn)來估計(jì)這種優(yōu)勢,以衡量人類通過提示提供的附加信息,并發(fā)現(xiàn)編寫提示始終抵得上數(shù)百個(gè)數(shù)據(jù)點(diǎn)。此外,即使沒有言語器帶來的信息量(即使用空言語器),這種優(yōu)勢仍然存在,并且這種方法對于提示的選擇相當(dāng)魯棒。
對于從業(yè)人員而言,我們相信基于提示的微調(diào)不僅應(yīng)當(dāng)成為一種標(biāo)準(zhǔn)工具,而且將會成為如此。特別是對于中小型的特定任務(wù)數(shù)據(jù)集,通過自行設(shè)計(jì)提示,只需付出很小的努力就能獲得顯著的數(shù)據(jù)優(yōu)勢。而對于研究人員而言,我們認(rèn)為這個(gè)領(lǐng)域還有很多問題尚待探索:為什么相同的提示在 MNLI 數(shù)據(jù)集上抵得上 3500 個(gè)樣本,而在 RTE 數(shù)據(jù)集上卻只抵得上 282 個(gè)樣本?提示與標(biāo)準(zhǔn) ML 監(jiān)督有何關(guān)系?由于它們具有一些零樣本特性,因此它們對對抗樣本或領(lǐng)域外樣本的反應(yīng)是否有所不同?
1:或者嚴(yán)格點(diǎn)說,至少據(jù)我們所知為否。
2:眼尖的讀者會注意到所有這些曲線都是單調(diào)的。我們?yōu)槊總€(gè)實(shí)驗(yàn)執(zhí)行了 4 次運(yùn)行(即對每個(gè)任務(wù)的每個(gè)數(shù)據(jù)規(guī)模,分別各運(yùn)行分類頭法和提示法 4 次,并用得到的模型測試)。為了清楚起見,并且由于兩種方法的微調(diào)有時(shí)都會失敗,從而導(dǎo)致負(fù)異常值,因此針對每個(gè)數(shù)據(jù)規(guī)模我們報(bào)告在此數(shù)據(jù)規(guī)模或更小的數(shù)據(jù)規(guī)模下獲得的最大性能,我們將其稱為?累積最大?聚合。除了減少方差之外,這不會對報(bào)告的數(shù)據(jù)優(yōu)勢產(chǎn)生太大影響,且即使對于非單調(diào)曲線,對圖形的解讀仍然成立。
3:在計(jì)算每個(gè)指標(biāo)的數(shù)據(jù)優(yōu)勢時(shí),我們?yōu)槊總€(gè)數(shù)據(jù)賦予相同的權(quán)重;我們還可以針對每個(gè)任務(wù)重新參數(shù)化 y 軸。這種做法到底是會對提示法相對于分類頭法的數(shù)據(jù)優(yōu)勢起促進(jìn)作用還是阻礙作用不好說,與數(shù)據(jù)集相關(guān)。舉個(gè)例子,強(qiáng)調(diào)接近收斂時(shí)的增益會增加 CB 和 MNLI 上的提示法的數(shù)據(jù)優(yōu)勢,但會降低 COPA 或 BoolQ 上的優(yōu)勢。
4:有趣的是,PET 已經(jīng)發(fā)現(xiàn)提示對該數(shù)據(jù)集無效。
5:MultiRC 的比較窗口太小,因?yàn)榉诸愵^基線模型無法學(xué)習(xí)到多數(shù)類之外知識;我們使用整個(gè)區(qū)域來獲得實(shí)際結(jié)果的下界。
英文原文:https://hf.co/spaces/teven-projects/how_many_data_points
中文版本:https://hf.co/spaces/MatrixYao/how_many_data_points_zh
原文作者:Teven Le Scao
譯者: Matrix Yao (姚偉峰),英特爾深度學(xué)習(xí)工程師,工作方向?yàn)?transformer-family 模型在各模態(tài)數(shù)據(jù)上的應(yīng)用及大規(guī)模模型的訓(xùn)練推理。