学习
实践
活动
专区
工具
TVP
写文章
专栏首页AI小白入门【NLP】Facebook提出的预训练模型BART

【NLP】Facebook提出的预训练模型BART

论文选自arXiv

作者:Mike Lewis等

机器之心编译

参与:魔王、一鸣

FaceBook 近日提出了一个名为BART的预训练语言模型。该模型结合双向和自回归 Transformer 进行模型预训练,在一些自然语言处理任务上取得了SOTA性能表现。

近日,Facebook 发表论文,提出一种为预训练序列到序列模型而设计的去噪自编码器 BART。BART 通过以下步骤训练得到:1)使用任意噪声函数破坏文本;2)学习模型来重建原始文本。BART 使用基于 Transformer 的标准神经机器翻译架构,可泛化 BERT(具备双向编码器)、GPT(具备从左至右的解码器)等近期出现的预训练模型,尽管它非常简洁。Facebook 研究人员评估了多种噪声方法,最终通过随机打乱原始句子的顺序,再使用新型文本填充方法(即用单个 mask token 替换文本段)找出最优性能。

BART 尤其擅长处理文本生成任务,不过它在理解任务中的性能也不错。在提供同等的训练资源时,BART 可在 GLUE 和 SQuAD 数据集上实现与 RoBERTa 相当的性能,并在抽象对话、问答和文本摘要等任务中获得新的当前最优结果,在 XSum 数据集上的性能比之前研究提升了 6 ROUGE。在机器翻译任务中,BART 在仅使用目标语言预训练的情况下,获得了比回译系统高出 1.1 个 BLEU 值的结果。研究人员还使用控制变量实验复制了 BART 框架内的其他预训练机制,从而更好地评估影响终端任务性能的最大因素。

论文链接:https://arxiv.org/pdf/1910.13461.pdf

引言

自监督方法在大量 NLP 任务中取得了卓越的成绩。近期研究通过改进 masked token 的分布(即 masked token 被预测的顺序)和替换 masked token 的可用语境,性能获得提升。然而,这些方法通常聚焦于特定类型和任务(如 span prediction、生成等),应用较为有限。

Facebook 的这项研究提出了新架构 BART,它结合双向和自回归 Transformer 对模型进行预训练。BART 是一个适用于序列到序列模型的去噪自编码器,可应用于大量终端任务。预训练包括两个阶段:1)使用任意噪声函数破坏文本;2)学得序列到序列模型来重建原始文本。BART 使用基于 Tranformer 的标准神经机器翻译架构,可泛化 BERT、GPT 等近期提出的预训练模型。

图 1a:BERT:用掩码替换随机 token,双向编码文档。由于缺失 token 被单独预测,因此 BERT 较难用于生成任务。

图 1b:GPT:使用自回归方式预测 token,这意味着 GPT 可用于生成任务。但是,该模型仅基于左侧上下文预测单词,无法学习双向交互。

图 1c:BART:编码器输入与解码器输出无需对齐,即允许任意噪声变换。使用掩码符号替换文本段,从而破坏文本。使用双向模型编码被破坏的文本(左),然后使用自回归解码器计算原始文档的似然(右)。至于微调,未被破坏的文档是编码器和解码器的输入,研究者使用来自解码器最终隐藏状态的表征。

模型

去噪自编码器 BART 可将被破坏文档映射至原始文档。它是一个具备双向编码器(对被破坏文本使用)和从左至右自回归解码器的序列到序列模型。至于预训练,研究人员优化了原始文档的负 log 似然。

架构

BART 使用 (Vaswani et al., 2017) 提出的标准序列到序列 Transformer 架构,不过做了少许改动:按照 GPT 模型,将 ReLU 激活函数更改为 GeLU,从 N (0, 0.02) 初始化参数。BART base 模型的编码器和解码器各有 6 层,large 模型中层数各增加到了 12。BART 架构与 BERT 所用架构类似,区别如下:1)解码器的每个层对编码器最终隐藏层额外执行 cross-attention(和 Transformer 序列到序列模型一样);2)BERT 在词预测之前使用了额外的前馈网络,而 BART 没有。总之,BART 相比同等规模的 BERT 模型大约多出 10% 的参数。

预训练 BART

