文章目录
- 一、Transformer整体架构与两大模块分工
-
- [1.1 Transformer诞生背景与基础作用](#1.1 Transformer诞生背景与基础作用)
- [1.2 输入数据预处理统一规则](#1.2 输入数据预处理统一规则)
- 二、Transformer编码器:特征提取与全局关联建模
-
- [2.1 单层编码器内部结构与执行流程](#2.1 单层编码器内部结构与执行流程)
- [2.2 多头自注意力:编码器核心计算逻辑](#2.2 多头自注意力:编码器核心计算逻辑)
- [2.3 编码器典型应用场景](#2.3 编码器典型应用场景)
- 三、Transformer解码器:序列生成与逐位输出
-
- [3.1 单层解码器内部结构与执行流程](#3.1 单层解码器内部结构与执行流程)
- [3.2 掩码自注意力:限制未来信息可见范围](#3.2 掩码自注意力:限制未来信息可见范围)
- [3.3 编码器-解码器注意力:跨模块信息交互](#3.3 编码器-解码器注意力:跨模块信息交互)
- 四、编码器与解码器组合形式及对应任务
-
- [4.1 编码器+解码器串联架构](#4.1 编码器+解码器串联架构)
- [4.2 仅使用编码器的架构](#4.2 仅使用编码器的架构)
- [4.3 仅使用解码器的架构](#4.3 仅使用解码器的架构)
- 五、编码器和解码器核心差异汇总与避坑要点
-
- [5.1 核心结构与能力差异](#5.1 核心结构与能力差异)
- [5.2 工程落地常见问题](#5.2 工程落地常见问题)
- 六、参考文献
一、Transformer整体架构与两大模块分工
1.1 Transformer诞生背景与基础作用
Transformer 出自论文《Attention Is All You Need》,彻底摆脱了循环神经网络串行计算的限制,依靠自注意力机制 实现并行运算,如今不仅主导自然语言处理领域,更是图像分类、目标检测、图像分割、多模态模型的基础骨架 1 ^{1} 1。整套模型被划分为编码器 与解码器两大独立模块,二者结构、输入、功能各不相同,组合方式也随任务场景变化。
纯编码器结构多用于特征提取类任务 ,例如图像分类、语义分割、图像特征检索;纯解码器结构多用于生成类任务 ,例如文本续写、图像生成;编码器+解码器串联结构,则多用于序列转换任务,例如机器翻译、图像描述生成。
1.2 输入数据预处理统一规则
无论是编码器还是解码器,原始数据都不能直接送入网络,需要完成两步基础处理。第一步是嵌入编码 ,将离散的文字符号、图像分块特征转换为固定维度的数值向量;第二步是位置编码 , P E ( p o s , 2 i ) = s i n ( p o s / 10000 2 i / d m o d e l ) PE(pos,2i)=sin(pos/10000^{2i/d_{model}}) PE(pos,2i)=sin(pos/100002i/dmodel)、 P E ( p o s , 2 i + 1 ) = c o s ( p o s / 10000 2 i / d m o d e l ) PE(pos,2i+1)=cos(pos/10000^{2i/d_{model}}) PE(pos,2i+1)=cos(pos/100002i/dmodel),由于注意力机制不具备时序、空间位置感知能力,位置编码会把元素的顺序、空间坐标信息融入向量,保证模型区分不同位置的内容 1 ^{1} 1。
处理完成后的向量序列,才会分别进入编码器或者解码器执行计算。
二、Transformer编码器:特征提取与全局关联建模
2.1 单层编码器内部结构与执行流程
编码器由多层相同结构堆叠而成,每一层内部包含多头自注意力层 和前馈全连接网络 ,两层结构外部分别搭配残差连接 与层归一化 ,整体形成标准子模块 1 ^{1} 1。单层编码器的运算顺序固定不变,输入向量首先进入多头自注意力模块,计算完成后叠加原始输入做残差连接,再执行层归一化;随后数据送入前馈网络,再次经过残差连接与层归一化,得到当前层输出,并传递至下一层编码器。
残差连接 的表达式为 x o u t = x i n + S u b L a y e r ( x i n ) x_{out} = x_{in} + SubLayer(x_{in}) xout=xin+SubLayer(xin),它可以有效缓解深层网络训练时出现的梯度消失问题,让深层模型能够顺利收敛。层归一化则对单个样本的所有维度做均值、方差归一化,稳定每层的数值分布,加快训练速度。
2.2 多头自注意力:编码器核心计算逻辑
编码器使用的是双向自注意力 ,序列中每一个元素都可以和全局所有元素 计算关联权重。以图像任务为例,一张图像被切分为多个图像块向量,任意一个图像块都能感知整张图内其他所有图像块的内容,以此捕捉长距离依赖关系,这也是Transformer相较于CNN的核心优势 5 ^{5} 5。
多头自注意力会将特征向量切分为多个头并行计算注意力,每个头学习不同类型的关联特征,最后拼接所有头的结果并做线性变换。计算过程依靠三个可学习权重矩阵,分别生成查询向量 Q Q Q、键向量 K K K、值向量 V V V,注意力分数计算公式为:
A t t e n t i o n ( Q , K , V ) = s o f t m a x ( Q K T d k ) V Attention(Q,K,V)=softmax\left(\frac{QK^T}{\sqrt{d_k}}\right)V Attention(Q,K,V)=softmax(dk QKT)V
除以 d k \sqrt{d_k} dk 用于缩放数值,避免向量维度过大导致softmax输出过于极端 1 ^{1} 1。
2.3 编码器典型应用场景
完整堆叠后的编码器擅长理解型任务 ,在图像处理领域应用极广。视觉Transformer(ViT)直接使用纯编码器完成图像分类,把整图划分为固定大小的补丁,转为向量序列后送入多层编码器,依靠全局注意力提取图像纹理、轮廓、语义特征 2 ^{2} 2;语义分割、图像检索、特征匹配等任务,也均以编码器作为主干网络 5 ^{5} 5。在这类场景中,编码器只负责对输入数据做特征强化、全局关联建模,不负责生成新内容。
三、Transformer解码器:序列生成与逐位输出
3.1 单层解码器内部结构与执行流程
解码器同样由多层堆叠构成,单层结构比编码器更复杂,一共包含三个子模块,依次为掩码多头自注意力层 、编码器-解码器注意力层 、前馈全连接网络 ,每一个子模块都配套残差连接与层归一化 1 ^{1} 1。数据按照固定顺序逐层计算,每一步运算都保留残差结构,保证梯度正常传递。
解码器的核心定位是逐元素生成新序列 ,输出内容是逐个生成的,生成第 n n n个元素时,只能依赖前面 1 ∼ n − 1 1 \sim n-1 1∼n−1个已生成内容,无法看到未来位置信息,这也是解码器增设掩码机制的原因。
3.2 掩码自注意力:限制未来信息可见范围
解码器第一层为掩码多头自注意力 ,和编码器的双向注意力形成明显区别。它会添加一个上三角掩码矩阵,矩阵中未来位置的权重被设置为负无穷,经过softmax计算后权重趋近于0 1 ^{1} 1。这就强制当前位置的计算,只能使用当前位置及之前的序列数据,杜绝模型提前获取还未生成的内容。
举个直观例子,生成一句话时,写到第三个字,掩码会屏蔽第四个、第五个以及后续所有位置,模型仅基于前三个字做推理,完全贴合逐一生成的逻辑。该机制是解码器实现序列生成的关键约束。
3.3 编码器-解码器注意力:跨模块信息交互
解码器中间层为编码器-解码器注意力层 ,也叫交叉注意力层。该模块的 Q Q Q来自解码器上一层的输出, K K K和 V V V则来自编码器最终的全部输出特征 1 ^{1} 1。这一设计让解码器在生成内容时,可以持续参考编码器提取的全局特征。
以图像描述任务举例,编码器提取整张图像的语义特征,解码器逐字生成文字,交叉注意力会让每一个生成的文字,都和图像全局特征做关联匹配,确保生成的文字内容和图像内容保持一致。纯解码器模型(如GPT)不存在这一层结构,仅依靠掩码自注意力完成生成 3 ^{3} 3。
四、编码器与解码器组合形式及对应任务
4.1 编码器+解码器串联架构
这是原始Transformer论文中的标准组合形式,输入数据先完整经过编码器完成特征提取,编码器输出的全局特征再传入解码器,配合解码器自身的掩码注意力完成序列转换 1 ^{1} 1。该组合主打序列到序列转换任务,自然语言领域代表为机器翻译、文本摘要;图像处理领域代表为图像字幕、图文互译、视觉问答。
整套流程中,编码器负责"理解输入",解码器负责"基于理解生成新序列",两个模块各司其职,分工明确。
4.2 仅使用编码器的架构
舍弃解码器,只堆叠多层编码器,结构最简、计算效率高。由于双向注意力可以建模全局关联,该架构全部用于特征理解、分类、判别类任务 2 5 ^{25} 25。除了前文提到的ViT图像分类、图像分割,文本分类、情感分析等NLP任务也普遍采用该结构。这类任务不需要生成新序列,只需要对已有数据做特征分析与结果判别。
4.3 仅使用解码器的架构
舍弃编码器,只堆叠多层带掩码的解码器,依靠单向掩码自注意力完成全部计算。典型代表为GPT系列大模型 3 ^{3} 3,在图像处理领域,主流的图像生成模型、扩散模型中的文本引导分支、低分辨率图像补全任务,也会使用纯解码器结构。该架构核心能力是自回归生成,持续基于已有内容推导下一个元素。
五、编码器和解码器核心差异汇总与避坑要点
5.1 核心结构与能力差异
从注意力机制来看,编码器采用双向无掩码自注意力 ,全局信息互通,擅长特征挖掘;解码器包含掩码自注意力+交叉注意力 ,单向信息流,擅长内容生成 1 5 ^{15} 15。从输入输出来看,编码器接收完整输入序列,一次性输出全部特征;解码器逐位接收已生成内容,逐位输出新元素,属于自回归运算。
从计算并行度分析,编码器可以实现全序列并行计算 ,所有位置同时运算,速度快;标准解码器受掩码规则限制,只能串行逐一生成,推理速度相对较慢,这也是生成类模型推理耗时更长的根本原因 4 ^{4} 4。
5.2 工程落地常见问题
在图像任务部署中,很多人会混淆两个模块的使用场景。做图像分类、检测时错误加入解码器,会额外增加计算量,还会降低模型精度;做图像生成、图文生成时省略掩码操作,模型会出现逻辑混乱、内容错乱的问题。另外,位置编码不能随意删除,图像分块、文本序列一旦去掉位置编码,模型会丢失空间、顺序信息,最终训练失效 4 ^{4} 4。
堆叠网络层数也需要合理控制,编码器层数过多容易出现特征冗余,解码器层数过多则会放大串行误差,实际项目中需要根据数据集规模和任务难度做层数调优。
六、参考文献
1 Vaswani A, Shazeer N, Parmar N, et al. Attention Is All You NeedC//Advances in Neural Information Processing Systems. 2017: 5998-6008.
2 Dosovitskiy A, Beyer L, Kolesnikov A, et al. An Image is Worth 16x16 Words: Transformers for Image Recognition at ScaleC//International Conference on Learning Representations. 2021.
3 Brown T B, Mann B, Ryder N, et al. Language Models are Few-Shot LearnersJ. arXiv preprint arXiv:2005.14165, 2020.
4 邱锡鹏. 神经网络与深度学习M. 北京: 机械工业出版社, 2020.
5 Han K, Wang Y, Chen H, et al. A Survey on Vision TransformerJ. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2022, 45(1): 87-110.
你在搭建图像Transformer模型时,是选用纯编码器还是编解码组合架构?遇到过注意力权重异常、生成内容错乱这类问题吗?可以一起交流调试思路。