0%

Transformer 的整体架构

前言

最初的 Transformer 模型是为机器翻译任务设计的,它在整体上遵循了 编码器‑解码器 (Encoder‑Decoder) 架构。编码器负责 理解 源句子,解码器负责 生成 目标句子,两者通过注意力机制紧密协作,实现了高度并行的序列建模。

整体架构

  • 编码器(Encoder):任务是“理解”源句子输入。它会读取所有输入词元,最终为每个词元生成一个富含上下文信息的向量表示。

  • 解码器(Decoder):任务是“生成”目标句子。它会参考自己已经生成的前文,并根据编码器对源句子的“理解”,来生成下一个词。

核心组件

位置编码

注意力机制有个天然的缺陷:它不知道词的顺序。对它来说,“我喜欢苹果手机”和“苹果手机喜欢我”里的词完全一样,区分不出来。

解决方法:在词嵌入向量上叠加位置信息,主要有两种实现思路:

  • 固定函数编码(如正弦/余弦周期函数):利用三角函数将位置映射到 [−1,1] 的数值向量中,以连续周期变化小数值唯一表征离散整数位置,支持外推更长序列。
  • 可学习的位置嵌入(Learned Positional Embedding):像训练词嵌入字典一样,为每一个位置分配一个可学习的向量,与词嵌入直接相加得到位置感知的综合表示。

自注意力层

每个词元同时与序列中所有其他词元计算相关度,加权计算生成该词的包含上下文信息的新表示。

前馈网络层

通常由密集连接层(Dense)组成,对序列中的每个位置独立进行非线性映射与变换。相当于对单个词做深度特征提取。

残差连接 和 归一化

  • 残差连接:将子层的输入直接加到输出上,解决了深层网络的梯度消失问题,让梯度可以直接回传。
  • 归一化:稳定每一层的数值分布,加速模型收敛。

小结

  • Encoder‑Decoder 架构 中,Encoder 负责 理解,Decoder 负责 生成,专门用于机器翻译等序列‑序列任务。
  • 位置编码 解决了注意力的顺序感知的问题。
  • 多头自注意力 捕获全局上下文感知信息。
  • 前馈网络 负责深度特征提取。
  • 残差 、归一化 保证深层堆叠仍然可训练。