哈工大劉挺:如何訓(xùn)練一個更強大的中文語言模型?

我們在比賽中實測了MacBERT,提分顯著,最終在246支參賽隊伍中獲得了第3。

本文來帶你了解這項更強大的中文語言模型 MacBERT。
論文鏈接
開源權(quán)重
https://github.com/ymcui/MacBERT
1. MacBERT是什么?
我們先簡單回顧一下什么是BERT。
BERT本質(zhì)上是一個自編碼語言模型,為了見多識廣,BERT使用3億多詞語訓(xùn)練,采用12層雙向Transformer架構(gòu)。注意,BERT只使用了Transformer的編碼器部分,可以理解為BERT旨在學(xué)習(xí)龐大文本的內(nèi)部語義信息。
input: 欲把西[mask]比西子,淡[mask]濃抹總相宜
output: 欲把西[湖]比西子,淡[妝]濃抹總相宜相比之下,MacBERT 沿用了 BERT 的整體架構(gòu),主要在訓(xùn)練目標(biāo)上做了改進(jìn)。
Mac = MLM as correction,即校正的 mask 策略。
原始?BERT 模型的缺點之一是預(yù)訓(xùn)練和微調(diào)階段任務(wù)不一致,pretrain 有 [mask] 字符,而 finetune 沒有。
MacBERT?用目標(biāo)單詞的相似單詞,替代被?mask 的字符,減輕了預(yù)訓(xùn)練和微調(diào)階段之間的差距。
具體實現(xiàn)分2步:1)我們使用全詞mask以及Ngram mask策略來替代隨機mask,其中單詞級別的1-gram到4-gram的比例為40%,30%,20%,10%。
2)拋棄?[mask] 字符,而是通過word2vec查找被考察單詞的語義相似單詞進(jìn)行mask。在極少數(shù)情況下,當(dāng)沒有相似的單詞時,會降級以使用隨機單詞替換。
最終,我們對15%的輸入單詞進(jìn)行mask,其中80%替換為相似的單詞,10%替換為隨機單詞,其余10%則保留原始單詞。

假設(shè)原始中文句子是“使用語言模型來預(yù)測下一個詞的概率”。BEP切詞后,按BERT的隨機 masking 策略,可能得到:
1.?使?用?語?言?[M]?型 來?[M]?測?下?一?個?詞?的?概?率。
如果加入全詞掩碼策略,會以實體為單位進(jìn)行 masking:
2.?使?用?語?言?[M]?[M]?來?[M]?[M]?下?一?個?詞?的?概?率。
繼續(xù)加入 N-gram 掩碼:
3.?使?用?[M]?[M]?[M]?[M]?來?[M]?[M]?下?一?個?詞?的?概?率。
最后加入 Mac 掩碼,用語義相似的詞代替 [M]:
4.?使?用?語?法?建 模?來 預(yù)?見?下?一?個?詞?的?幾?率。
以上就是 MacBERT 的核心思想。
原始NSP已被證明貢獻(xiàn)不大,MacBERT 引入了 ALBERT?的句子順序預(yù)測(SOP)任務(wù),通過切換兩個連續(xù)句子的原始順序來創(chuàng)建負(fù)樣本。
后續(xù)的消融實驗證明,SOP 效果好于 NSP。
從中文維基百科中,我們獲得了大約0.4B的單詞。此外,還從收集的擴展數(shù)據(jù)中獲得了 5.4B 個字,包含百科全書,新聞和問答網(wǎng)站,比中文維基百科大十倍。
為了識別中文單詞的邊界,我們使用LTP進(jìn)行中文單詞分割,詞表沿用原始BERT。

最終我們在分類、匹配、閱讀理解等眾多下游任務(wù)上對比了不同預(yù)訓(xùn)練模型的效果。
CMRC 2018 機器閱讀理解:



消融實驗

MacBERT 將 MLM 任務(wù)作為一種語言校正方式進(jìn)行了修改,減輕了預(yù)訓(xùn)練和微調(diào)階段的差異。?
下游各種中文NLP數(shù)據(jù)集的微調(diào)實驗表明,MacBERT 可以在多數(shù)任務(wù)中獲得顯著收益。
通過分析消融實驗,我們應(yīng)該更多關(guān)注MLM任務(wù),而不是NSP及其變體,因為類似NSP的任務(wù)并沒有顯示出彼此的壓倒性優(yōu)勢。?
這篇收錄于 EMNLP?2020 子刊的論文,是對中文場景預(yù)訓(xùn)練語言模型的創(chuàng)新與嘗試,由于模型結(jié)構(gòu)并沒有改動,可以很好地兼容現(xiàn)有任務(wù)(替換 checkpoint 和配置文件即可)。
感興趣的小伙伴,快來動手試試吧!
——The ?End——


