諾亞方舟拓展訓(xùn)練(諾亞方舟心理游戲流程)
出品 | AI科技大本營(ID:rgznai100)
BERT之后,新的預(yù)訓(xùn)練語言模型XLnet、RoBERTa、ERNIE不斷推出,這次,華為諾亞方舟實驗室開源了基于BERT的中文預(yù)訓(xùn)練語言模型NEZHA(哪吒),寓意模型能像哪吒那樣三頭六臂、大力出奇跡,可以處理很多不同的自然語言任務(wù)。
據(jù)介紹,當(dāng)前版本的NEZHA基于BERT模型,并進(jìn)行了多處優(yōu)化,能夠在一系列中文自然語言理解任務(wù)達(dá)到先進(jìn)水平。
NEZHA模型的實驗中采用了5個中文自然語言理解任務(wù),即CMRC(中文閱讀理解)、XNLI(自然語言推斷)、LCQMC(句義匹配)、PD-NER (命名實體識別任務(wù))、ChnSenti(情感分類)。
研究人員在中文維基百科、中文新聞、百度百科數(shù)據(jù)上訓(xùn)練NEZHA模型,并且和谷歌發(fā)布的中文BERT,以及哈工大和科大訊飛聯(lián)合發(fā)布的BERT-WWM,還有百度發(fā)布的ERNIE-Baidu進(jìn)行了比較。從下表可以看出,NEZHA在XNLI,LCQMC,PeoplesDaily NER,ChnSenti任務(wù)上達(dá)到了先進(jìn)水平(SOTA)。表中NEZHA,NEZHA-WWM和NEZHA-Span分別代表由原始的BERT預(yù)訓(xùn)練任務(wù)訓(xùn)練得到的,加入全詞Mask訓(xùn)練得到的以及加入Span預(yù)測任務(wù)訓(xùn)練得到的NEZHA模型(三者均使用了全函數(shù)式相對位置編碼)。

GitHub鏈接:
https://github.com/huawei-noah/Pretrained-Language-Model/blob/master/README.md
論文鏈接:
https://arxiv.org/abs/1909.00204
此外,諾亞方舟實驗室還開源了TinyBERT預(yù)訓(xùn)練語言模型。
盡管語言模型預(yù)訓(xùn)練(例如BERT)大大改善了許多自然語言處理任務(wù)的性能。但是,預(yù)訓(xùn)練語言模型通常在計算上昂貴且占用了大量內(nèi)存,因此很難在某些資源受限的設(shè)備上有效執(zhí)行它們。為了加快推理速度、減小模型大小并同時保持精度,華為研究人員提出了一種新穎的transformer蒸餾方法,該方法是針對基于transformer模型專門設(shè)計的知識蒸餾(KD)方法。
通過利用這種新的知識蒸餾方法,可以將BERT中編碼的大量知識很好地轉(zhuǎn)移到TinyBERT。此外,他們?yōu)門inyBERT引入了一個新的兩階段學(xué)習(xí)框架,該框架在預(yù)訓(xùn)練階段和特定任務(wù)的學(xué)習(xí)階段都執(zhí)行transformer蒸餾方法。該框架確保TinyBERT可以捕獲BERT的一般領(lǐng)域知識和特定任務(wù)知識。在GLUE基準(zhǔn)測試中,TinyBERT相比BERT小7.5倍,比其推理的速度快9.4倍,并且在自然語言理解任務(wù)中具有競爭優(yōu)勢。
它在預(yù)訓(xùn)練和特定任務(wù)的學(xué)習(xí)階段都運(yùn)行了新型的transformer蒸餾方法。TinyBERT學(xué)習(xí)的概述如下所示:

論文鏈接:
https://arxiv.org/abs/1909.10351
NEZHA預(yù)訓(xùn)練語言模型的三大改進(jìn)維度
據(jù)諾亞方舟實驗室的官方資料,NEZHA(哪吒)基于BERT在模型、預(yù)訓(xùn)練任務(wù)和訓(xùn)練算法三個維度進(jìn)行了改進(jìn)。

