谷歌BERT模型狂破11项纪录,全面超越人类

  • 时间:
  • 浏览:1
  • 来源:5分赛车网投平台-5分时时彩投注平台_大发6合娱乐平台

来源:新智元(AI_era)

(来源:arXiv、知乎;编辑:新智元编辑部)

今天,NLP(自然语言处理)领域取得最重大突破!谷歌AI团队新发布的BERT模型,在机器阅读理解顶级水平测试SQuAD1.1中表现出惊人的成绩:完整一一还还有一个 多衡量指标上全面超越人类,而是 还在11种不同NLP测试中创出最佳成绩。毋庸置疑,BERT模型开启了NLP的新时代!

今天请记住BERT模型你这个名字。

谷歌AI团队新发布的BERT模型,在机器阅读理解顶级水平测试SQuAD1.1中表现出惊人的成绩:完整一一还还有一个 多衡量指标上全面超越人类!而是 还在11种不同NLP测试中创出最佳成绩,包括将GLUE基准推至500.4%(绝对改进7.6%),MultiNLI准确度达到86.7%(绝对改进率5.6%)等。

谷歌团队的Thang Luong直接定义:BERT模型开启了NLP的新时代!

本文从论文解读、BERT模型的成绩以及业界的评价三方面做介绍。

硬核阅读:认识BERT的新语言表示模型

首先来看下谷歌AI团队做的这篇论文。

论文地址:

https://arxiv.org/abs/1810.045005

BERT的新语言表示模型,它代表Transformer的双向编码器表示。与最近的或多或少语言表示模型不同,BERT旨在通过联合调节所有层中的上下文来预先训练高度双向表示。而是 ,预训练的BERT表示还可不都可以 通过一一一还还有一个 多额外的输出层进行微调,适用于广泛任务的最先进模型的构建,比如问答任务和语言推理,无需针对具体任务做大幅架构修改。

论文作者认为现有的技术严重制约了预训练表示的能力。其主要局限在于标准语言模型是单向的,这使得在模型的预训练中还可不都可以 使用的架构类型很有限。

在论文中,作者通过提出BERT:即Transformer的双向编码表示来改进基于架构微调的最好的办法。

BERT提出两种新的预训练目标:遮蔽语言模型(masked language model,MLM),来克服上文提到的单向性局限。MLM的灵感来自Cloze任务(Taylor, 1953)。MLM随机遮蔽模型输入中的或多或少token,目标在于仅基于遮蔽词的语境来预测其原始词汇id。

与从左到右的语言模型预训练不同,MLM目标允许表征融合左右两侧的语境,从而预训练一一一还还有一个 多高度双向Transformer。除了遮蔽语言模型之外,本文作者还引入了一一一还还有一个 多“下一句预测”(next sentence prediction)任务,还可不都可以 和MLM共同预训练文本对的表示。

论文的核心:详解BERT模型架构

本节介绍BERT模型架构和具体实现,并介绍预训练任务,这是这篇论文的核心创新。

模型架构

BERT的模型架构是基于Vaswani et al. (2017)中描述的原始实现multi-layer bidirectional Transformer编码器,并在tensor2tensor库中发布。愿因 Transformer的使用最近变得无处没法,论文中的实现与原始实现完整相同,而是 这里将省略对模型形态学 的完整描述。

在这项工作中,论文将层数(即Transformer blocks)表示为L,将隐藏大小表示为H,将self-attention heads的数量表示为A。在所有情況下,将feed-forward/filter的大小设置为4H,即H = 768时为50072,H = 1024时为4096。论文主要报告了两种模型大小的结果:

为了进行比较,论文选取,它与OpenAI GPT具有相同的模型大小。然而,重要的是,BERT Transformer使用双向self-attention,而GPT Transformer使用受限制的self-attention,其中每个token只有处理其左侧的上下文。研究团队注意到,在文献中,双向Transformer通常被称为“Transformer encoder”,而左侧上下文被称为“Transformer decoder”,愿因 它还可不都可以 用于文本生成。BERT,OpenAI GPT和ELMo之间的比较如图1所示。

