論文:Adversarial Training for Large NeuralLangUageModels
源碼:https://github.com/namisan/mt-dnn
TL;DR
本文把對(duì)抗訓(xùn)練用到了預(yù)訓(xùn)練和微調(diào)兩個(gè)階段,對(duì)抗訓(xùn)練的方法是針對(duì)embedding space,通過(guò)最大化對(duì)抗損失、最小化模型損失的方式進(jìn)行對(duì)抗,在下游任務(wù)上取得了一致的效果提升。
有趣的是,這種對(duì)抗訓(xùn)練方法不僅能夠在BERT上有提高,而且在RoBERTa這種已經(jīng)預(yù)訓(xùn)練好的模型上也能有所提高,說(shuō)明對(duì)抗訓(xùn)練的確可以幫助模型糾正易錯(cuò)點(diǎn)。
方法:ALUM(大型神經(jīng)語(yǔ)言模型的對(duì)抗性訓(xùn)練)
實(shí)現(xiàn):在embedding space添加擾動(dòng),最大化對(duì)抗損失
應(yīng)用:任何基于Transformer的語(yǔ)言模型的預(yù)訓(xùn)練或微調(diào)
預(yù)備知識(shí)
BPE編碼
為了解決詞匯表外單詞的問(wèn)題,使用Byte-Pair Encoding(BPE)(Sennrich et al.,2015)或其變體(Kudo and Richardson,2018)將標(biāo)記劃分為子詞單元,生成固定大小的子詞詞匯,以便在訓(xùn)練文本語(yǔ)料庫(kù)中緊湊地表示單詞。
BPE詞表既存在char-level級(jí)別的字符,也存在word-level級(jí)別的單詞。通過(guò)BPE得到了更加合適的詞表,這個(gè)詞表可能會(huì)出現(xiàn)一些不是單詞的組合,但是這個(gè)本身是有意義的一種形式。
流程:
確定subword詞表大小
統(tǒng)計(jì)每一個(gè)連續(xù)字節(jié)對(duì)的出現(xiàn)頻率,并保存為code_file。這個(gè)是git中l(wèi)earn-bpe完成
將單詞拆分為字符序列并在末尾添加后綴“ ”,而后按照code_file合并新的subword,首先合并頻率出現(xiàn)最高的字節(jié)對(duì)。例如單詞birthday,分割為['b', 'i', 'r', 't', 'h', 'd', 'a', 'y'],查code_file,發(fā)現(xiàn)'th'出現(xiàn)的最多,那么合并為['b', 'i', 'r', 'th', 'd', 'a', 'y'],最后,字符序列合并為['birth', 'day']。然后去除'',變?yōu)閇'birth', 'day'],將這兩個(gè)詞添加到詞表。這個(gè)是apply-bpe完成。
重復(fù)第3步直到達(dá)到第2步設(shè)定的subword詞表大小或下一個(gè)最高頻的字節(jié)對(duì)出現(xiàn)頻率為1
模型:ALUM
基于幾個(gè)關(guān)鍵想法:
擾動(dòng)embedding空間,優(yōu)于直接對(duì)輸入文本應(yīng)用擾動(dòng)。
通過(guò)虛擬對(duì)抗訓(xùn)練為標(biāo)準(zhǔn)目標(biāo)添加正則化項(xiàng)。
其中預(yù)訓(xùn)練階段 ,微調(diào)階段
因?yàn)橛凶畲蠡僮鳎杂?xùn)練昂貴。有利于embedding鄰域的標(biāo)簽平滑。
文中觀點(diǎn):
虛擬對(duì)抗訓(xùn)練優(yōu)于傳統(tǒng)對(duì)抗訓(xùn)練,特別是當(dāng)標(biāo)簽可能有噪聲時(shí)。
例如,BERT pretraining使用masked words作為自監(jiān)督的標(biāo)簽,但在許多情況下,它們可以被其他詞取代,形成完全合法的文本。但BERT中,給到被替換的word的標(biāo)簽均為負(fù)。
首先使用標(biāo)準(zhǔn)目標(biāo)(1)訓(xùn)練模型;然后使用虛擬對(duì)抗訓(xùn)練(3)繼續(xù)訓(xùn)練。
第4-6行為求最大梯度步驟,以找到使對(duì)抗性損失最大化的擾動(dòng)(反局部平滑性)。K越大的近似值越高,但成本更高。為了在速度和性能之間取得良好的平衡,本文實(shí)驗(yàn)K=1.
泛化與魯棒性
文中表示,通過(guò)使用ALUM進(jìn)行對(duì)抗性的預(yù)訓(xùn)練,能夠提高廣泛的NLP任務(wù)的泛化和魯棒性(如后述實(shí)驗(yàn)結(jié)論所示)。之前的研究較多發(fā)現(xiàn),對(duì)抗訓(xùn)練會(huì)損害泛化能力。
先前關(guān)于泛化和魯棒性之間沖突的工作通常集中在有監(jiān)督的學(xué)習(xí)環(huán)境中。調(diào)和兩者的一些初顯成果也利用了未標(biāo)記的數(shù)據(jù),例如自訓(xùn)練(Raghunathan等人,2020年)。
此外,假設(shè)通過(guò)擾動(dòng)embedding空間而不是輸入空間,NLP中的對(duì)抗訓(xùn)練可能無(wú)意中偏向于流形擾動(dòng)而不是規(guī)則擾動(dòng)。
什么是流形
流形學(xué)習(xí)的觀點(diǎn):認(rèn)為我們所觀察到的數(shù)據(jù)實(shí)際上是由一個(gè)低維流形映射到高維空間的。由于數(shù)據(jù)內(nèi)部特征的限制,一些高維中的數(shù)據(jù)會(huì)產(chǎn)生維度上的冗余,實(shí)際上這些數(shù)據(jù)只要比較低的維度的維度就能唯一的表示。
所以直觀上來(lái)講,一個(gè)流形好比是一個(gè)d維的空間,在一個(gè)m維的空間中(m>d)被扭曲之后的結(jié)果。需要注意的是流形不是一個(gè)形狀,而是一個(gè)空間。舉個(gè)例子,比如說(shuō)一塊布,可以把它看成一個(gè)二維的平面,這是一個(gè)二維的空間,現(xiàn)在我們把它扭一扭(三維空間),它就變成了一個(gè)流形,當(dāng)然不扭的時(shí)候,它也是一個(gè)流形,歐氏空間是流形的一種特殊情況。
實(shí)驗(yàn)
提升泛化能力
BERT BASE是使用與Devlin等人相同的設(shè)置訓(xùn)練的標(biāo)準(zhǔn)BERT base模型。(即1M步,batch size = 256)。
BERT+BASE與BERT BASE相似,不同之處在于其訓(xùn)練步數(shù)為1.6M,與對(duì)抗預(yù)訓(xùn)練所需時(shí)間大致相同(ALUM BERT-BASE)。
ALUM BERT-BASE是一個(gè)BERT模型,使用與BERT BASE相同的設(shè)置進(jìn)行訓(xùn)練,但最后的500K步驟使用ALUM。每一個(gè)對(duì)抗訓(xùn)練步驟大約比標(biāo)準(zhǔn)訓(xùn)練步驟長(zhǎng)1.5倍。


