BART论文解读:BERT和GPT结合起来会发生什么?

BART:Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translation, and Comprehension

主要工作

  • 提出了BART (Bidirectional and Auto-Regressive Transformers), 是一种用于自然语言生成、翻译和理解的序列到序列的预训练方法。它通过先用任意噪声函数损坏文本,然后学习一个模型来重构原始文本来进行训练。BART使用标准的基于Transformer的神经机器翻译架构,结合了BERT的双向编码器和GPT的从左到右解码器的特点。

  • 研究发现,BART在文本生成任务中表现尤为出色,同时也适用于理解任务。它在GLUE和SQuAD任务中与RoBERTa表现相当,并在一系列抽象的对话、问答和摘要任务中取得了新的最先进结果,显示出高达6 ROUGE的增益。此外,BART还在机器翻译任务中表现出色,比只使用目标语言进行预训练的反向翻译系统提高了1.1 BLEU分。

image.png
图 1:BART 与 BERT和的示意性比较。

模型

BART 是一个去噪自编码器,它将受损的文档映射回其来源的原始文档。这个模型以序列到序列的形式实现,具有对受损文本的双向编码器和一个从左到右的自回归解码器。在预训练阶段,我们优化原始文档的负对数似然。

架构

BART 使用了标准的序列到序列变换器(Transformer)架构,但是有所改动。继承自GPT的一个修改是,它将ReLU激活函数替换为GeLUs(Hendrycks & Gimpel, 2016),并且将参数初始化为N(0, 0.02)。在我们的基础模型中,编码器和解码器各使用了6层,而在我们的大型模型中,每个部分各使用了12层。这种架构与BERT使用的架构密切相关,但存在以下差异:(1)解码器的每一层还会对编码器的最后一个隐藏层进行交叉关注(如在Tansformer sequence-to-sequence模型中所做的那样);以及(2)BERT在单词预测前使用了一个额外的前馈网络,而BART没有使用。总体而言,BART比同等大小的BERT模型包含大约多10%的参数。

预训练

BART 通过破坏文档然后优化重建损失来进行训练,重建损失是解码器输出和原始文档之间的交叉熵。不同于现有的针对特定噪声方案定制的去噪自编码器,BART 允许我们应用任何类型的文档破坏方式。在极端情况下,即源信息完全丢失时,BART 相当于一个语言模型。

我们试验了几种先前提出的和新颖的转换方法,但我们认为开发其他新的替代方案仍有重大潜力。我们使用的转换方法在下面进行了总结,示例显示在图2中。

image.png
图 2:我们实验的输入噪声的转换。这些变换可以组合起来。

Token Masking(令牌遮蔽)
遵循BERT(Devlin等人,2019年)的方法,随机采样令牌并将其替换为[MASK]元素。

Token Deletion(令牌删除)
从输入中随机删除令牌。与令牌遮蔽不同,模型必须决定哪些位置缺少输入。

Text Infilling(文本填充)
采样一定数量的文本跨度(span),这些跨度的长度根据泊松分布(λ=3)确定。每个跨度被单个[MASK]令牌替换。0长度的跨度对应于插入[MASK]令牌。文本填充的灵感来自SpanBERT(Joshi等人,2019年),但SpanBERT采样不同的分布来确定跨度长度,并用长度完全相同的一系列[MASK]令牌替换每个跨度。文本填充教会模型预测每个跨度中缺少多少个令牌。

Sentence Permutation(句子置换)
将文档分割为基于句号的句子,并将这些句子随机打乱顺序。

Document Rotation(文档旋转)
均匀随机选择一个令牌,并旋转文档,使其从该令牌开始。这项任务训练模型识别文档的开始部分。

微调

BART 生成的表示可以通过多种方式用于下游应用程序。

image.png
图 3:微调 BART 以进行分类和翻译。

序列分类任务
对于序列分类任务,相同的输入被送入编码器和解码器,最后一个解码器令牌的最终隐藏状态被送入一个新的多类别分类器。这种方法与BERT中的CLS令牌有关,但我们在末尾增加了一个额外的令牌,使得解码器可以关注完整输入的解码器状态(见图3a)。

