推出一个半月,斯坦福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的更多相关文章

  1. BERT模型在多类别文本分类时的precision, recall, f1值的计算

    BERT预训练模型在诸多NLP任务中都取得最优的结果.在处理文本分类问题时,即可以直接用BERT模型作为文本分类的模型,也可以将BERT模型的最后层输出的结果作为word embedding导入到我们 ...

  2. NLP句子表征,NLP 的巨人肩膀(下):从 CoVe 到 BERT (转载)

    深度长文:NLP的巨人肩膀(上):https://www.jiqizhixin.com/articles/2018-12-10-17 NLP 的巨人肩膀(下):从 CoVe 到 BERT: https ...

  3. 从Word Embedding到Bert模型—自然语言处理中的预训练技术发展史(转载)

    转载 https://zhuanlan.zhihu.com/p/49271699 首发于深度学习前沿笔记 写文章   从Word Embedding到Bert模型—自然语言处理中的预训练技术发展史 张 ...

  4. 【算法】Bert预训练源码阅读

    Bert预训练源码 主要代码 地址:https://github.com/google-research/bert create_pretraning_data.py:原始文件转换为训练数据格式 to ...

  5. 文本分类实战(十)—— BERT 预训练模型

    1 大纲概述 文本分类这个系列将会有十篇左右,包括基于word2vec预训练的文本分类,与及基于最新的预训练模型(ELMo,BERT等)的文本分类.总共有以下系列: word2vec预训练词向量 te ...

  6. 【译】BERT表示的可解释性分析

    目录 从词袋模型到BERT 分析BERT表示 不考虑上下文的方法 考虑语境的方法 结论 本文翻译自Are BERT Features InterBERTible? 从词袋模型到BERT ​ Mikol ...

  7. 【译】为什么BERT有3个嵌入层,它们都是如何实现的

    目录 引言 概览 Token Embeddings 作用 实现 Segment Embeddings 作用 实现 Position Embeddings 作用 实现 合成表示 结论 参考文献 本文翻译 ...

  8. 【译】深度双向Transformer预训练【BERT第一作者分享】

    目录 NLP中的预训练 语境表示 语境表示相关研究 存在的问题 BERT的解决方案 任务一:Masked LM 任务二:预测下一句 BERT 输入表示 模型结构--Transformer编码器 Tra ...

  9. 图解BERT(NLP中的迁移学习)

    目录 一.例子:句子分类 二.模型架构 模型的输入 模型的输出 三.与卷积网络并行 四.嵌入表示的新时代 回顾一下词嵌入 ELMo: 语境的重要性 五.ULM-FiT:搞懂NLP中的迁移学习 六.Tr ...

  10. 深入理解BERT Transformer ,不仅仅是注意力机制

    来源商业新知网,原标题:深入理解BERT Transformer ,不仅仅是注意力机制 BERT是google最近提出的一个自然语言处理模型,它在许多任务 检测上表现非常好. 如:问答.自然语言推断和 ...

随机推荐

  1. 17. 抽象建模能力&发散思维能力&综合(5)

    抽象建模能力 题一:[扑克牌顺子] LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽 ...

  2. Python进阶-XVI 继承 单继承 多继承

    一.初识继承 1.引入继承 class A(object): pass # 父类,基类,超类 class B: pass # 父类,基类,超类 class A_son(A, B): pass # 子类 ...

  3. 执行flutter doctor后,无任何反应

    flutter运行需要联网,并且由于qiang,会导致访问缓慢,解决办法 export PUB_HOSTED_URL=https://pub.flutter-io.cn export FLUTTER_ ...

  4. 洛谷P4173 残缺的字符串

    题目大意: 两个带通配符的字符串\(a,b\),求\(a\)在\(b\)中出现的位置 字符串长度\(\le 300000\) 考虑魔改一发\(kmp\),发现魔改不出来 于是考虑上网搜题解 然后考虑\ ...

  5. C# HTTP系列 HttpWebRequest 与 HttpWebResponse

    HTTP协议,即超文本传输协议(Hypertext transfer protocol).是一种详细规定了浏览器和万维网(WWW = World Wide Web)服务器之间互相通信的规则,通过因特网 ...

  6. Identity Server4资料

    https://www.cnblogs.com/cgzl/p/9405796.html https://www.cnblogs.com/cgzl/p/7780559.html https://clou ...

  7. Allure+pytest 生成测试报告

    简介: python 主流自动化测试报告插件有三个:HTMLTestRunner.BeautifulReport 和 Allure.HTMLTestRunner是一个比较古老的报告模板,界面也不是很好 ...

  8. java jdb

    https://stackoverflow.com/questions/8155253/how-do-i-compile-in-debug-mode-netbeans-java-maven <p ...

  9. 如何让 C# 在运行时自动选择合适的重载方法?

    如题:假设我们有一段代码: static void Main(string[] args) { ; // 假设这里的 obj 的值来自于外部方法 PrintType(obj); } public st ...

  10. 你不得不知的Golang线程模型 [转载]

    原著:翟陆续(加多) 资深Java , 著Java并发编程之美 一.前言 本节我们来探讨Go的线程模型,首先我们先来回顾下常见的三种线程模型,然后在介绍Go中独特的线程模型. 二.三种线程模型 线程的 ...