回顾BART模型

技术

最近在生成相关论文时,经常看到使用 BARTB idirectionaland A uto- R egressive T ransformers, 双向自回归变压器 )模型作为基线比较,或在BART模型上进行修改。因此,回顾一波BART模型,做一下分享。

论文地址:https://arxiv.org/abs/1910.13461

整理不易,请多多关注、转发、点赞。也请多多关注本人知乎「刘聪NLP」,有问题的朋友也欢迎加我微信私聊

我们的口号是“生命不止,学习不停”。

如果说BERT模型是仅使用 Transformer-Encoder结构 的预训练语言模型,GPT模型是仅使用 Transformer-Decoder结构 的预训练语言模型,那么 BART模型就是使用Transformer模型整体结构的预训练语言模型 ,如图1所示;使其在自然语言理解任务上表现没有下降,并且在自然语言生成任务上有明显的提高。

picture.image

BART模型在预训练时,首先使用 多种噪声 对原始文本进行 破坏 ,然后通过seq2seq模型 重建原始文本

picture.image

picture.image

Model Architecture

BART模型使用标准的Transformer结构,但参考GPT模型,将原有ReLU激活函数变成了 GeLUs函数 ,并且初始化参数服从 。

picture.image

picture.image

Pre-training

BART模型的预训练是 对原始文本破坏再重建 ,因此损失函数为decoder的输出与原始文本的交叉熵。BART模型共介绍了 5种 破坏原始文本的噪声方法,如图2所示。

picture.image

Token Masking

Token掩码,与BERT模型策略一致,随机抽取token,并用[MASK]标记进行替换。

Token Deletion

Token删除,从输入中随机删除token,与掩码不同,该策略为了让模型学习哪些位置缺少输入信息。

Text Infilling

文本填充,随机挑选一个文本片段(文本片段的长度符合λ = 3的泊松分布),并且使用一个[MASK]标记进行替换。当片段长度为0时,相当于在原始位置插入一个[MASK]标记。与SpanBERT模型不同的是,SpanBERT模型是使用片段长度个数的[MASK]标记进行替换。

Sentence Permutation

句子排序,将文本按照句号进行分割,生成句子序列,然后将句子之间的顺序随机打乱。

Document Rotation

文档旋转,随机选择一个token,然后将文本进行旋转,即以选择token作为文本的开头。该策略让模型学习文本的开头。

picture.image

picture.image

Fine-tuning

该部分主要介绍BART模型,如何应用在自然语言理解和自然语言生成的下游任务中,如图3所示。

picture.image

Sequence Classification Tasks

对于序列分类任务,将相同的输入,输入到encoder和decoder中,最后将decoder的最后一个隐藏节点作为输出,输入到分类层(全连接层)中,获取最终的分类的结果。其中, decoder的最后一个隐藏节点 是一个特殊标记,相当于BERT模型中的[CLS]。

Token Classification Tasks

对于Token分类任务,例如,机器阅读理解、信息抽取等,将完整的输入,输入到encoder和decoder中,将 decoder最后一层的所有隐藏节点作为每个token的模型表示 ,再对每个token的表示进行分类,最终得到结果输出。

SequenceGeneration Tasks

由于BART模型是在Seq2Seq模型结构下的的预训练模型,本身就拥有自回归解码器,因此可以直接对生成任务进行微调。 将源文本输入到encoder中,将待生成的目标文本输入到decoder中,进行自回归生成。

MachineTranslation

由于预训练过程是用同语言进行训练的,但是机器翻译是由一种语言翻译成另一种语言,因此BART模型在进行机器翻译任务时,将 encoder的Embedding层进行随机初始化,即更换字典,重新训练另一种语言的表征

在微调过程中,首先冻结原始BART模型的大部分参数,仅训练随机初始化的Embedding、BART模型位置嵌入和BART模型编码器第一层与Embedding连接的self-attention参数;然后再对模型的所有参数进行少量地训练。

picture.image

picture.image

Result

对多种噪声策略进行比较分析,结果如表1所示, Text Infilling策略在多个任务上,都达到了最优的效果 ,而Document Rotation策略和Sentence Shuffling策略效果较差。

picture.image

虽然单独使用Sentence Shuffling策略时较差,并且Text Infilling策略和Sentence Shuffling策略的组合也仅仅在CNN/DM数据上取得了较好的效果,但是作者认为, 在更大的预训练模型中可以从该策略上学的更好。

因此,BART模型最终使用了Text Infilling策略和Sentence Shuffling策略的组合, 其中屏蔽每个文本中30%的token,并排列所有的句子。

自然语言理解任务 上的效果分析,如表2所示,BART模型在部分任务上取得了较好的效果,并且其他任务上没有明显的下降。

picture.image

生成任务 上的结果,如表3、4和5所示,在文本摘要(CNN/DM、XSum)、对话(ConvAI2)、摘要式QA(ELI5)任务上的效果均有显著地提高。在

picture.image

picture.image

picture.image

翻译任务 上的结果分析,如表6所示,在WMT’16 RO-EN数据上也是有所提高,

picture.image

picture.image

picture.image

总结

文章开始也说了“BART模型就是Transformer模型Encoder-Decoder结构的预训练语言模型”,但是个人觉得扰乱策略是可圈可点的,思路很正,不过实验结果看来还是有些理想化了,真正有效地只有Text Infilling策略。

很多论文在中文数据集上实验,都说自己训练了一个中文BART模型,再进行下游实验,目前huggingface有开源模型。

真心感谢,BERT、GPT等模型开源的小伙伴们~~~

喜欢的的同学们,记得点赞,关注,转发哟!!!

往期推荐

中文机器阅读理解(片段抽取)数据集整理

ACL2021论文之ChineseBERT:融合字形与拼音信息的中文预训练模型

授人以鱼不如授人以渔

ACL2021主会议论文汇总及分类

ACL2021 Findings论文汇总及分类

难负例如何影响向量检索模型?

SIGIR2021论文:基于Text-to-Text多视图学习的段落重排序

SIGIR2021之DvBERT模型:双视图蒸馏的句向量BERT模型

SIGIR2021之IDCM模型: 文档内部级联选择段落服务于文档排序

SIGIR 2021论文筛选

超详细中文注释的GPT2新闻标题生成项目

中文摘要数据集汇总

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
字节跳动 EB 级湖仓一体分析服务 LAS 的实践与展望
火山引擎湖仓一体分析服务 LAS 是面向湖仓一体架构的 Serverless 数据处理分析服务,提供一站式的海量数据存储计算和交互分析能力,完全兼容 Spark、Presto、Flink 生态,在字节跳动内部有着广泛的应用。本次演讲将介绍 LAS 在字节跳动内部的发展历程和大规模应用实践,同时介绍 LAS 在火山引擎上的发展规划。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论