哈工大刘挺:怎样训练一个更强大的中文语言模型?

之前我和朋友参加了CCKS机器阅读理解比赛,查资料时发现哈工大崔一鸣、车万翔、刘挺等人提出了一个针对中文的预训练语言模型MacBERT,刷新了众多下游任务的 SOTA。
 
我们在比赛中实测了MacBERT,提分显著,最终在246支参赛队伍中获得了第3。
 
本文来带你了解这项更强大的中文语言模型 MacBERT。
 
论文链接
 
https://arxiv.org/pdf/2004.13922.pdf
 
开源权重
 
https://github.com/ymcui/MacBERT
 
1. MacBERT是什么?
 
我们先简单回顾一下什么是BERT。
 
BERT本质上是一个自编码语言模型,为了见多识广,BERT使用3亿多词语训练,采用12层双向Transformer架构。注意,BERT只使用了Transformer的编码器部分,可以理解为BERT旨在学习庞大文本的内部语义信息。
 
具体训练目标之一,是被称为掩码语言模型的MLM。即输入一句话,给其中15%的字打上“mask”标记,经过Embedding和12层Transformer深度理解,来预测“mask”标记的地方原本是哪个字。
 
例如我们给BERT输入苏东坡的诗“欲把西[mask]比西子,淡[mask]浓抹总相宜”,模型需要根据没有被“mask”的上下文,预测出掩盖的地方是“湖”和“妆”。
 
相比之下,MacBERT 沿用了 BERT 的整体架构,主要在训练目标上做了改进。
 
针对 MLM 任务改进
 
Mac = MLM as correction,即校正的 mask 策略。
 
原始 BERT 模型的缺点之一是预训练和微调阶段任务不一致,pretrain 有 [mask] 字符,而 finetune 没有。
 
MacBERT 用目标单词的相似单词,替代被 mask 的字符,减轻了预训练和微调阶段之间的差距。
 
具体实现分2步:1)我们使用全词mask以及Ngram mask策略来替代随机mask,其中单词级别的1-gram到4-gram的比例为40%,30%,20%,10%。
 
2)抛弃 [mask] 字符,而是通过word2vec查找被考察单词的语义相似单词进行mask。在极少数情况下,当没有相似的单词时,会降级以使用随机单词替换。
 
最终,我们对15%的输入单词进行mask,其中80%替换为相似的单词,10%替换为随机单词,其余10%则保留原始单词。
 
如果感觉有点抽象,看这张图就一目了然。
 
假设原始中文句子是“使用语言模型来预测下一个词的概率”。BEP切词后,按BERT的随机 masking 策略,可能得到:
 
1.使 用 语 言[M]型 来[M]测 下 一 个 词 的 概 率。
 
如果加入全词掩码策略,会以实体为单位进行 masking:
 
2.使 用 语 言[M] [M]来[M] [M]下 一 个 词 的 概 率。
 
继续加入 N-gram 掩码:
 
3.使 用[M] [M] [M] [M]来[M] [M]下 一 个 词 的 概 率。
 
最后加入 Mac 掩码,用语义相似的词代替 [M]:
 
4.使 用语 法 建 模来预 见下 一 个 词 的几 率。
 
以上就是 MacBERT 的核心思想。
 
针对 NSP 任务改进
 
原始NSP已被证明贡献不大,MacBERT 引入了 ALBERT 的句子顺序预测(SOP)任务,通过切换两个连续句子的原始顺序来创建负样本。
 
后续的消融实验证明,SOP 效果好于 NSP。
 
2. 实验设置与结果
 
从中文维基百科中,我们获得了大约0.4B的单词。此外,还从收集的扩展数据中获得了 5.4B 个字,包含百科全书,新闻和问答网站,比中文维基百科大十倍。
 
为了识别中文单词的边界,我们使用LTP进行中文单词分割,词表沿用原始BERT。

dawei

【声明】:聊城站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。