【NLP论文】seq2seq预训练语言模型: BART

摘要

BART是一个用来预训练seq-to-seq模型的去噪自编码器。它通过在输入序列中加入随机的噪声函数,并利用seq2seq结构从损坏的文本中重构原始文本来训练模型。BART运用了基于Transformer的机器翻译结构,可以看作是BERT(encoder结构)和GPT(decoder结构)的结合体。论文评估了一系列的噪声方法,发现随机改变原始序列的顺序和将text spans替换为一个单独的mask token的填充模式具有较好的表现,该方法使得模型去推理总的句子长度并对输入进行更长范围的转变,来泛化BERT的原始word masking和next sentence prediction任务。BART不仅可以在text generation任务上微调,同时也适用于其他下游任务。论文还提出了一种机器翻译的新方式,BART模型被堆叠在几个额外的transformer layers上,这些layers将外文翻译为含噪声的英文,BART模型从而被当作一个target-side预训练语言模型。

模型结构

BART是一个seq2seq的模型结构,有一个双向的encoder(用来处理含噪声的文本)和一个自回归的decoder。对于base模型,有6层encoder layer和6层decoder layer; 对于large模型,encoder和decoder各有12层。与BERT模型相比,(1)BART每一层decoder layer都与encoder的最后一层隐藏层进行cross attention. (2) BART在预测之前不再接一个全连接层。总体上,BART比BERT多出约10%的参数。

BART模型结构

预训练阶段

BART在corrupted文本上进行训练,损失为decoder的预测输出与原始文本之间的交叉熵损失。BART允许任何形式的文本破坏,在所有信息都丢失的极端情况下,就相当于一个语言模型。下面是论文使用到的一些形式:

Token Masking 随机采样一些tokens被将它们替换为[MASK]

Token Deletion 随机删除tokens

Text Infilling 抽样一些text spans替换为单一的[MASK] token, span长度符合Poisson分布(\lambda=3). 长度为0的span相当于插入一个[MASK]. 该任务能让模型学习到在一个span中有多少token丢失。

Setence Permuation 一个文档根据句号分为多个句子,随机的改变句子顺序

Document Rotation 随机的抽取一个token,将该token移到文档的开头。该任务能让模型学会分辨文档的开头。

噪声形式

Finetune阶段

BART可以用于各种下游任务。

序列分类任务 同样的输入传入encoder和decoder,decoder最后一个token的最后一层隐藏表特征被送到分类器做分类

序列分类

token分类任务 将整个文档送入encoder和decoder,每个token在decoder中最后的隐藏表征作为它的特征,用来对每个token做分类。

序列生成任务 如QA和摘要,encoder输入为原始文本,decoder输出对应的文本。

机器翻译 论文尝试将整个BART (包括encoder和decoder)作为一个单独的机器翻译的decoder,通过增加新的encoder参数,这些参数从双语语料(bitext)中学习得到。具体实现上,我们将BART encoder的embedding层替换为一个新的随机初始化的encoder。这个新的encoder将foreign words映射为BART可以去噪为英语的输入,并可以使用一个与原始BART分隔开的词表。encoder的训练分为两个阶段:第一步固定其他参数,只更新随机初始化的新encoder、BART的positional embeddings、和BART encoder第一层的self-attention input projection matrix;第二步在少数迭代下更新所有模型参数。

机器翻译
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容