查看原文
其他

回顾BART模型

刘聪NLP NLP工作站 2023-11-28

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

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

整理不易,请多多关注、转发、点赞。也请多多关注本人知乎「刘聪NLP」,有问题的朋友也欢迎加我微信私聊。
我们的口号是“生命不止,学习不停”。
如果说BERT模型是仅使用Transformer-Encoder结构的预训练语言模型,GPT模型是仅使用Transformer-Decoder结构的预训练语言模型,那么BART模型就是使用Transformer模型整体结构的预训练语言模型,如图1所示;使其在自然语言理解任务上表现没有下降,并且在自然语言生成任务上有明显的提高。
BART模型在预训练时,首先使用多种噪声对原始文本进行破坏,然后通过seq2seq模型重建原始文本

Model Architecture



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

Pre-training



BART模型的预训练是对原始文本破坏再重建,因此损失函数为decoder的输出与原始文本的交叉熵。BART模型共介绍了5种破坏原始文本的噪声方法,如图2所示。
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作为文本的开头。该策略让模型学习文本的开头。

Fine-tuning



该部分主要介绍BART模型,如何应用在自然语言理解和自然语言生成的下游任务中,如图3所示。
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参数;然后再对模型的所有参数进行少量地训练。

Result



对多种噪声策略进行比较分析,结果如表1所示,Text Infilling策略在多个任务上,都达到了最优的效果,而Document Rotation策略和Sentence Shuffling策略效果较差。
虽然单独使用Sentence Shuffling策略时较差,并且Text Infilling策略和Sentence Shuffling策略的组合也仅仅在CNN/DM数据上取得了较好的效果,但是作者认为,在更大的预训练模型中可以从该策略上学的更好。
因此,BART模型最终使用了Text Infilling策略和Sentence Shuffling策略的组合,其中屏蔽每个文本中30%的token,并排列所有的句子。
自然语言理解任务上的效果分析,如表2所示,BART模型在部分任务上取得了较好的效果,并且其他任务上没有明显的下降。
生成任务上的结果,如表3、4和5所示,在文本摘要(CNN/DM、XSum)、对话(ConvAI2)、摘要式QA(ELI5)任务上的效果均有显著地提高。在
翻译任务上的结果分析,如表6所示,在WMT’16 RO-EN数据上也是有所提高,

总结



文章开始也说了“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新闻标题生成项目

中文摘要数据集汇总

继续滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存