BART 是通过破坏文档再优化重建损失(即解码器输出和原始文档之间的交叉熵)训练得到的。与目前仅适合特定噪声机制的去噪自编码器不同,BART 可应用于任意类型的文档破坏。极端情况下,当源文本信息全部缺失时,BART 也等同于语言模型。

  • token 掩码:按照 BERT 模型,BART 采样随机 token,并用掩码替换它们。
  • token 删除:从输入中随机删除 token。与 token 掩码不同,模型必须确定缺失输入的位置。

图 2:向输入添加不同的噪声变换。这些变换是可组合的。

  • 文本填充:采样多个文本段,文本段长度取决于泊松分布 (λ = 3)。用单个掩码 token 替换每个文本段。长度为 0 的文本段对应掩码 token 的插入。
  • 句子排列变换:按句号将文档分割成多个句子,然后以随机顺序打乱这些句子。
  • 文档旋转:随机均匀地选择 token,旋转文档使文档从该 token 开始。该任务的目的是训练模型识别文档开头。

BART 模型微调

序列分类任务

序列分类任务中,编码器和解码器的输入相同,最终解码器 token 的最终隐藏状态被输入到新的多类别线性分类器中。该方法与 BERT 中的 CLS token 类似,不过 BART 在解码器最后额外添加了一个 token,这样该 token 的表征可以处理来自完整输入的解码器状态(见图 3a)。

token 分类任务

对于 token 分类任务,研究人员将完整文档输入到编码器和解码器中,使用解码器最上方的隐藏状态作为每个单词的表征。该表征的用途是分类 token。

序列生成任务

由于 BART 具备自回归解码器,因此它可以针对序列生成任务进行直接微调,如抽象问答和摘要。在这两项任务中,信息复制自输入但是经过了处理,这与去噪预训练目标紧密相关。这里,编码器的输入是输入序列,解码器以自回归的方式生成输出。

机器翻译

研究人员用新的随机初始化编码器替换 BART 的编码器嵌入层。该模型以端到端的方式接受训练,即训练一个新的编码器将外来词映射到输入(BART 可将其去噪为英文)。新的编码器可以使用不同于原始 BART 模型的词汇。

源编码器的训练分两步,均需要将来自 BART 模型输出的交叉熵损失进行反向传播。第一步中,研究人员冻结 BART 的大部分参数,仅更新随机初始化的源编码器、BART 位置嵌入和 BART 编码器第一层的自注意力输入投影矩阵。第二步中,研究人员将所有模型参数进行少量迭代训练。

图 3:a:要想使用 BART 解决分类问题,编码器和解码器的输入要相同,使用最终输出的表征。b:对于机器翻译任务,研究人员训练一个额外的小型编码器来替换 BART 中的词嵌入。新编码器可使用不同的词汇。

结果

表 1:预训练目标对比。所有模型的训练数据都是书籍和维基百科数据。

表 2:大模型在 SQuAD 和 GLUE 任务上的结果。BART 的性能堪比 RoBERTa 和 XLNet,这表明 BART 的单向解码器层不会降低模型在判别任务上的性能。

表 3:在两个标准摘要数据集上的结果。在这两个摘要任务上,BART 在所有度量指标上的性能均优于之前的研究,在更抽象的 XSum 数据集上的性能较之前模型提升了 6 个百分点。

表 4:BART 在对话回答生成任务上的性能优于之前研究。困惑度基于 ConvAI2 官方 tokenizer 进行了重新归一化。

表 5:BART 在难度较高的 ELI5 抽象问答数据集上取得了当前最优结果。

表 6:BART 和基线模型在机器翻译任务上(使用数据集包括 WMT‘16 RO-EN 和回译数据)的性能对比情况。BART 使用单语英文预训练,性能优于强大的回译基线模型。

The End

文章分享自微信公众号:
AI小白入门

本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!

原始发表时间:2019-11-18
如有侵权,请联系 cloudcommunity@tencent.com 删除。
登录 后参与评论
0 条评论

