Transformer 架构自 2017 年在论文《Attention Is All You Need》中提出以来彻底改变了自然语言处理等领域。下面我将从设计思想开始逐步解析其核心组件并在最后给出总结框图。一、核心设计思想摆脱时序并行计算在 Transformer 出现之前主流的序列模型如 RNN、LSTM是按顺序逐个处理单词的。这种循环结构有两个主要缺点难以并行化必须等第 1 个词处理完才能开始处理第 2 个词训练效率低。长距离遗忘随着句子变长句子开头的信息容易在传递过程中减弱或丢失。Transformer 的革命性在于它完全抛弃了循环结构只依靠注意力机制来捕捉词语之间的全局依赖关系从而实现高效的并行计算。二、Transformer 的整体架构Transformer 遵循经典的编码器-解码器Encoder-Decoder结构但这里的编码器和解码器不再是 RNN而是由多个结构相同但参数不共享的层堆叠而成。编码器Encoder负责读取输入序列如源语言句子并将其转换为一系列连续的、富含语义的表示向量。解码器Decoder负责根据编码器的输出以及已经生成的部分输出一步步地生成目标序列如目标语言句子。三、核心组件详解无论是编码器还是解码器都由几个关键组件构成。我们以编码器的一个层为例来详细介绍。1. 输入嵌入Input Embedding作用将离散的文本词汇Token映射到连续的、稠密的向量空间。原理每个单词如“apple”对应一个唯一的索引通过一个可训练的嵌入矩阵Embedding Matrix将这个索引转换为一个固定大小的向量例如 512 维。这个向量包含了单词的初始语义信息。2. 位置编码Positional Encoding为什么需要由于 Transformer 没有循环结构它无法像 RNN 那样天然地知道单词在句子中的先后顺序。对于语言来说词序至关重要“我爱你”和“你爱我”完全不同。作用将位置信息注入到输入向量中让模型知道每个词的位置。原理通常使用不同频率的正弦和余弦函数来计算位置向量然后将这个位置向量与单词的嵌入向量相加。这样最终的输入向量就同时包含了语义信息来自嵌入和位置信息来自位置编码。3. 多头注意力机制Multi-Head Attention这是 Transformer 的核心中的核心。我们可以把它拆解为“注意力”和“多头”两部分。基础缩放点积注意力Scaled Dot-Product Attention通俗理解想象你在图书馆输入序列寻找一本书。你的大脑中有一个“查询”Query例如想找一本关于 AI 的书。你会用这个查询去比对图书馆里所有书的“键”Key例如书的索引标签找到与查询最匹配的键。然后你取出与这些键对应的“值”Value例如书的内容进行阅读。公式Attention(Q, K, V) softmax(QK^T / √d_k) VQ (Query)当前关注的词的表示用来询问其他词的重要性。K (Key)序列中每个词的标签用来被查询匹配。V (Value)序列中每个词的实际内容。计算过程计算相似度Q 与所有 K 进行点乘得到每个词对当前词的重要性分数。缩放除以 √d_k键向量的维度防止内积过大导致 softmax 函数进入梯度饱和区。归一化用 softmax 函数将分数转换为概率分布权重。加权求和用这个权重对所有的 V 进行加权求和。权重越大的词其信息在输出中占的比例越高。进化多头注意力Multi-Head Attention为什么需要单一的注意力机制可能只能捕捉到一种类型的关联比如语义关联。但语言中的关系是复杂的可能有语法关系、指代关系、位置关系等。原理与其使用一个单一的注意力函数不如将 Q、K、V 分别通过不同的线性变换投影到多个子空间也就是“头”然后在每个子空间里独立地执行缩放点积注意力。最后将所有头的输出拼接起来再通过一个线性变换得到最终结果。好处每个“头”可以关注不同方面的信息。例如一个头关注词与词之间的语法依赖另一个头关注长距离的指代关系。这极大地增强了模型的表达能力。4. 残差连接与层归一化Add Norm残差连接Add作用解决深层网络中的梯度消失和网络退化问题。原理将模块的输入直接与模块的输出相加。即输出 输入 模块(输入)。这就像给梯度提供了一条“高速公路”让信息可以更直接地反向传播从而使训练非常深的 Transformer 成为可能。层归一化Layer Normalization作用对每一层神经元的输出进行归一化处理使其均值为 0方差为 1。好处稳定了训练过程加快收敛速度。5. 前馈神经网络Feed-Forward Network FFN作用在注意力机制之后对每个位置的表示进行进一步的非线性变换增强模型的表达能力。原理这是一个简单的两层全连接网络。它对序列中的每一个位置单独且相同地应用Position-wise。公式通常为FFN(x) max(0, xW1 b1)W2 b2。它先将输入向量映射到一个更高维的空间例如从 512 维到 2048 维经过 ReLU 激活函数再映射回原来的维度2048 维回 512 维。四、编码器与解码器的小差异解码器的结构与编码器基本相同但有两个关键的不同点掩码多头注意力Masked Multi-Head Attention作用在解码器生成文本时它不能“看到”未来的词。例如当它要预测句子中的第 3 个词时只能知道第 1 个和第 2 个词是什么。原理在计算注意力分数时将未来位置的分数设置为负无穷大-inf这样经过 softmax 后这些位置的权重就变成了 0。这保证了模型的自回归特性即一步一步地预测。编码器-解码器注意力作用这是解码器和编码器交互的桥梁。原理这里的Query 来自于解码器代表当前要生成的词而Key 和 Value 来自于编码器的输出代表输入句子的整体语义。通过这种方式解码器在生成每个词时都能从输入句子中找到最相关的信息来帮助生成。这就是“翻译”的本质所在。总结框图下面这张框图清晰地展示了 Transformer 的核心组件及其数据流动方向。图中关键点总结输入单词嵌入语义 位置编码位置 - 带位置信息的向量。编码器核心自注意力捕捉词间关系 - 残差/归一化 - 前馈网络增强表达 - 残差/归一化。每层都保留原始信息残差并稳定数据分布层归一化。解码器核心掩码自注意力确保生成时只看已生成的词。编码器-解码器注意力从源语言句子中提取与当前生成词相关的信息。前馈网络进一步处理信息。输出通过线性层和 Softmax将解码器的最终输出转换为词汇表上的概率分布选择概率最高的词作为下一个预测。