Tokens分类任务
对于令牌分类任务,例如SQuAD的答案端点分类,我们将完整的文档送入编码器和解码器,并使用解码器顶层的隐藏状态作为每个词的表征。这个表征被用来对令牌进行分类。

序列生成任务
由于BART拥有一个自回归解码器,它可以直接进行微调以用于序列生成任务,如抽象的问答和总结。在这些任务中,信息是从输入中复制的,但进行了操纵,这与去噪预训练目标密切相关。在这里,编码器的输入是输入序列,解码器自回归地生成输出。

机器翻译
我们还探索使用BART来改进机器翻译解码器以翻译成英语。以前的工作Eduonov等人(2019年)表明,通过加入预训练的编码器可以改进模型,但从使用预训练的语言模型中的解码器中获得的收益有限。我们展示了使用整个BART模型(编码器和解码器)作为机器翻译的单一预训练解码器是可能的,通过添加一组从双语文本中学习到的新编码器参数(见图3b)。
更准确地说,我们用一个新的随机初始化的编码器替换了BART的编码器嵌入层。模型进行端到端训练,这训练了新的编码器将外语词映射为BART可以将其去噪为英语的输入。新的编码器可以使用与原始BART模型不同的词汇表。
我们分两步训练源编码器,在两种情况下都将交叉熵损失从BART模型的输出中反向传播。在第一步,我们冻结了大部分BART参数,只更新随机初始化的源编码器,BART的位置嵌入,以及自注意力输入投影矩阵的BART编码器的第一层。在第二步,我们为少量迭代训练所有模型参数。

比较预训练目标

比较目标

尽管提出了许多预训练目标,但由于训练数据、训练资源、模型之间的架构差异以及微调程序的不同,对这些目标进行公平比较一直是困难的。我们重新实现了最近为判别和生成任务提出的强大预训练方法。我们的目标是尽可能地控制与预训练目标无关的差异。然而,为了提高性能,我们确实对学习率和层归一化的使用进行了微小的改变(分别针对每个目标进行调整)。作为参考,我们将我们的实现与BERT的公开数据进行了比较,BERT也是在结合了书籍和维基百科数据的基础上训练了100万个step。我们比较了以下方法:

语言模型 类似于GPT(Radford等人,2018年),我们训练了一个从左到右的Transformer语言模型。这个模型相当于BART解码器,但没有交叉注意力。

排列语言模型 基于XLNet(Yang等人,2019年),我们对1/6的token进行采样,并且自回归地以随机顺序生成它们。为了与其他模型保持一致,我们没有实现XLNet中的相对位置嵌入或跨段落的注意力。

掩蔽语言模型 跟随BERT(Devlin等人,2019年),我们用[MASK]符号替换了15%的token,并训练模型独立预测原始token。

多任务掩蔽语言模型 如UniLM(Dong等人,2019年)所示,我们训练了一个带有额外自注意力掩蔽的掩蔽语言模型。自注意力掩蔽是随机选择的,遵循以下比例:1/6从左到右,1/6从右到左,1/3未掩蔽,以及1/3前50%的token未掩蔽并对其余部分施加从左到右的掩蔽。

掩蔽序列到序列 受到MASS(Song等人,2019年)的启发,我们掩蔽了包含50%的token的跨度,并训练一个序列到序列模型来预测被掩蔽的token。

对于排列LM、掩蔽LM和多任务掩蔽LM,我们使用双流注意力(Yang等人,2019年)来高效计算输出序列的可能性(使用对角线自注意力掩蔽在输出上预测从左到右的词)。

我们进行了实验:(1)将任务视为标准的序列到序列问题,其中编码器的源输入和目标是解码器输出,或者(2)在解码器中将源作为前缀添加到目标中,仅在序列的目标部分上有损失。我们发现前者对于BART模型效果更好,而后者对其他模型效果更好。为了最直接地比较我们的模型在建模其微调目标(人类文本的对数似然)的能力上的表现,我们在表1中报告了困惑度。