相关文章

  • 多项NLP任务新SOTA,Facebook提出预训练模型BART​

    近日,Facebook 发表论文,提出一种为预训练序列到序列模型而设计的去噪自编码器 BART。BART 通过以下步骤训练得到:1)使用任意噪声函数破坏文本;2...

    机器之心
  • 生成式预训练模型之BART

    每天给你送来NLP技术干货! ---- 写在前面 在文本理解任务(Natural Language Understanding)上,预训练模型已经取得了质的飞跃...

    zenRRan
  • 【NLP】预训练模型综述

    摘要:近年来,预训练模型的出现将自然语言处理带入了一个新的时代。本文概述了面向自然语言处理领域的预训练模型技术。我们首先概述了预训练模型及其发展历史。并详细介绍...

    黄博的机器学习圈子
  • 预训练模型,NLP的版本答案!

    问题其实很多,模型训练慢,一个月迭代一次很正常(现在做业务,两周就要有一轮迭代),显卡内存动不动就给爆了。

    NewBeeNLP
  • 【NLP】ALBERT:更轻更快的NLP预训练模型

    目前在NLP领域,出彩的预训练模型的新工作,几乎都是基于BERT的改进,前面我们就介绍了XLNET。今天我来介绍一个更新的工作,相比于BERT,它更轻量,效果也...

    用户1508658
  • 跨语言版BERT:Facebook提出跨语言预训练模型XLM

    项目地址:https://github.com/facebookresearch/XLM

    机器之心
  • NLP预训练模型大集合

    词语和句子嵌入已经成为任何基于深度学习的自然语言处理系统的必备组成部分。它们将词语和句子编码成稠密的定长向量,从而大大地提升神经网络处理文本数据的能力。近日,S...

    昱良
  • 【NLP专栏】图解 BERT 预训练模型!

    审稿人:Jepson,Datawhale成员,毕业于中国科学院,目前在腾讯从事推荐算法工作。

    zenRRan
  • Facebook新模型SEER|图像预训练的内卷

    前几天FAIR发了一个新的图像预训练模型 SEER,看完论文之后我不禁感叹,不仅我企图往多模态卷,Facebook自己也卷起来了。

    abs_zero
  • 【论文笔记】NLP 预训练模型综述

    Pre-trained Models for Natural Language Processing: A Survey 花了一上午看完的综述,强烈推荐每个 N...

    zenRRan
  • 从零训练一个超越预训练的NLP模型

    本文基于Arxiv上的一篇论文NLP From Scratch Without Large-Scale Pretraining: A Simple and Ef...

    mathor
  • NLP领域预训练模型的现状及分析

    小牛翻译,核心成员来自东北大学自然语言处理实验室,由姚天顺教授创建于1980年,现由朱靖波教授、肖桐博士领导,长期从事计算语言学的相关研究工作,主要包括机器翻译...

    AI科技评论
  • 「NLP」关于BERT预训练模型资源分享(上)

    资源地址:https://github.com/yuanxiaosc/BERT_Paper_Chinese_Translation

    ShuYini
  • 腾讯云NLP大模型预训练最佳实践

    根据当前人工智能的趋势,越大的自然语言模型可以提供越好的准确性,目前GPT-3的模型参数达到175B。但是由于成本、时间和代码集成的障碍,较大的模型难以训练。

    TI MAKER
  • 13亿参数,无标注预训练实现SOTA:Facebook提出自监督CV新模型

    近日,Facebook 宣布了一项重要新工作:他们提出的自监督 AI 模型 SEER 能够在没有人类手动标注的情况下,从 10 亿张来自 Instagram 的...

    机器之心
  • 中文预训练模型!| 哈工大 && 科大讯飞 提出多任务预训练模型LERT(含源码)

    哈工大&讯飞提出了一种新的预训练语言模型LERT,该模型结合了三种语言特征,与掩模语言模型一起进行多任务预训练。实验结果显示,LERT算法能够显著提高各种预...

    ShuYini
  • 最强 NLP 预训练模型库 PyTorch-Transformers 正式开源:支持 6 个预训练框架,27 个预训练模型

    该项目支持 BERT, GPT, GPT-2, Transfo-XL, XLNet, XLM 等,并包含 27 个预训练模型。

    机器学习AI算法工程
  • nlp中各中文预训练模型的输入和输出

    西西嘛呦
  • ELECTRA: 超越BERT, 19年最佳NLP预训练模型

    ELECTRA的全称是Efficiently Learning an Encoder that Classifies Token Replacements Ac...

    Datawhale

扫码关注腾讯云开发者

领取腾讯云代金券