BERT 和 ERNIE,NLP 领域近来最受关注的 2 大模型究竟怎么样?刚刚有人实测比拼了一下,结果在中文语言环境下,结果令人意外又惊喜。具体详情究竟如何?不妨一起围观下这篇技术评测。
- 写在前面
随着 2018 年 ELMo、BERT 等模型的发布,NLP 领域终于进入了“大力出奇迹”的时代。采用大规模语料上进行无监督预训练的深层模型,在下游任务数据上微调一下,即可达到很好的效果。曾经需要反复调参、精心设计结构的任务,现在只需简单地使用更大的预训练数据、更深层的模型便可解决。
随后在 2019 年上半年,百度的开源深度学习平台 PaddlePaddle 发布了知识增强的预训练模型 ERNIE,ERNIE 通过海量数据建模词、实体及实体关系。相较于 BERT 学习原始语言信号,ERNIE 直接对先验语义知识单元进行建模,增强了模型语义表示能力。
简单来说,百度 ERNIE 采用的 Masked Language Model 是一种带有先验知识 Mask 机制。可以在下图中看到,如果采用 BERT 随机 mask,则根据后缀“龙江”即可轻易预测出“黑”字。引入了词、实体 mask 之后,“黑龙江”作为一个整体被 mask 掉了,因此模型不得不从更长距离的依赖(“冰雪文化名城”)中学习相关性。
除此之外,百度 ERNIE 还引入了 DLM(对话语言模型)任务,通过这种方式来学习相同回复对应的 query 之间的语义相似性。实验证明 DLM 的引入对 LCQMC(文本相似度计算)系列任务带来了较大的帮助。最终 ERNIE 采用多源训练数据,利用高性能分布式深度学习平台 PaddlePaddle 完成预训练。
- 亲测
到底百度 ERNIE 模型所引入训练机制有没有起到作用,只有实践了以后才知道。为此,我亲自跑了 BERT 和 ERNIE 两个模型,在下面的几个场景中得到了预测结果。
2.1 完形填空
完形填空任务与预训练时 ERNIE 引入的知识先验 Mask LM 任务十分相似。从下图的比较中我们可以看到,ERNIE 对实体词的建模更加清晰,对实体名词的预测比 BERT 更准确。例如 BERT 答案“周家人”融合了相似词语“周润发”和“家人”结果不够清晰;“市关村”不是一个已知实体;“菜菜”的词边界是不完整的。ERNIE 的答案则能够准确命中空缺实体。
2.2 NER (命名实体识别)
在同样为 token 粒度的 NER 任务中,知识先验 Mask LM 也带来了显著的效果。对比 MSRA-NER 数据集上的 F1 score 表现,ERNIE 与 BERT 分别为 93.8%、92.6%。在 PaddleNLP 的 LAC 数据集上,ERNIE 也取得了更好的成绩,测试集 F1 为 92.0%,比 BERT 的结果 90.3% 提升了 1.7%。分析二者在 MSRA-NER 测试数据中二者的预测结果。可以观察到:
1.)ERNIE 对实体理解更加准确:“汉白玉”不是实体类型分类错误;
2.)ERNIE 对实体边界的建模更加清晰:“美国法律所”词边界不完整,而“北大”、“清华”分别是两个机构。
Case 对比:摘自 MSRA-NER 数据测试集中的三段句子。B_LOC/I_LOC 为地点实体的标签,B_ORG/L_ORG 为机构实体的标签,O 为无实体类别标签。下表分别展现了 ERNIE、BERT 模型在每个字上的标注结果。
2.3 相似度
ERNIE 在训练中引入的 DLM 能有效地提升模型对文本相似度的建模能力。因此,我们比较文本相似度任务 LCQMC 数据集上二者的表现。从下表的预测结果可以看出,ERNIE 学习到了中文复杂的语序变化。最终 ERNIE 与 BERT 在该任务数据的预测准确率为 87.4%、87.0%.
2.4 分类
最后,比较应用最广泛的情感分类任务。经过预训练的 ERNIE 能够捕捉更加细微的语义区别,这些句子通常含有较委婉的表达方式。下面展示了 PaddleNLP 情感分类测试集上 ERNIE 与 BERT 的打分表现:在句式“不是很…”中含有转折关系,ERNIE 能够很好理解这种关系,将结果预测为“消极”。在 ChnSentiCorp 情感分类测试集上 finetune 后 ERNIE 的预测准确率为 95.4%,高于 BERT 的准确率(94.3%)。
从以上数据我们可以看到,ERNIE 在大部分任务上都有不俗的表现。尤其是在序列标注、完形填空等词粒度任务上,ERNIE 的表现尤为突出,不输给 Google 的 BERT。