image.png
表 1:预训练目标比较。所有模型的大小都相当,并且结合书籍和维基百科数据进行了 100 万步的训练。底部两个块中的条目使用相同的代码库对相同的数据进行训练,并使用相同的过程进行微调。第二块中的条目受到之前工作中提出的预训练目标的启发,但已被简化以专注于评估目标。不同任务的性能差异很大,但带有文本填充的 BART 模型表现出最一致的强大性能。

任务

SQuAD(Rajpurkar等,2016年)是一个在维基百科段落上进行的抽取式问答任务。答案是从给定文档内容中抽取的文本跨度。类似于BERT(Devlin等,2019年),我们使用连接的问题和上下文作为编码器的输入,同时也传递给解码器。该模型包括分类器来预测每个token的开始和结束索引。

MNLI(Williams等,2017年)是一个双文本分类任务,用于预测一句话是否蕴含另一句话。微调后的模型连接这两个句子,在EOS token后追加,然后将它们传递给BART的编码器和解码器。与BERT不同,EOS token的表示用于分类句子关系。

ELI5(Fan等,2019年),一个长篇抽象问答数据集。模型生成的答案基于问题和支持文档的连接。

XSum(Narayan等,2018年),一个具有高度概括性摘要的新闻摘要数据集。

ConvAI2(Dinan等,2019年),一个对话响应生成任务,以上下文和角色为条件。

CNN/DM(Hermann等,2015年),一个新闻摘要数据集。这里的摘要通常与源句子紧密相关。

结果

结果显示在表1中。几个趋势很明显:

预训练方法的性能在不同任务上有显著差异。预训练方法的有效性高度依赖于任务。例如,一个简单的语言模型在ELI5任务上表现最好,但在SQuAD任务上结果最差。

掩码标记至关重要。基于文档旋转或句子置换的预训练目标在单独使用时表现不佳。成功的方法要么使用token删除或掩码,要么使用自注意力掩码。在生成任务上,删除似乎比掩码更有效。

从左到右的预训练提高了生成性能。掩蔽语言模型和排列语言模型在生成上的表现不如其他模型,并且是我们考虑的唯一不包括从左到右自回归语言建模的预训练模型。

双向编码器对于SQuAD至关重要。正如之前的工作(Devlin等,2019年)所指出的,仅从左到右的解码器在SQuAD上表现不佳,因为未来上下文在分类决策中至关重要。然而,BART在仅有一半双向层的情况下实现了类似的性能。

预训练目标并非唯一重要因素。我们的排列语言模型表现不如XLNet(Yang等,2019年)。这种差异可能是由于没有包括其他的架构改进,比如相对位置嵌入或段落级递归。

纯粹的语言模型在ELI5上表现最好。ELI5数据集是一个异常值,其困惑度远高于其他任务,并且是唯一其他模型超越BART的生成任务。一个纯粹的语言模型表现最好,这表明当输出只是松散受输入约束时,BART的效果不佳。

BART实现了最一致的强大性能。除了ELI5之外,使用文本填充的BART模型在所有任务上都表现良好。

这些论文段落的翻译如下:

大规模预训练实验

最近的研究表明,当预训练扩大到大批量大小和语料库时,下游任务的性能可以得到显著提升(Yang等,2019年;Liu等,2019年)。为了测试BART在这种范围内的性能,并且为下游任务创建一个有用的模型,我们使用与RoBERTa模型相同的规模来训练BART。

实验设置

我们预训练了一个大型模型,在编码器和解码器中各有12层,隐层大小为1024。跟随RoBERTa(Liu等,2019年)的做法,我们使用8000的批量大小,并训练模型500000步。文档被同GPT-2(Radford等,2019年)一样的字节对编码进行分词。基于第4节的结果,我们使用文本填充和句子排列的组合。我们在每个文档中掩蔽30%的token,并排列所有句子。尽管句子排列只在与其他方法结合时显示出显著的累积收益。

在CNN/DM摘要数据集上,我们假设更大的预训练模型可能更能从这个任务中学习。为了帮助模型更好地适应数据,我们在训练的最后10%的步骤中禁用了dropout。我们使用与Liu等人(2019年)相同的预训练数据,包括160GB的新闻、书籍、故事和网络文本。

区分性任务

