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两个模型,在下面的几个场景中得到了预测结果。

完形填空

完形填空任务与预训练时ERNIE引入的知识先验Mask LM任务十分相似。从下图的比较中我们可以看到,ERNIE对实体词的建模更加清晰,对实体名词的预测比BERT更准确。例如BERT答案“周家人”融合了相似词语“周润发”和“家人”结果不够清晰;“市关村”不是一个已知实体;“菜菜”的词边界是不完整的。ERNIE的答案则能够准确命中空缺实体。

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模型在每个字上的标注结果。

相似度

ERNIE在训练中引入的DLM能有效地提升模型对文本相似度的建模能力。因此,我们比较文本相似度任务LCQMC数据集上二者的表现。从下表的预测结果可以看出,ERNIE学习到了中文复杂的语序变化。最终ERNIE与BERT在该任务数据的预测准确率为87.4%、87.0%.

分类

最后,比较应用最广泛的情感分类任务。经过预训练的ERNIE能够捕捉更加细微的语义区别,这些句子通常含有较委婉的表达方式。下面展示了PaddleNLP情感分类测试集上ERNIE与BERT的打分表现:在句式“不是很…”中含有转折关系,ERNIE能够很好理解这种关系,将结果预测为“消极”。在ChnSentiCorp情感分类测试集上finetune后ERNIE的预测准确率为95.4%,高于BERT的准确率(94.3%)。

从以上数据我们可以看到,ERNIE在大部分任务上都有不俗的表现。尤其是在序列标注、完形填空等词粒度任务上,ERNIE的表现尤为突出,一点都不输给Google的BERT。有兴趣的开发者可以一试:

https://github.com/PaddlePaddle/LARK/tree/develop/ERNIE

长按识别下方二维码

免费申请Tesla V100算力卡

配合PaddleHub让模型原地起飞

?

现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧

关于PaperWeekly

PaperWeekly 是一个推荐、解读、讨论、报道人工智能前沿论文成果的学术平台。如果你研究或从事 AI 领域,欢迎在公众号后台点击「交流群」,小助手将把你带入 PaperWeekly 的交流群里。

我跑了ERNIE和BERT两个模型,结果出乎意料......相关推荐

  1. 五分钟搭建一个基于BERT的NER模型

    BERT 简介 BERT是2018年google 提出来的预训练的语言模型,并且它打破很多NLP领域的任务记录,其提出在nlp的领域具有重要意义.预训练的(pre-train)的语言模型通过无监督的学 ...

  2. 原创 | 从ULMFiT、Transformer、BERT等经典模型看NLP 发展趋势

    自然语言处理(Natural Language Process,简称NLP)是计算机科学.信息工程以及人工智能的子领域,专注于人机语言交互,探讨如何处理和运用自然语言.自然语言处理的研究,最早可以说开 ...

  3. 必须要GPT-3吗?不,BERT的MLM模型也能小样本学习

    ©PaperWeekly 原创 · 作者|苏剑林 单位|追一科技 研究方向|NLP.神经网络 大家都知道现在 GPT-3 风头正盛,然而,到处都是 GPT-3.GPT-3 地推,读者是否记得 GPT- ...

  4. Bert机器问答模型QA(阅读理解)

    Github参考代码:https://github.com/edmondchensj/ChineseQA-with-BERT https://zhuanlan.zhihu.com/p/33368203 ...

  5. bert中文分类模型训练+推理+部署

    文章预览: 0. bert简介 1. bert结构 1. bert中文分类模型训练 1 下载bert项目代码 代码结构 2 下载中文预训练模型 3 制作中文训练数据集 2. bert模型推理 1.te ...

  6. Pytorch两种模型保存方式

    以字典方式保存,更容易解析和可视化 Pytorch两种模型保存方式 大黑_7e1b关注 2019.02.12 17:49:35字数 13阅读 5,907 只保存模型参数 # 保存 torch.save ...

  7. (03)两个模型的交集、并集、差集

    前言 在做一碰撞检测时,犹豫一直无法实现,就行想到直接对两个模型求交集,如果交集部分为空,就说明其没有相交,于是使用了下面的方法,求模型的交集.(后来由于在不相交时一直有报错误,但在后来的研究中发现及 ...

  8. session-based recommendation的两个模型对比NARM, STAMP

    文章目录 介绍 模型介绍 NARM global encoder local encoder final model STAMP short-term memory long-term memory ...

  9. 旅行商问题(TSP)的两种模型

    TSP简介 一个商人从一点出发,经过所有点后返回原点.它需要满足:除起点和终点外,所有点当且仅当经过一次:起点与终点重合:所有点构成一个连通图.要求:得到这个商人经过所有点的最短路程. TSP模型表示 ...

最新文章

  1. luogu P2572 [SCOI2010]序列操作
  2. python小作品speak_python 小案例demo05 升级版石头剪刀布
  3. Groovy里使用Runnable实现多线程
  4. sql 之like 和通配符%,_(mysql)
  5. c语言结构体多门成绩排序,c语言结构体按学号排序求大神帮忙改一下吧
  6. 那天空飘过的梅花月饼,是今年中秋最好的礼物
  7. win8安装wampserver报403错误解决方法
  8. 从零基础入门Tensorflow2.0 ----一、3.4 实战深度神经网络(dropout)
  9. EmEditor中,正则判断行中是否存在自动字符串
  10. 使用Springboot开发前后端分离校园智能出行拼车系统
  11. mysql fk_MySQL FK的正确命名约定是什么?
  12. 基于OpenCv+Django的网络实时视频流传输(前后端分离)
  13. web页面-JS/DOM/BOM/窗口滚动/修改内容/上传文件
  14. There was a problem confirming the ssl certificate: [SSL: CERTIFICATE_VERIFY_FAILED]
  15. js网页繁体简体转换(备忘)
  16. jeefast使用Mybatis进行图片上传
  17. Rsa 非对称加密算法使用问题分享--使用通过密钥对同一段数据加密得到结果每次不一样
  18. pythonif语句怎么换行输入_李沁和李易峰演的电视剧叫什么名字
  19. ubuntu系统出错且无法恢复请联系管理员(A problem has occurred and the system can‘t recover,please contact the admini)
  20. Linux: 磁盘状态观察命令lsblk、blkid

热门文章

  1. 《剑指offer》— JavaScript(6)旋转数组的最小数字
  2. ActionBar设置自定义setCustomView()留有空白的问题
  3. TFS2013 微软源代码管理工具 安装与使用图文教程
  4. 图像相似度测量与模板匹配总结
  5. CF 67A - Partial Teacher
  6. sicily 1762. 排座椅
  7. python中线条颜色_python中plot用法——线条、点、颜色
  8. 304 vue 启动项目打开页面_Vue搭建项目工程(续)
  9. python登录接口代码_(转载)Python 的 OAuth 登录接口 python-oauth2
  10. python交叉编译_交叉编译Python3.6.2,使用海思arm-hisiv200-linux-gcc,移植到arm开发板上...