Transformer Decoder的输入

大部分引用参考了既安的https://www.zhihu.com/question/337886108/answer/893002189这篇文章,个人认为写的很清晰,此外补充了一些自己的笔记。

弄清楚Decoder的输入输出,关键在于图示三个箭头的位置:

以翻译为例:

  • 输入:我爱中国
  • 输出: I Love China

因为输入("我爱中国")在Encoder中进行了编码,这里我们具体讨论Decoder的操作,也就是如何得到输出("I Love China")的过程。

Decoder执行步骤

Time Step 1

  • 初始输入: 起始符</s> + Positional Encoding(位置编码)
  • 中间输入:(我爱中国)Encoder Embedding
  • 最终输出: 产生预测"I"

Time Step 2

  • 初始输入:起始符</s> + "I"+ Positonal Encoding
  • 中间输入:(我爱中国)Encoder Embedding
  • 最终输出:产生预测"Love"

Time Step 3

  • 初始输入:起始符</s> + "I"+ "Love"+ Positonal Encoding
  • 中间输入:(我爱中国)Encoder Embedding
  • 最终输出:产生预测"China"

图示

整体右移一位(Shifted Right)

论文在Decoder的输入上,对Outputs有Shifted Right操作。

Shifted Right 实质上是给输出添加起始符/结束符,方便预测第一个Token/结束预测过程。

正常的输出序列位置关系如下:

  • 0-"I"
  • 1-"Love"
  • 2-"China"

但在执行的过程中,我们在初始输出中添加了起始符,相当于将输出整体右移一位(Shifted Right),所以输出序列变成如下情况:

  • 0-【起始符】
  • 1-"I"
  • 2-"Love"
  • 3-"China"

这样我们就可以通过起始符预测"I",也就是通过起始符预测实际的第一个输出。

笔记

Transformer中Decoders也是 N=6 层,通过上图我们可以看到每层 Decoder 包括 3 个 sub-layers:

  • 第一个 sub-layer是 Masked Multi-Head Self-Attention,这个层的输入是:

    前一时刻Decoder输入+前一时刻Decoder的预测结果 + Positional Encoding。

  • 第二个sub-layer是Encoder-Decoder Multi-Head Attention,这个层的输入是:

    Encoder Embedding+上层输出。

    也就是在这个层中:

    Q是Decoder的上层输出(即Masked Multi-Head Self-Attention的输出)

    K\V是Encoder的最终输出
    ++tips:这个层不是Self-Attention,K=V!=Q(等号是同源的意思)。++

  • 第三个 sub-layer 是前馈神经网络层,与 Encoder 相同。

总结

Transformer Decoder的输入:

  • 初始输入:前一时刻Decoder输入+前一时刻Decoder的预测结果 + Positional Encoding
  • 中间输入:Encoder Embedding
  • Shifted Right:在输出前添加起始符,方便预测第一个Token
相关推荐
Lasgalena24 天前
【小记】2024-2025生物计算类热点问题
笔记·deep learning
Kelaru1 个月前
Python实现自动物体识别---基于深度学习的AI应用实战
python·ai·cv·deep learning
simple_whu2 个月前
在Ubuntu24.04中配置开源直线特征提取软件DeepLSD
linux·deep learning·computer vision
天佑凡人2 个月前
mac word接入deepseek
macos·word·deep learning
AI糊涂是福3 个月前
DeepSeek 在金融领域的应用解决方案
机器学习·金融·deep learning
fantasy_43 个月前
LLM-大语言模型浅谈
人工智能·ai·语言模型·deep learning
AI是这个时代的魔法3 个月前
CNNs for image processing and other applications
ai·machine learning·deep learning·computer vision
Jackson@ML4 个月前
一分钟了解深度学习
人工智能·深度学习·deep learning
odoo中国4 个月前
深度学习 Deep Learning 第1章 深度学习简介
人工智能·深度学习·deep learning
AllYoung_3624 个月前
Dify在Ubuntu20.04系统的部署
人工智能·深度学习·langchain·aigc·llama·agi·deep learning