图1:预训练模型架构的差异。BERT使用双向Transformer。OpenAI GPT使用从左到右的Transformer。ELMo使用经过独立训练的从左到右和从右到左LSTM的串联来生成下游任务的形态学 。一一还还有一个 多模型中,只有BERT表示在所有层中共同依赖于左右上下文。

输入表示(input representation)

论文的输入表示(input representation)可不都可以在一一一还还有一个 多token序列中明确地表示单个文本句子或一对文本句子(例如 ,[Question, Answer])。对于给定token,其输入表示通过对相应的token、segment和position embeddings进行求和来构造。图2是输入表示的直观表示:

图2:BERT输入表示。输入嵌入是token embeddings, segmentation embeddings和position embeddings的总和。

具体如下:

关键创新:预训练任务

与Peters et al. (2018)和Radford et al. (2018)不同,论文不使用传统的从左到右或从右到左的语言模型来预训练BERT。相反,使用一一还还有一个 多新的无监督预测任务对BERT进行预训练。

任务1: Masked LM

从直觉上看,研究团队有理由相信,高度双向模型比left-to-right模型或left-to-right and right-to-left模型的浅层连接更强大。遗憾的是,标准条件语言模型只有从左到右或从右到左进行训练,愿因 双向条件作用将允许每个单词在多层上下文上方接地“see itself”。

为了训练一一一还还有一个 多高度双向表示(deep bidirectional representation),研究团队采用了两种简单的最好的办法,即随机屏蔽(masking)部分输入token,而是 只预测哪此被屏蔽的token。论文将你这个过程称为“masked LM”(MLM),尽管在文献中它一个劲 被称为Cloze任务(Taylor, 1953)。

在你这个例子中,与masked token对应的最终隐藏向量被输入到词汇表上的输出softmax中,就像在标准LM中一样。在团队所有实验中,随机地屏蔽了每个序列中15%的WordPiece token。与去噪的自动编码器(Vincent et al.,5008)相反,只预测masked words而都有重建整个输入。

着实这着实能让团队获得双向预训练模型,但你这个最好的办法有一一还还有一个 多缺点。首先,预训练和finetuning之间不匹配,愿因 在finetuning期间从未想看 [MASK]token。为了处理你这个问提,团队并不一个劲 用实际的[MASK]token替换被“masked”的词汇。相反,训练数据生成器随机选取15%的token。例如 在你这个句子“my dog is hairy”中,它选取的token是“hairy”。而是 ,执行以下过程:

数据生成器将执行以下操作,而都有始终用[MASK]替换所选单词:

Transformer encoder告诉我它将被要求预测哪此单词或哪此单词已被随机单词替换,而是 它被迫保持每个输入token的分布式上下文表示。此外,愿因 随机替换只居于在所有token的1.5%(即15%的10%),这似乎无需损害模型的语言理解能力。

使用MLM的第还还有一个缺点是每个batch只预测了15%的token,这表明模型愿因 都要更多的预训练步骤可不都可以收敛。团队证明MLM的收敛时延略慢于left-to-right的模型(预测每个token),但MLM模型在实验上获得的提升远远超过增加的训练成本。

任务2:下一句预测

或多或少重要的下游任务,如问答(QA)和自然语言推理(NLI)都有基于理解一一还还有一个 多句子之间的关系,这并没法通过语言建模直接获得。

在为了训练一一一还还有一个 多理解句子的模型关系,预先训练一一一还还有一个 多二进制化的下一句测任务,你这个任务还可不都可以 从任何单语语料库中生成。具体地说,当选取句子A和B作为预训练样本时,B有500%的愿因 是A的下一一一还还有一个 多句子,都有500%的愿因 是来自语料库的随机句子。例如 :

Input = [CLS] the man went to [MASK] store [SEP]

he bought a gallon [MASK] milk [SEP]

Label = IsNext

Input = [CLS] the man [MASK] to the store [SEP]

