第6章 Transformer架构
在上一章中,我们介绍了Seq2Seq模型与注意力机制。Seq2Seq通过编码器-解码器结构实现了变长序列到变长序列的映射,Bahdanau注意力通过动态计算上下文向量突破了固定向量的信息瓶颈。然而,这些模型本质上仍未脱离循环神经网络的框架。
2017年,Google团队提出了Transformer架构。这一架构的提出是自然语言处理领域的一次革命性突破,它彻底摆脱了循环结构的束缚,开辟了序列建模的全新范式,成为当前所有主流大语言模型(如GPT、DeepSeek等)的基石。
本章首先介绍Transformer的总体架构(编码器-解码器结构),然后通过一个英文翻译中文的案例,详细讲解词嵌入、位置编码、自注意力机制、多头注意力、前馈神经网络、残差连接与层归一化等核心子层的原理与工作机制,最后简要介绍Transformer的训练方法。通过本章的学习,读者将对Transformer的内部运作建立系统而深入的理解。
学习目标
- 能复述Transformer架构的设计动机与核心创新点(并行计算、长距离依赖、可扩展性)。
- 能绘制Transformer的编码器-解码器结构图,并说明输入表示、各子层的名称与作用。
- 能说明位置编码的必要性及残差连接与层归一化的作用。
- 能解释自注意力机制的计算过程(查询Q/键K/值V的含义与缩放点积公式)及多头注意力的作用。
- 能结合"I love cats ."翻译为"我喜欢猫。"的案例,分步描述Transformer编码器与解码器的整体数据流动过程。
6.1 Transformer架构概述
本节将首先介绍Transformer产生的背景,然后简要说明Transformer的架构和工作机制。
6.1.1从 RNN 到 Transformer 的变革
在Transformer提出之前,循环神经网络(RNN)及其变体(如LSTM、GRU)因具备处理序列数据的能力,长期占据自然语言处理领域的主导地位,但这类模型存在两大主要的缺陷和不足:
- 并行计算能力弱:RNN需按时间步逐次计算,无法充分利用GPU等硬件的并行计算能力,导致训练效率低下;
- 长距离依赖捕捉能力有限:受限于梯度消失或梯度爆炸问题,RNN难以建模长文本中的远距离关联(如代词指代、逻辑衔接等)。
为解决这些痛点,2017年Google团队在论文《Attention Is All You Need》中提出了Transformer架构。该架构摒弃了传统的循环结构,完全基于自注意力机制(Self-Attention)实现序列建模,其核心创新点包括:
- 并行计算:自注意力机制允许模型同时处理序列中的所有位置,大幅提升计算效率;
- 长距离依赖建模:通过计算任意两个位置之间的相关性,直接捕捉远距离依赖关系;
- 可扩展性:通过堆叠多层编码器和解码器,模型能够学习更复杂的语义特征。
6.1.2 Transform的架构和工作机制
Transformer最初被设计用于序列到序列(sequence-to-sequence)的任务(如机器翻译),其整体结构如图6.1所示,由编码器(Encoder)和解码器(Decoder)两部分组成,二者均为多层堆叠的模块化结构。

图6.1 Transformer整体结构-编码器和解码器结构
在图6.1中,左侧是编码器,右侧是解码器,在它们的下面都分别带有一个输入模块。下面将简要介绍输入模块、编码器和解码器。
1.输入模块
首先,将输入文本经过分词器转换为Token序列,再通过词嵌入将每个Token映射为连续向量,并加入位置编码,形成模型真正的输入表示。位置编码的引入是因为自注意力机制本身不具备感知序列顺序的能力,需要额外注入位置信息
2.编码器
编码器由多个结构相同的层堆叠而成(原始论文中为6层,即N = 6)。每个编码器层包含两个主要的子层:多头自注意力子层(Multi-HeadSelf-Attention)和前馈神经网络子层(Feed-Forward Network,FFN)。
(1)多头自注意力子层
自注意力机制是Transformer的核心组件之一。它允许模型在处理序列中的每个元素时,能够同时关注到序列中的其他所有元素,从而捕捉到元素之间的长距离依赖关系。多头自注意力机制则是将自注意力过程并行地执行多次,每个"头"都学习到不同的注意力模式,然后将这些"头"的输出拼接起来,经过一个线性变换得到最终的输出。这样做的好处是可以让模型从不同的角度去理解序列中的信息,增强模型的表达能力。
(2)前馈神经网络子层
该子层是一个两层的全连接神经网络,第一层使用 ReLU 激活函数,第二层不使用激活函数。它的作用是对多头自注意力子层的输出进行进一步的非线性变换,以学习更复杂的特征表示。
(3)残差连接和层归一化
在每个子层之后,都采用了残差连接(Residual Connection)和层归一化(Layer Normalization)技术。残差连接通过一条"直连通道"将子层的输入与输出相加,使得梯度可以直接回传,有效缓解了深度神经网络中的梯度消失问题;层归一化则对每个样本在特征维度上进行标准化处理,使数据分布保持稳定,加速模型的收敛速度。
3.解码器
解码器同样由多个结构相同的层堆叠而成(层数与编码器相同)。每个解码器层包含三个主要的子层:掩码多头自注意力子层、编码器-解码器注意力子层(又称交叉注意力子层)和前馈神经网络子层。
(1)掩码多头自注意力子层
与编码器中的多头自注意力子层类似,但增加了掩码机制。这是因为在解码器进行自回归生成序列时,只能关注到已经生成的部分,而不能看到未来的信息。掩码的作用就是将未来位置的信息屏蔽掉,确保模型在生成当前位置的输出时,只依赖于已经生成的前文信息。
(2)编码器-解码器注意力子层
该子层的作用是让解码器能够关注到编码器的输出,从而将编码器捕捉到的源序列信息传递到解码器中,帮助解码器生成准确的目标序列。它的计算方式与多头自注意力机制类似,只是查询(Query)来自解码器,键(Key)和值(Value)来自编码器。
(3)前馈神经网络子层
与编码器中的前馈神经网络子层结构和功能相同,对编码器 - 解码器注意力子层的输出进行非线性变换。
(4)残差连接和层归一化
与编码器一样,在每个子层之后同样采用残差连接和层归一化,其作用与编码器中完全相同,此处不再赘述。
在了解了Transform总体架构之后,本章后续内容将以"I love cats ."翻译为"我喜欢猫。"的完整案例为主线,结合原理讲解与代码实现,逐步剖析 Transformer 的工作机制。具体安排如下:
6.2节 输入词嵌入与位置编码:拆解 Token 如何变为带位置特征的语义向量;
6.3节 自注意力与多头注意力:推导 Q/K/V 数学公式,剖析缩放点积注意力的物理意义;
6.4节 编码器的工作机制:将多头自注意力、前馈神经网络、残差连接与层归一化精密组装为编码器层,并追踪源句"I love cats ."的上下文表示生成过程;
6.5节 解码器的工作机制:重点剖析因果掩码(防止未来信息泄露)与交叉注意力(动态对齐源句特征)的协作机制;
6.6节 训练与推理生成:对比教师强制并行训练与自回归生成的差异,并完成完整的翻译系统验证。