0
在去年11月份,NLP大神Manning聯(lián)合谷歌做的ELECTRA一經(jīng)發(fā)布,迅速火爆整個NLP圈,其中ELECTRA-small模型參數(shù)量僅為 BERT-base模型的1/10,性能卻依然能與BERT、RoBERTa等模型相媲美。
在前不久,谷歌終于開源了ELECTRA,并發(fā)布了預(yù)訓(xùn)練模型,這對于缺大算力的高校和企業(yè),簡直是一大福音。
然而,其發(fā)布的預(yù)訓(xùn)練模型只是針對英語,卻非如BERT那樣是多語言版本。對于其他語言(例如中文)的研究者來說,則非常遺憾。
(雷鋒網(wǎng))
針對這一問題,今天哈工大訊飛聯(lián)合實驗室(HFL)基于ELECTRA開源代碼,發(fā)布了中文版的 ELECTRA 預(yù)訓(xùn)練模型。
(雷鋒網(wǎng))
ELECTRA預(yù)訓(xùn)練模型的作者是斯坦福SAIL實驗室Manning組和谷歌大腦研究團隊,初次出現(xiàn)是在2019年北京智源大會上面。作為一種新的文本預(yù)訓(xùn)練模型,ELECTRA 新穎的設(shè)計思路、更少的計算資源消耗和更少的參數(shù),迅速引起了大批關(guān)注者。特別是在去年 11 月 ICLR 2020 論文接收出爐后,曾引起NLP圈內(nèi)不小的轟動。
(雷鋒網(wǎng))
論文鏈接:https://openreview.net/forum?id=r1xMH1BtvB
論文中這張圖能夠說明一切問題:
圖注:右圖是左圖放大的結(jié)果。
如上圖所示,ELECTRA模型能夠在訓(xùn)練步長更少的前提下得到了比其他預(yù)訓(xùn)練模型更好的效果。同樣,在模型大小、數(shù)據(jù)和計算相同的情況下,ELECTRA的性能明顯優(yōu)于基于MLM的方法,如BERT和XLNet。
所以,ELECTRA 與現(xiàn)有的生成式的語言表示學(xué)習(xí)方法相比,前者具有更高的計算效率和更少的參數(shù)(ELECTRA-small的參數(shù)量僅為BERT-base的 1/10)。
ELECTRA能夠取得如此優(yōu)異結(jié)果,基于其新穎的預(yù)訓(xùn)練框架,其中包含兩個部分:Generator和Discriminator。
Generator: 一個小的MLM,在[MASK]的位置預(yù)測原來的詞。Generator將用來把輸入文本做部分詞的替換。Discriminator: 判斷輸入句子中的每個詞是否被替換,即使用Replaced Token Detection (RTD)預(yù)訓(xùn)練任務(wù),取代了BERT原始的Masked Language Model (MLM)。需要注意的是這里并沒有使用Next Sentence Prediction (NSP)任務(wù)。
在預(yù)訓(xùn)練階段結(jié)束之后,只使用Discriminator作為下游任務(wù)精調(diào)的基模型。
換句話說,作者們把CV領(lǐng)域的GAN運用到了自然語言處理。
值得注意的是,盡管與GAN的訓(xùn)練目標相似,但仍存在一些關(guān)鍵差異。首先,如果生成器碰巧生成了正確的token,則該token被視為“真實”而不是“偽造”;所以模型能夠適度改善下游任務(wù)的結(jié)果。更重要的是,生成器使用最大似然來訓(xùn)練,而不是通過對抗性訓(xùn)練來欺騙判別器。
目前已有的開源 ELECTRA 預(yù)訓(xùn)練模型只是英文的預(yù)訓(xùn)練模型。但世界上還有許多其他語言(例如中文)研究的學(xué)者,他們需要與其相應(yīng)的語言預(yù)訓(xùn)練模型。
然而,谷歌官方除了BERT、RoBERTa等預(yù)訓(xùn)練模型有多語言版本外,其他例如XLNet、T5都沒有相應(yīng)的多語言版本,只有英文。其中原因在于相比于只在英語上做預(yù)訓(xùn)練,多語言的預(yù)訓(xùn)練需要收集相應(yīng)語料,需要調(diào)配不同語言語料的比例等,比較麻煩。因此大概率上,ELECTRA 也不會出中文版或多語言版的預(yù)訓(xùn)練模型。
而另一方面,作為中文社區(qū),我們國人自己對如何做中文的預(yù)訓(xùn)練則更為了解,我們自己來做相應(yīng)的預(yù)訓(xùn)練可能會比谷歌官方來做會更好。
由哈工大訊飛聯(lián)合實驗室資深級研究員、研究主管崔一鳴所帶領(lǐng)的團隊之前曾做過系列類似的開源工作,即基于開源預(yù)訓(xùn)練代碼,加上中文數(shù)據(jù)集來訓(xùn)練中文版預(yù)訓(xùn)練模型。例如中文版的系列BERT模型、中文版XLNet等,在GitHub上開源后反響不錯,在許多中文評測任務(wù)中也曾有不少隊伍使用他們開源的預(yù)訓(xùn)練模型進行改進。
開源地址:https://github.com/ymcui/Chinese-BERT-wwm
開源地址:https://github.com/ymcui/Chinese-XLNet
在谷歌開源ELECTRA之后,崔一鳴等人再次推出中文版 ELECTRA。
訓(xùn)練數(shù)據(jù)集,仍和之前訓(xùn)練BERT系列模型所用數(shù)據(jù)是一致的,主要來自大規(guī)模中文維基及通用文本(中文網(wǎng)頁爬取和清洗),總token達到5.4B。詞表方面沿用了谷歌原版BERT的WordPiece詞表,包含21128個token。
在本次的開源中,崔一鳴等人只發(fā)布了ELECTRA-base 和ELECTRA-small 兩個模型。據(jù)崔一鳴表示,large版本由于參數(shù)較多,超參設(shè)置比較困難,因此模型發(fā)布會相應(yīng)延后。
已發(fā)布的兩個版本各自訓(xùn)練了大約7天時間,由于small版本的參數(shù)僅為base版本的1/10,在訓(xùn)練中,崔一鳴等人將其batch調(diào)為1024(是base的4倍)。具體細節(jié)和超參如下(未提及的參數(shù)保持默認):ELECTRA-base:12層,隱層768,12個注意力頭,學(xué)習(xí)率2e-4,batch256,最大長度512,訓(xùn)練1M步ELECTRA-small:12層,隱層256,4個注意力頭,學(xué)習(xí)率5e-4,batch1024,最大長度512,訓(xùn)練1M步
ELECTRA-small 僅 46 M。
在效果上,崔一鳴等人將之與他們之前做的系列中文版預(yù)訓(xùn)練模型進行了效果對比。
對比模型包括:ELECTRA-small/base、BERT-base、BERT-wwm、BERT-wwm-ext、RoBERTa-wwm-ext、RBT3。
對比任務(wù)有六個:CMRC 2018 (Cui et al., 2019):篇章片段抽取型閱讀理解(簡體中文)
DRCD (Shao et al., 2018):篇章片段抽取型閱讀理解(繁體中文)
XNLI (Conneau et al., 2018):自然語言推斷(三分類)
ChnSentiCorp:情感分析(二分類)LCQMC (Liu et al., 2018):
句對匹配(二分類)BQ Corpus (Chen et al., 2018):
句對匹配(二分類)
在下游任務(wù)精調(diào)中,ELECTRA-small/base模型的學(xué)習(xí)率設(shè)為原論文默認的3e-4和1e-4。值得注意的是,這里的精調(diào)并沒有針對任何任務(wù)進行參數(shù)精調(diào)。為了保證結(jié)果的可靠性,對于同一模型,他們使用不同隨機種子訓(xùn)練10遍,匯報模型性能的最大值和平均值(括號內(nèi)為平均值)。
效果如下:
簡體中文閱讀理解:CMRC 2018(評價指標為:EM / F1)
繁體中文閱讀理解:DRCD(評價指標為:EM / F1)
自然語言推斷:XNLI(評價指標為:Accuracy)
情感分析:ChnSentiCorp(評價指標為:Accuracy)
句對分類:LCQMC(評價指標為:Accuracy)
句對分類:BQ Corpus( 評價指標為:Accuracy)
從以上的結(jié)果可以看出,對于ELECTRA-small模型,其效果在多數(shù)任務(wù)上顯著超過3層RoBERTa效果(RBT3),甚至是接近BERT-base的效果,而在參數(shù)量上只有BERT-base模型的1/10。對于ELECTRA-base模型來說,在多數(shù)任務(wù)上超過了BERT-base甚至是RoBERTa-wwm-ext的效果。
其具體使用,可以查看Github項目:https://github.com/ymcui/Chinese-ELECTRA
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。