可以觀察到后500k加了ALUM后提升明顯。



提升魯棒性

結(jié)合對(duì)抗預(yù)訓(xùn)練和對(duì)抗微調(diào)
之前都是在預(yù)訓(xùn)練階段做的對(duì)抗,ALUM RoBERTa-LARGE-SMART在預(yù)訓(xùn)練和微調(diào)階段均做對(duì)抗。

結(jié)論
提出了一種通用的對(duì)抗性訓(xùn)練算法ALUM:
對(duì)抗預(yù)訓(xùn)練可以顯著提高泛化能力和魯棒性。
ALUM大大提高了BERT和RoBERTa在各種NLP任務(wù)中的準(zhǔn)確性,并且可以與對(duì)抗微調(diào)相結(jié)合以獲得進(jìn)一步的收益。
未來(lái)的發(fā)展方向:
進(jìn)一步研究對(duì)抗性預(yù)訓(xùn)練在提高泛化和魯棒性方面的作用;
對(duì)抗性訓(xùn)練加速;
將ALUM應(yīng)用于其他領(lǐng)域。
責(zé)任編輯:xj
原文標(biāo)題:【微軟ALUM】當(dāng)語(yǔ)言模型遇到對(duì)抗訓(xùn)練
文章出處:【微信公眾號(hào):深度學(xué)習(xí)自然語(yǔ)言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
-
微軟
+關(guān)注
關(guān)注
4文章
6719瀏覽量
107300 -
算法
+關(guān)注
關(guān)注
23文章
4759瀏覽量
97112 -
語(yǔ)言模型
+關(guān)注
關(guān)注
0文章
570瀏覽量
11246 -
nlp
+關(guān)注
關(guān)注
1文章
491瀏覽量
23182
原文標(biāo)題:【微軟ALUM】當(dāng)語(yǔ)言模型遇到對(duì)抗訓(xùn)練
文章出處:【微信號(hào):zenRRan,微信公眾號(hào):深度學(xué)習(xí)自然語(yǔ)言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
在Ubuntu20.04系統(tǒng)中訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型的一些經(jīng)驗(yàn)
沐曦MXMACA軟件平臺(tái)在大模型訓(xùn)練方面的優(yōu)化效果
請(qǐng)問(wèn)如何在imx8mplus上部署和運(yùn)行YOLOv5訓(xùn)練的模型?
用PaddleNLP為GPT-2模型制作FineWeb二進(jìn)制預(yù)訓(xùn)練數(shù)據(jù)集
?VLM(視覺(jué)語(yǔ)言模型)?詳細(xì)解析
訓(xùn)練好的ai模型導(dǎo)入cubemx不成功怎么處理?
小白學(xué)大模型:訓(xùn)練大語(yǔ)言模型的深度指南
大語(yǔ)言模型的解碼策略與關(guān)鍵優(yōu)化總結(jié)

關(guān)于語(yǔ)言模型和對(duì)抗訓(xùn)練的工作
評(píng)論