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