表2比较了BART在众所周知的SQuAD和GLUE任务上与几种最近方法的性能(Warstadt等,2018年;Socher等,2013年;Dolan & Brockett,2005年;Aguirre等,2007年;Williams等,2018年;Dagan等,2006年;Levesque等,2011年)。最直接可比的基线是RoBERTa,它是用相同的资源但不同目标进行预训练的。总的来说,BART的性能与其他模型相似,模型之间的差异很小,这表明BART在生成任务上的改进并不以牺牲分类性能为代价。

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

生成任务

我们还尝试了几个文本生成任务。BART被微调为标准的序列到序列模型,从输入到输出文本。在微调期间,我们使用一个带标签平滑的交叉熵损失(Pereyra等,2017年),平滑参数设置为0.1。在生成时,我们将beam大小设置为5,移除beam搜索中的重复三元组,并调整了模型的最小长度、最大长度、长度惩罚,在验证集上(Fan等,2017年)。

摘要

为了与当前摘要任务的最新技术进行比较,我们在两个具有不同特点的摘要数据集CNN/DailyMail和XSum上展示了结果。

CNN/DailyMail中的摘要倾向于与源句子相似。抽取式模型在这里做得很好,甚至仅用前三个源句子作为基线的表现也非常有竞争力。尽管如此,BART在所有已有的工作中表现最好。

相比之下,XSum高度概括,抽取式模型表现不佳。BART在所有ROUGE指标上大约比利用BERT的最佳前作提高了6.0分,这代表了在这一问题上性能的重大进步。在质量上,样本的质量很高(见第6节)。

image.png
表 3:两个标准汇总数据集的结果。 BART 在两项任务和所有指标的总结方面优于之前的工作,在更抽象的数据集上获得了大约 6 个点的收益。

对话

我们评估了在ConvAI2(Dinan等,2019年)上的对话响应生成,在该任务中,代理必须生成基于先前上下文和文本指定的人物的响应。BART在两个自动化指标上超越了先前的工作。

image.png
表 4:BART 优于之前在对话响应生成方面的工作。基于 ConvAI2 的官方分词器重新规范化困惑度。

抽象式问答

我们使用最近提出的ELI5数据集来测试模型生成长篇自由形式回答的能力。我们发现BART在ROUGE-L上比之前最好的工作高出1.2分,但数据集仍然具有挑战性,因为答案仅由问题弱指定。

image.png
表 5:BART 在具有挑战性的 ELI5 抽象问答数据集上取得了最先进的结果。比较模型来自 Fan 等人。 (2019)。

翻译

我们还评估了在WMT16罗马尼亚-英语翻译任务上的表现,并用Sennrich等人(2016年)的反向翻译数据增强。我们使用一个6层的transformer源编码器将罗马尼亚语映射到BART能够去噪成英语的表示,遵循第3.4节介绍的方法。实验结果呈现在表6中。我们将我们的结果与Vaswani等人(2017年)提出的基线Transformer架构进行了比较,使用了Transformer的大规模设置(基线行)。我们展示了我们模型两个步骤在固定BART和调整后的BART行的性能。对于每一行,我们在原始的WMT16罗马尼亚-英语数据上进行实验,并用反向翻译数据增强。我们使用了一个宽度为5的beam和一个长度惩罚α=1。初步结果表明,我们的方法在没有反向翻译数据的情况下效果不佳,并且容易过拟合——未来的工作应该探索额外的正则化技术。
image.png
表 6:WMT’16 RO-EN 上基线和 BART 的性能 (BLEU),并用反向翻译数据增强。 BART 通过使用单语英语预训练,在强大的反向翻译 (BT) 基线上进行了改进。

定性分析

BART在摘要指标上显示出大幅度的提升,相比之前的最先进技术高出多达6分。为了理解BART在自动化指标之外的表现,我们定性地分析了它的生成文本。

表7展示了BART生成的摘要示例。示例取自WikiNews文章,这些文章在预训练语料库创建之后发布,以排除模型训练数据中描述的事件出现在模型训练数据中的可能性。跟随Narayan等人(2018年)的做法,我们在总结之前移除了文章的第一句话,所以不会有简单的抽取式摘要。