模型改進(jìn):BERT的網(wǎng)絡(luò)架構(gòu)是一個多層的Transformer網(wǎng)絡(luò),由于Transformer并沒有直接考慮輸入的token的位置信息,原始的Transformer模型和BERT分別采用了函數(shù)式和參數(shù)式的絕對位置編碼方式,即每一個位置上的輸入的token會疊加一個與位置信息相關(guān)的一個embedding(這個embedding稱為絕對位置編碼:absolute position embedding,APE),前者的位置編碼是一個與位置相關(guān)的函數(shù),后者則是模型參數(shù)的一部分,在預(yù)訓(xùn)練過程中學(xué)到的。
此后,又有工作提出了相對位置編碼方式,即在每一層計算隱狀態(tài)的相互依賴的時候考慮他們之間的相對位置關(guān)系,這個相對位置信息表示為一個相對位置編碼(relative position embedding,RPE),已有工作均在相對位置編碼中加入了可學(xué)習(xí)的參數(shù)。本工作在BERT模型中使用了完全函數(shù)式的相對位置編碼(相對位置編碼沒有任何需要學(xué)習(xí)的參數(shù)),實驗結(jié)果表明該位置編碼方式使得模型在各個下游任務(wù)上的效果均得到明顯提升。
預(yù)訓(xùn)練任務(wù):本工作引入了全詞Mask技術(shù),即不同于原始的BERT模型Mask單個中文字,該技術(shù)在MLM預(yù)訓(xùn)練任務(wù)中Mask整個詞而不是單個字(如下圖全詞Mask方法Mask了一整個詞“華為”),進(jìn)而提升了任務(wù)難度使得BERT學(xué)到更多語義信息。

此外,借鑒SpanBERT ,NEZHA模型還引入了Span預(yù)測任務(wù),該任務(wù)Mask一個連續(xù)的Span(例如下圖中“機(jī)”,“很”,“不”三個字),利用Span前后的兩個字的最上層表示(下圖中的x3和x7)以及待預(yù)測字的位置信息來預(yù)測該字,如下圖中,待預(yù)測字為“不”,Span預(yù)測任務(wù)會使用x3,x7和“不“”這個字的位置信息(就是x3和x6還有x6和x7之間的相對位置編碼)來預(yù)測該字,“機(jī)”和“很”的預(yù)測也是同樣的方法。
該方法使得Span前后的字的表示會包含Span中字的語義信息,由于在訓(xùn)練過程中,一個句子會被隨機(jī)Mask很多次,所以句子中每個字都有機(jī)會成為Span的前后字,進(jìn)而使得各個字學(xué)到的表示都會包含周圍Span的信息,Span預(yù)測任務(wù)能夠有效提高模型在下游的Span抽取任務(wù)(此任務(wù)的目標(biāo)是獲取一段文字中目標(biāo)片段的開始和結(jié)束位置)的效果。

訓(xùn)練算法:在訓(xùn)練過程中,采用混合精度訓(xùn)練(Mixed Precision Training)方式,在傳統(tǒng)的深度學(xué)習(xí)訓(xùn)練過程中,所有的變量包括weight,activation和gradient都是用FP32(單精度浮點(diǎn)數(shù))來表示。而在混合精度訓(xùn)練過程中,每一個step會為模型的所有weight維護(hù)一個FP32的copy,稱為Master Weights,在做前向和后向傳播過程中,Master Weights會轉(zhuǎn)換成FP16(半精度浮點(diǎn)數(shù))格式,權(quán)重,激活函數(shù)和梯度都是用FP16進(jìn)行表示,最后梯度會轉(zhuǎn)換成FP32格式去更新Master Weights。
優(yōu)化器方面使用了LAMB優(yōu)化器,通常在深度神經(jīng)網(wǎng)絡(luò)訓(xùn)練的Batch Size很大的情況下(超過一定閾值)會給模型的泛化能力帶來負(fù)面影響,而LAMB優(yōu)化器通過一個自適應(yīng)式的方式為每個參數(shù)調(diào)整learning rate,能夠在Batch Size很大的情況下不損失模型的效果,使得模型訓(xùn)練能夠采用很大的Batch Size,進(jìn)而極大提高訓(xùn)練速度。在訓(xùn)練BERT的研究中,使用LAMB優(yōu)化器在不損失模型效果的前提下,Batch Size達(dá)到了超過30k,使得BERT的訓(xùn)練時間從3天降到了76分鐘。
掃描二維碼推送至手機(jī)訪問。
版權(quán)聲明:本文由一點(diǎn)團(tuán)建發(fā)布,如需轉(zhuǎn)載請注明出處。