BERT
推出一个半月,斯坦福SQuAD问答榜单前六名都在使用BERT
BERT 成为了你做 NLP 时不得不用的模型了……吗?
今日,机器之心小编在刷 Twitter 时,发现斯坦福自然语言处理组的官方账号发布了一条内容:谷歌 AI 的 BERT 在 SQuAD 2.0 问答数据集上取得了全新的表现。该账号表示,目前榜单上的前 7 个系统都在使用 BERT 且要比不使用 BERT 的系统新能高出 2%。得分等同于 2017 年 SQuAD 1.0 版本时的得分。此外,哈工大讯飞联合实验室的 AoA 系统要比原 BERT 高出 2% 左右。
然后小编就从 SQuAD 2.0 榜单上发现了前六名的系统:
哈工大讯飞联合实验室的 AoA+DA+BERT(集成)系统;
AoA+DA+BERT(单模型)系统;
韩国创业公司 42Maru NLP 团队的 Candi-Net+BERT(单模型)系统;
谷歌 AI 的 BERT(单模型)系统;
Layer 6 AI 的 L6Net+BERT(单模型)系统;
阿里巴巴达摩院 NLP 团队的 SLQA+BERT(单模型)系统;
金融壹账通 Gamma 实验室 BERT_base_aug(集成模型)。
如今牢牢占据前几名的系统几乎都在使用 BERT,让我们不得不感叹 BERT 的影响力之大。但同时也想知道使用 BERT 时付出的计算力,毕竟 BERT 的作者在 Reddit 上也曾表示预训练的计算量非常大,「OpenAI 的 Transformer 有 12 层、768 个隐藏单元,他们使用 8 块 P100 在 8 亿词量的数据集上训练 40 个 Epoch 需要一个月,而 BERT-Large 模型有 24 层、2014 个隐藏单元,它们在有 33 亿词量的数据集上需要训练 40 个 Epoch,因此在 8 块 P100 上可能需要 1 年?16 Cloud TPU 已经是非常大的计算力了。」
为什么人们拿来 BERT 都在刷 SQuAD?
斯坦福问答数据集(SQuAD)是目前机器阅读领域的重要基准,是由众多数据标注者从维基百科文章中提取问题形成的。回答这些问题可能需要引用相关段落中的一部分,也有一些问题是无法回答的。
2018 年 6 月,斯坦福大学推出了 SQuAD 2.0 版本。新版本在 SQuAD 1.1 版 10 万个问题的基础上又加入了 5 万个新问题,新加入的内容均为与数据标注者提出的可回答问题类似的不可回答问题。想要在 SQuAD 上取得好成绩,人工智能系统必须在可行的条件下回答问题,并在确定段落内容无法支持问题时选择不回答。对于现有模型来说,SQuAD2.0 是一项具有挑战性的自然语言理解任务。
如此难的基准测试,看来需要更强大的模型才能通关,而 BERT 貌似成为了当前最好的选择。让我们看看 BERT 的论文《BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding》是怎么写的:
BERT 是一种新型语言表征模型,意为来自 Transformer 的双向编码器表征(Bidirectional Encoder Representations from Transformers)。与此前的语言表征模型(Peters et al., 2018; Radford et al., 2018)不同,BERT 旨在基于所有层的左、右语境来预训练深度双向表征。因此,预训练的 BERT 表征可以仅用一个额外的输出层进行微调,进而为很多任务(如问答和语言推断任务)创建当前最优模型,无需对任务特定架构做出大量修改。
BERT 的概念很简单,但实验效果很强大。它刷新了 11 个 NLP 任务的当前最优结果,包括将 GLUE 基准提升至 80.4%(7.6% 的绝对改进)、将 MultiNLI 的准确率提高到 86.7%(5.6% 的绝对改进),以及将 SQuAD v1.1 的问答测试 F1 得分提高至 93.2 分(提高 1.5 分)——比人类表现还高出 2 分。
我们只需要一个额外的输出层来对预训练 BERT 进行微调就可以用它来满足各种任务,无需针对特定任务对模型进行修改,这就是 BERT 模型能在大量 NLP 任务上取得突破的原因。
拓展阅读:
BERT 论文:https://arxiv.org/pdf/1810.04805.pdf
BERT的更多相关文章
- BERT模型在多类别文本分类时的precision, recall, f1值的计算
BERT预训练模型在诸多NLP任务中都取得最优的结果.在处理文本分类问题时,即可以直接用BERT模型作为文本分类的模型,也可以将BERT模型的最后层输出的结果作为word embedding导入到我们 ...
- NLP句子表征,NLP 的巨人肩膀(下):从 CoVe 到 BERT (转载)
深度长文:NLP的巨人肩膀(上):https://www.jiqizhixin.com/articles/2018-12-10-17 NLP 的巨人肩膀(下):从 CoVe 到 BERT: https ...
- 从Word Embedding到Bert模型—自然语言处理中的预训练技术发展史(转载)
转载 https://zhuanlan.zhihu.com/p/49271699 首发于深度学习前沿笔记 写文章 从Word Embedding到Bert模型—自然语言处理中的预训练技术发展史 张 ...
- 【算法】Bert预训练源码阅读
Bert预训练源码 主要代码 地址:https://github.com/google-research/bert create_pretraning_data.py:原始文件转换为训练数据格式 to ...
- 文本分类实战(十)—— BERT 预训练模型
1 大纲概述 文本分类这个系列将会有十篇左右,包括基于word2vec预训练的文本分类,与及基于最新的预训练模型(ELMo,BERT等)的文本分类.总共有以下系列: word2vec预训练词向量 te ...
- 【译】BERT表示的可解释性分析
目录 从词袋模型到BERT 分析BERT表示 不考虑上下文的方法 考虑语境的方法 结论 本文翻译自Are BERT Features InterBERTible? 从词袋模型到BERT Mikol ...
- 【译】为什么BERT有3个嵌入层,它们都是如何实现的
目录 引言 概览 Token Embeddings 作用 实现 Segment Embeddings 作用 实现 Position Embeddings 作用 实现 合成表示 结论 参考文献 本文翻译 ...
- 【译】深度双向Transformer预训练【BERT第一作者分享】
目录 NLP中的预训练 语境表示 语境表示相关研究 存在的问题 BERT的解决方案 任务一:Masked LM 任务二:预测下一句 BERT 输入表示 模型结构--Transformer编码器 Tra ...
- 图解BERT(NLP中的迁移学习)
目录 一.例子:句子分类 二.模型架构 模型的输入 模型的输出 三.与卷积网络并行 四.嵌入表示的新时代 回顾一下词嵌入 ELMo: 语境的重要性 五.ULM-FiT:搞懂NLP中的迁移学习 六.Tr ...
- 深入理解BERT Transformer ,不仅仅是注意力机制
来源商业新知网,原标题:深入理解BERT Transformer ,不仅仅是注意力机制 BERT是google最近提出的一个自然语言处理模型,它在许多任务 检测上表现非常好. 如:问答.自然语言推断和 ...
随机推荐
- Git仓库占用空间太大的解决方法
git gc --aggressive对本地git库进行更彻底清理和优化,这个指令花费的时间也会更长. 胡云飞系统部署搭建整体把控:git gc --auto这是一个设置的指令,并不会进行gc操作.如 ...
- 这一次,彻底弄懂 JavaScript 执行机制
本文转自https://juejin.im/post/59e85eebf265da430d571f89#heading-4 本文的目的就是要保证你彻底弄懂javascript的执行机制,如果读完本文还 ...
- vue v-show的使用
v-show的功能和v-if基本一样,但是v-if有衍生的v-else-if和v-else,v-show没有 v-show的性能比v-if要好,能用v-show就不要用v-if v-if是删除dom节 ...
- DirectShow 学习方法
DirectShow(简称 DShow) 是一个 Windows 平台上的流媒体框架,提供了高质量的多媒体流采集和回放功能. 这篇博客主要是简单讲下如何学习 Direct Show 框架,避免让自己少 ...
- 获取主机信息,网络信息AIP,getsockname,getpeername,getservbyname,getservbyport,inet_ntop,inet_pton
获取主机信息 1.ip地址转换,主机字节序 <---> 网络字节序 #include <arpa/inet.h> int inet_pton(int af, const cha ...
- 修改centos服务器时区并同步最新时间
rm -rf /etc/localtime ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime ntpdate cn.pool.ntp.org ...
- idea中的后缀补全
IDEA有个很牛逼的功能,那就是后缀补全(Postfix Completion),这个功能可以通过后缀来使用代码补全进行模板式地补全语句,如遍历循环语句(for.foreach).使用 String. ...
- 拒绝CPU挖矿矿工有责
长期以来CPU挖矿给挖矿行业带来持久的负面影响,因为CPU是电脑的核心设备,一挖矿就干不了别的了,大家是否可以达成共识拒绝CPU挖矿? 显卡挖矿刚好构建在不影响大众的日常工作生活对电脑的需求之上,家用 ...
- TinyMCE编辑器图片上传扩展(base64方式),asp.net mvc5
编辑器上传图片一般都是先上传到服务器中,若是用户取消或忘记提交表单就产生一张废图在空间里面,时间一长就产生大量占用空间的无用图片,现在就试试提交前先用base64,提交后,在后台处理编辑器内容中的&l ...
- Python struct与小端存储
参考链接:https://www.liaoxuefeng.com/wiki/1016959663602400/1017685387246080 在使用Python 实现字符向字节数据类型转换的时候,P ...