[DL]Bart模型解读

I-背景简介

Alt
首先上述模型都是由transformer模型延伸而来的。

GPT:是一种自回归( Auto-Regressive)的语言模型。可以看作是Transformer model的Decoder部分,采用的是自然序列left-to-right decoder

Bert:是一种自编码(Auto-Encoding)的语言模型。可以看作是Transformer model的Encoder部分,采用的是bidirectional encoder

Bart:结合了自回归和自编码模型。可以看作吸收了 bidirectional encoderleft-to-right decoder 各自的特点,是建立在标准的 seq2seq Transformer model 的基础上,这使得它比 Bert 更适合文本生成的场景,相比GPT也多了双向上下文语境信息。

自回归与自编码的区别

自回归模型是一种序列预测模型,它根据前面的输入序列预测下一个单元。自回归模型通常用于序列数据,如时间序列数据、自然语言文本等。其中比较常见的自回归模型包括循环神经网络(RNN)和变形卷积神经网络(TCN),它们通过记忆过去的输入来预测未来的输出。

自编码模型是一种无监督学习模型,它的目标是学习数据本身的表示,通过将输入数据压缩到一个低维度的编码空间中,然后再将其解码回原始数据。自编码模型可以用于特征提取、降维和数据去噪等任务。其中比较常见的自编码模型包括自动编码器(Autoencoder)、变分自编码器(Variational Autoencoder)等。

因此,自回归模型和自编码模型是两种不同的神经网络模型,它们的应用场景和目标任务不同。自回归模型用于序列预测,自编码模型用于学习数据的表示。

II-模型结构

Alt
Bart模型由Encoder和Decoder两部分组成,Encoder部分即多层的transformer encoder,Decoder部分即多层的transformer decoder。

Decoder输入中< s >代表开始标志,输入< s >预测A,输入< s >A预测B,输入< s >AB预测C,以此类推。

III-训练任务

  • Token Masking:遵循Bert,随机标记被采样并被代替为[mask],结合上下文预测出[mask]位置原始内容,学词语。
  • Token Deletion:随机标记被删除,预测内容缺失位置以及缺失内容。
  • Text Infilling:按文本跨度采样,每个跨度的文本被代替为一个[mask],预测在这个跨度中有多少token缺失。
  • Sentence Permutation:一个文档根据句号被分成句子,这些句子以随机的顺序打乱。输入乱序的句子,学习正确的语句逻辑。
  • Document Rotation:将统一随机选择一个标记,并旋转文档,以便该文档以该标记开始。该任务训练模型识别文档的开始位置。
    Alt

任务设计难度要适度,任务过于简单或过难,模型都无法学习到经验。

IV-输入输出

  • Encoder输入:Bart 的Encoder输入是一段文本序列,例如一段自然语言文本。在输入到模型之前,文本序列会被转换成词向量的形式,并加入位置编码,以保留单词在原始文本中的顺序信息。

  • Decoder输入:Bart 的Decoder输入是一个特殊的标记(SOS),表示开始生成目标序列。在生成过程中,Decoder 会在每个时间步生成单个词,直到遇到结束标记(EOS)为止。

  • Decoder输出:Bart的Decoder输出是一个生成的文本序列,它是由Decoder逐步生成的,每个时间步生成一个单词,直到生成EOS结束标记为止。生成的文本序列可以是机器翻译、文本摘要等任务的输出。

Bart 模型不同于传统的Seq2Seq模型,它使用了双向Transformer Encoder,因此在生成输出序列之前,Bart的Encoder会对输入序列进行全局编码。此外,Bart的Decoder在生成输出时也能够看到整个输入序列,这意味着它可以进行双向生成,而不仅仅是单向生成。这使得 Bart 能够更好地处理一些复杂的生成任务,比如长文本生成和文本重构等。

V-Bart模型的loss计算

Bart模型的loss计算涉及到两个输入序列和一个输出序列。具体来说,Bart模型使用了自回归机制,即在 Decoder阶段每个时间步生成一个单词,因此损失函数的计算需要考虑到所有时间步上的预测值和真实值之间的差异。

在训练阶段中,Bart模型的损失函数通常是基于交叉熵损失函数计算的,其计算方式如下:

  • Decoder输入向量:训练时,Decoder输入向量是由目标序列向左偏移一个位置得到的,即每个时间步的输入为上一个时间步的输出,第一个时间步的输入为特殊标记 SOS。

  • Decoder输出向量:训练时,Decoder输出向量是目标序列向右偏移一个位置得到的,即每个时间步的输出为当前时间步的下一个词。

损失计算:对于每个时间步,Bart模型会将Decoder的预测输出与真实输出进行比较,使用交叉熵损失函数计算损失。最终的损失是所有时间步损失的平均值。

因此,Bart模型的 loss 计算涉及到了Decoder的输入和输出序列,但是还需要考虑到所有时间步的预测值和真实值之间的差异。


论文

参考讲解视频

参考笔记

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值