Transformer 解码器
Transformer 解码器同样由多个相同的层堆叠而成,但每层包含三个子层:掩码多头自注意力、编码器-解码器交叉注意力、前馈网络。每个子层周围都有残差连接和层归一化。
解码器层结构
1. 掩码多头自注意力
解码器的自注意力子层与编码器类似,但引入了掩码机制。序列到序列模型在训练时以自回归方式生成,在解码器生成第 个 token 时,只能看到之前已经生成的 个 token,不能看到未来的 token。
掩码的实现方式是在计算注意力分数后,将所有未来位置的分数设置为 或一个非常大的负数,使得 Softmax 后这些位置的权重趋近于零。这样,每个位置只能关注其之前(包括自身)的位置。
After masking (set future to ), the softmax output for future positions becomes zero, ensuring causal generation.
2. 编码器-解码器交叉注意力
交叉注意力子层将解码器当前层的表示作为查询 ,将编码器的输出序列作为键 和值 。这样,解码器在生成每个 token 时可以动态地从编码器输出中选择最相关的信息,这也是注意力机制最初在 Seq2Seq 模型中发挥作用的方式。
该子层的计算方式与自注意力一致,唯一区别是 和 来自编码器而非解码器自身:
3. 前馈网络
与编码器相同,每个位置独立通过一个两层的全连接前馈网络,后接残差连接和层归一化。
训练与推理的区别
- 训练阶段:解码器采用教师强制(Teacher Forcing)策略,一次性接收完整的真实目标序列(带掩码),并行计算所有位置的输出,大幅提高训练效率。
- 推理阶段:解码器以自回归方式逐 token 生成——每次生成一个 token,将其追加到输入中,再进行下一次预测,直到生成结束标记为止。
关键特性
- 自回归生成:当前时间步的输出依赖于之前所有已生成的 token,确保生成过程的一致性。
- 因果掩码:通过掩码保证自回归性,防止信息泄露。
- 交叉注意力:桥接编码器和解码器,使解码器能够访问输入序列的完整上下文信息。
- 逐层优化:解码器通过多层堆叠,逐步精炼目标序列的表示,捕获复杂的语言模式。

链接到
- 上一个知识点:7.5 Transformer编码器
- 下一个知识点:无(本章最后一个知识点)