不出所料,模型输出流畅且语法正确。然而,模型输出也高度概括,从输入中复制的短语很少。输出通常也是事实上准确的,并且结合了来自输入文档的支持证据和背景知识(例如,正确完成名称,或推断PG&E在加利福尼亚州运营)。在第一个例子中,推断鱼类保护珊瑚礁免受全球变暖影响需要从文本中进行非平凡的推理。然而,声称该工作发表在《科学》杂志上的说法并未得到来源的支持。

这些样本展示了BART预训练学习到了自然语言理解和生成的强大组合。
image.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/231800.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

stable diffusion 基础教程-提示词之光的用法

基图 prompt: masterpiece,best quality,1girl,solo,looking at viewer,brown hair,hair between eyes,bangs,very long hair,red eyes,blush,bare shoulders,(white sundress),full body,Negative prompt: EasyNegative,badhandv4,nsfw,lowres,bad anatomy,bad hands,text…

【DevOps-07-2】Sonarqube基本使用

一、简要说明 Sonar Qube的使用方式很多,Maven可以整合,也可以采用sonar-scanner的方式,再查看Sonar Qube的检测效果 Sonarqube集成在Maven实现代码检测使用sonar-scanner客户端的方式 二、Sonarqube管理后台安装中文插件 1、登录Sonarqube管…

数据结构和算法-插入排序(算法效率 折半优化 顺序表与链表插入排序 代码实现)

文章目录 插入排序算法实现算法效率分析优化-折半插入排序代码实现对链表进行插入排序小结 插入排序 首先49当作第一个已经排好序得元素,将第二个元素与前面得元素对比,发现小于49,于是49移动位置 此时将65与之前元素对比,发现其…

C语言编译器(C语言编程软件)完全攻略(第二部分:与编译器相关的几个知识点)

介绍常用C语言编译器的安装、配置和使用。 二、与编译器相关的几个知识点 上节我们介绍了编译器和 IDE 的概念,大家肯定希望赶紧实践一下,用 IDE 真正地运行一段C语言代码来看看效果,这样能够更快地获得成就感。 但是,使用 IDE …

Linux第20步_在虚拟机上安装“Visual Studio Code”

1、双击windows系统桌面上的“FileZilla Client.exe”,打开FTP客户端,点击03软件下的Visual Studio Code,发现code_1.50.1-1602600906_amd64。 2、点击“文件”,然后点击“站点管理器”,见下图操作: 3、点…

vr体验馆用什么软件计时计费,如遇到停电软件程序如何恢复时间

vr体验馆用什么软件计时计费,如遇到停电软件程序如何恢复时间 一、软件程序问答 如下图,软件以 佳易王vr体验馆计时计费软件V17.9为例说明 1、软件如何计时间? 点击相应编号的开始计时按钮即可 2、遇到停电再打开软件时间可以恢复吗&…

在 Oracle 数据库表中加载多个数据文件

在本文中,我将展示 SQL 加载器 Unix 脚本实用程序的强大功能,其中 SQL 加载器可以使用自动 shell 脚本加载多个数据文件。这在处理大量数据以及需要将数据从一个系统移动到另一个系统时非常有用。 它适合涉及大量历史数据的迁移项目。那么就不可能为每…

自然语言处理24-T5模型的介绍与训练过程,利用简单构造数据训练微调该模型,体验整个过程

大家好,我是微学AI,今天给大家介绍一下自然语言处理24-T5模型的介绍与训练过程,利用简单构造数据训练微调该模型,体验整个过程。在大模型ChatGPT发布之前,NLP领域是BERT,T5模型为主导,T5(Text-to-Text Transfer Transformer)是一种由Google Brain团队在2019年提出的自然…

大数据概念:数据网格和DataOps

数据网格(Data Mesh) 一种新型的数据架构模式,旨在解决传统数据架构中存在的一些问题,例如数据孤岛、数据冗余、数据安全等。数据网格将数据作为一种服务,通过在分布式环境中提供数据服务,实现数据的共享和…

多内层神经网络具有先天的不可解释性

