Understanding Transformers 第12部分:构建解码器层
发布: (2026年4月24日 GMT+8 03:23)
2 分钟阅读
原文: Dev.to
Source: Dev.to
在解码器中加入位置编码
对于解码器,我们使用与编码器输入相同的正弦和余弦曲线来添加 位置编码。

这些 曲线 与之前对输入进行编码时使用的完全相同。
应用位置数值
- 对于 **第一个嵌入**,位置数值为 **0**。
- 对于 **第二个嵌入**,位置数值为 **1**。
将这些位置数值加到原始嵌入上得到:

结果为 **2.70** 和 **‑0.34**,即 `` token 在加入位置编码后的表示。
## 添加自注意力
接下来我们插入一个 **自注意力层**,使解码器能够捕捉输出 token 之间的关系。

对于 `` token,自注意力的输出为 **‑2.8** 和 **‑2.3**。
请注意,**解码器自注意力中用于查询、键和值的权重与编码器中的权重是不同的**。
## 添加残差连接
与编码器相同,我们现在在自注意力子层周围加入 **残差连接**。

## 接下来会讲什么?
到目前为止,我们已经看到自注意力如何帮助 Transformer 理解 **输出句子内部** 的关系。
对于翻译等任务,模型还必须捕捉 **输入句子与输出句子之间** 的关系。我们将在下一篇文章中探讨这种跨注意力机制。