penguin [MASK] are flight ##less birds [SEP]

Label = NotNext

团队完整随机地选取了NotNext句子,最终的预训练模型在此任务上实现了97%-98%的准确率。

实验结果

如前文所述,BERT在11项NLP任务中刷新了性能表现记录!在你这个节中,团队直观呈现BERT在哪此任务的实验结果,具体的实验设置和比较请阅读原论文。

图3:亲戚亲戚或多或少人的面向特定任务的模型是将BERT与一一一还还有一个 多额外的输出层结合而形成的,而是 都要从头开始英文英语 学习最小数量的参数。在哪此任务中,(a)和(b)是序列级任务,而(c)和(d)是token级任务。在图中,E表示输入嵌入,Ti表示tokeni的上下文表示,[CLS]是用于分类输出的特殊符号,[SEP]是用于分隔非连续token序列的特殊符号。

图4:GLUE测试结果,由GLUE评估服务器给出。每个任务下方的数字表示训练样例的数量。“平均”一栏中的数据与GLUE官方评分稍有不同,愿因 亲戚亲戚或多或少人排除了有问提的WNLI集。BERT和OpenAI GPT的结果是单模型、单任务下的数据。所有结果来自https://gluebenchmark.com/leaderboard和https://blog.openai.com/language-unsuper  vised/

图5:SQuAD结果。BERT集成是使用不同预训练检查点和微调种子(fine-tuning seed)的7x系统。

图6:CoNLL-5003命名实体识别结果。超参数由开发集选取,得出的开发和测试分数是使用哪此超参数进行五次随机重启的平均值。

超过人类表现,BERT刷新了11项NLP任务的性能记录

论文的主要贡献在于:

BERT目前愿因 刷新的11项自然语言处理任务的最新记录包括:将GLUE基准推至500.4%(绝对改进7.6%),MultiNLI准确度达到86.7%(绝对改进率5.6%),将SQuAD v1.1问答测试F1得分纪录刷新为93.2分(绝对提升1.5分),超过人类表现2.0分。

BERT模型重要意义:否认NLP范式的改变

北京航空航天大学计算机专业博士吴俣在知乎上写道:BERT模型的地位例如 于ResNet在图像,这是里程碑式的工作,否认着NLP范式的改变。事先研究工作估计全都有都有使用他初始化,就像事先亲戚亲戚或多或少人使用word2vec一样自然。

BERT一出,那几个他论文里做实验的数据集全被轰平了,亲戚亲戚或多或少人洗洗睡了。心疼swag一秒钟,再次出现3月,第一篇做你这个数据集的算法,在超了baseline 20多点的共同也超过人了。

通过BERT模型,吴俣有一一还还有一个 多认识:

1、Jacob在细节上是一等一的高手

你这个模型的双向和Elmo不一样,大部分人对论文作者之一Jacob的双向在novelty上的contribution的大小有误解,着实你这个细节愿因 是他比Elmo显著提升的愿因 。Elmo是拼一一一还还有一个 多左到右和一一一还还有一个 多右到左,他你这个是训练中直接开一一一还还有一个 多窗口,用了个有顺序的cbow。

2、Reddit对跑一次BERT的价格讨论

For TPU pods:

4 TPUs * ~$2/h (preemptible) * 24 h/day * 4 days = $768 (base model)

16 TPUs = ~$3k (large model)

For TPU:

16 tpus * $8/hr * 24 h/day * 4 days = 12k

64 tpus * $8/hr * 24 h/day * 4 days = 500k

For GPU:

"BERT-Large is 24-layer, 1024-hidden and was trained for 40 epochs over a 3.3 billion word corpus. So maybe 1 year to train on 8 P5000s? "

3、不幸的是,基本无法复现,全都有模型和数据谁更有用全都我好说。

BERT的成功也说明,好的高度学习研究工作的三大条件:数据,计算资源,工程技能点很高的研究员(Jacob在微软事先,就以单枪匹马搭大系统,而中外闻名)。