多层神经网络的不可解释性是指其内部的决策过程很难被人类理解和解释。这主要是因为多层神经网络具有大量的神经元和多个层次的连接,使得网络的决策过程变得非常复杂。 具体而言,多层神经网络中每一层的神经元会根据输入的特征进行加权组合和非线性变换&…

Centos服务器安装Certbot以webroot的方式定时申请SSL免费证书

最近发现原先免费一年的SSL证书都改为3个月的有效期了,原先一年操作一次还能接受,现在3个月就要手动续期整的太慢烦了,还是让程序自动给处理下吧, 安装 Certbot yum install epel-release -y yum install certbot -yEPEL是由 Fe…

系统安全及应用

文章目录 系统安全及应用一、账号安全基本措施1、系统账号清理1.1 将用户设置为无法登录1.2 锁定长期不使用的账号1.3 删除无用的账户1.4 清空一个账号密码1.5 锁定账户文件passwd、shadow 2、密码安全控制设置密码有效期 3、命令历史限制3.1 减少命令记录条数3.2 登录时自动清…

13. 强化学习编程实验1-在格子世界中寻宝(1)

文章目录 1.实验目的2.任务描述3.任务分析3.1 待求问题是多步决策问题否3.2 问题求解过程是一个马尔科夫决策过程3.3 状态空间S的确定3.4 动作空间A的确定3.5 状态转移概率P的确定3.6 立即回报R的确定3.7 折扣 γ \gamma γ的确定 4. 编程架构4.1 程序中有哪些对象和类4.2 环境…

pyfolio工具结合backtrader分析量化策略组合,附源码+问题分析

pyfolio可以分析backtrader的策略,并生成一系列好看的图表,但是由于pyfolio直接install的稳定版有缺陷,开发版也存在诸多问题,使用的依赖版本都偏低,试用了一下之后还是更推荐quantstats。 1、安装依赖 pip install …

数据采集有哪些方法?HTTP代理起到什么作用?

在这个数字化的时代,数据就如同生活中不可或缺的元素,我们的行为、喜好、甚至是想法都被转化成了数字化的信息。那么,现代社会是如何进行数据的采集的呢?让我们一同来看看! 1. 网络浏览行为的追踪 在我们浏览互联网的…

【AI视野·今日NLP 自然语言处理论文速览 第六十六期】Tue, 31 Oct 2023

AI视野今日CS.NLP 自然语言处理论文速览 Tue, 31 Oct 2023 (showing first 100 of 141 entries) Totally 100 papers 👉上期速览✈更多精彩请移步主页 Daily Computation and Language Papers The Eval4NLP 2023 Shared Task on Prompting Large Language Models a…

解读 $mash 通证 “Fair Launch” 规则,将公平发挥极致?(Staking 玩法)

Solmash是Solana生态中由社区主导的铭文资产LaunchPad平台,该平台旨在为Solana原生铭文项目,以及通过其合作伙伴SoBit跨链桥桥接到Solana的Bitcoin生态铭文项目提供更广泛的启动机会。有了Solmash,将会有更多的Solana生态的铭文项目、资产通过…

24年初级会计资格考试报名信息采集流程共10大步骤,千万不要搞错

2024年初级会计资格考试报名信息采集流程共10大步骤,不要搞错哦; 第一步:输入证件号、点击登录 第二步:阅读采集须知 第三步:填写个人信息(支付宝搜索"亿鸣证件照"或者微信搜索"随时照&q…

计算机网络-以太网交换基础

一、网络设备的演变 最初的网络在两台设备间使用传输介质如网线等进行连接就可以进行通信。但是随着数据的传输需求,多个设备需要进行数据通信时就需要另外的设备进行网络互联,并且随着网络传输的需求不断更新升级。从一开始的两台设备互联到企业部门内部…

数据结构第六弹---带头双向循环链表

双向循环链表 1、带头双向循环链表概念2、带头双向循环链表的优势3、带头双向循环链表的实现3.1、头文件包含和结构定义3.2、创建新结点3.3、打印3.4、初始化3.5、销毁3.6、尾插3.7、头插3.8、头删3.9、尾删3.10、查找3.11、在pos之前插入3.12、删除pos位置3.13、判断是否为空3…