注意力机制的核心是让序列中的每个位置在生成表示时,能够有选择地"关注"序列中其他相关位置的信息,而不受位置距离的限制。与传统循环神经网络按时间步依次传递隐状态不同,注意力机制允许任意两个位置之间直接建立连接,从而一步到位地关联相距较远的内容。
注意力机制将每个位置的输入表示投影为三个向量:查询(Query)、键(Key)和值(Value)。查询代表当前位置"正在寻找什么",键代表每个位置"能提供什么匹配信号",值则是每个位置实际携带的内容。通过计算查询与各个键的相似度,模型决定应当从哪些位置提取信息。
Transformer 采用缩放点积注意力(Scaled Dot-Product Attention)作为打分函数。其计算方式为:先用查询与所有键做点积得到注意力分数,再除以键维度平方根(√d_k)进行缩放,然后通过 softmax 归一化为权重,最后用这些权重对值进行加权求和。缩放因子的作用是防止点积数值随维度增大而过大,导致 softmax 落入梯度极小的饱和区。
自注意力(Self-Attention)是一种将同一序列内部不同位置相互关联的注意力机制,其查询、键、值均来自同一个输入序列。与交叉注意力(Cross-Attention)不同——后者查询来自一个序列、键和值来自另一个序列——自注意力用于在单一序列内部建立全局依赖。
自注意力的计算分为四步:
由于所有位置可以同时进行上述计算,任意两个位置之间的信息传递只需一次注意力操作即可完成,最大路径长度为常数。这使得模型能够高效捕捉长距离依赖,也是 Transformer 相较循环结构的关键优势之一。
单一的注意力函数只能学习一种关注模式,难以同时捕捉序列中不同层面、不同粒度的关系。多头注意力(Multi-Head Attention)通过并行运行多个独立的注意力函数,让模型能够同时关注来自不同表示子空间的信息。
多头注意力将查询、键、值分别用不同的学习投影线性变换 h 次,得到 h 组投影;对每组投影分别施加单头注意力,得到 h 个输出;再将这 h 个输出拼接起来,经过一次额外的输出投影得到最终结果。原始 Transformer 采用 8 个注意力头。
由于 Transformer 完全不含循环和卷积结构,模型本身对序列中 token 的顺序没有感知能力——若仅靠注意力机制,打乱顺序的输入会得到相同结果。因此必须显式地向输入注入位置信息。
原始 Transformer 采用不同频率的正弦和余弦函数生成位置编码,将其直接加到输入嵌入上。其设计特点是:任意两个位置之间的编码关系可以通过线性变换相互推导,使模型能够学习基于相对位置的注意力,并且具备对超出训练长度序列的一定泛化能力。
除正弦编码外,许多后续模型采用可学习的位置嵌入,即把位置当作可训练参数随模型一起优化。两种方式在实践中均被证明有效,可学习编码在特定任务上往往更灵活,正弦编码则在长度外推上更具优势。
Transformer 的每个子层(多头注意力子层、前馈网络子层)都包裹一层残差连接,即把子层的输入直接加到其输出上。残差连接为梯度提供了直达浅层的通路,显著缓解了深层网络的梯度消失问题,使堆叠数十层成为可能。
每个子层在残差相加之后施加层归一化(Layer Normalization),对当前样本的特征维度进行归一化,稳定激活值的分布。这一组合(残差连接 + 层归一化)是深层 Transformer 能够稳定训练的关键工程基础。
在注意力子层之外,Transformer 每个编码器和解码器层还包含一个逐位置的前馈神经网络(Feed-Forward Network)。该网络对每个位置独立地施加相同的非线性变换,先升维再降维,用于增强模型对每个位置表示的非线性加工能力,其参数在所有位置上共享。
掩码机制用于控制注意力可以"看到"哪些位置,通过在注意力分数矩阵中将不允许的位置置为极小值(如负无穷),使其经 softmax 后权重归零。掩码是层数学定义的一部分,而非单纯的实现细节。
在解码器的自注意力中,为保证自回归生成特性——即当前位置只能依赖此前已生成的位置——需要施加因果掩码(Causal Mask),禁止位置 i 关注位置 i 之后的所有位置。这确保模型在预测下一个 token 时不会"偷看"未来信息。
在编码器—解码器的交叉注意力中,解码器状态作为查询、编码器输出作为键和值,用于将生成过程对齐到输入序列。此外,在处理长度不等的批量样本时,填充掩码(Padding Mask)用于排除为对齐而补齐的占位位置,避免无效 token 干扰注意力计算。
循环神经网络必须在时间步 t-1 完成后才能计算时间步 t,本质上是串行过程,难以充分利用 GPU 的并行能力。Transformer 用注意力替代循环状态,序列中所有位置可以在同一时刻并行计算表示,大幅提升训练效率。
由于并行化能力增强,Transformer 可以在更大规模的数据集上以更低的时间成本完成训练。原始论文报告,模型在 8 块 P100 GPU 上训练约 3.5 天即可在 WMT 2014 英法翻译任务上取得 41.8 BLEU 的单模型最优结果,训练成本远低于同期基于循环网络的模型。
并行计算能力使 Transformer 天然适配大规模分布式训练,为后续将模型参数扩展到数百亿乃至数千亿提供了工程前提。国内主流大模型如腾讯混元即基于 Transformer 架构,依托大规模并行训练实现能力扩展。
标准自注意力的时间和空间复杂度均为序列长度的平方级(O(n²))。当序列长度增大时,注意力分数矩阵的存储与计算开销急剧上升,成为处理长文档、长上下文场景的主要瓶颈。
为应对长序列,实践中发展出多条技术路线:通过滑动窗口限制每个位置的关注范围,通过稀疏注意力只计算部分 token 对,或通过线性化近似降低复杂度。这些方法在保持性能的同时,使模型能够处理数十万乃至百万级 token 的上下文。
针对超出训练长度的序列,还可通过位置编码外推技术(如 NTK、YaRN 等)调整位置编码尺度,使模型在推理阶段支持更长的上下文窗口,而无需从头重新训练。
稀疏注意力通过只计算一部分 token 之间的注意力来降低开销。代表性工作包括 2019 年的 Sparse Transformer(将复杂度降至 O(n√n))、2020 年的 Longformer(滑动窗口加少量全局 token)和 BigBird(随机加局部加全局,兼具通用逼近性质)。
线性注意力通过核技巧或随机特征近似 softmax,将复杂度降为线性 O(n)。代表性方法包括 Linformer(将键值投影到低维)和 Performer(用正交随机特征近似 softmax 核)。这类方法在长序列上速度优势明显,但在长上下文召回等任务上精度通常略有损失。
FlashAttention 是另一条影响深远的路线,它不改变注意力的数学定义,而是通过分块计算和核融合,将注意力运算留在片上高速缓存中完成,避免在显存中物化完整的注意力矩阵,从而实现线性内存占用和数倍加速。它已成为 PyTorch、JAX 及主流推理框架的默认注意力内核,其后续版本 FlashAttention-2(2023)、FlashAttention-3(2024)依次提升了并行度与硬件利用率;2026 年 3 月发布的 FlashAttention-4 面向 Blackwell 架构(如 B200)进行算法与内核协同设计,在 BF16 精度下性能可达约 1613 TFLOPs/s。
原始 Transformer 采用 Adam 优化器,并配合预热(Warmup)学习率调度:训练初期逐步升高学习率以避免早期发散,随后再按策略衰减。预热机制对深层注意力模型的稳定收敛至关重要。
训练中使用标签平滑(Label Smoothing),将正确目标 token 的部分概率质量分散到其他 token 上,作为一种正则化手段,有助于缓解过拟合、提升泛化表现。
如前所述,残差连接与层归一化的组合为深层网络的梯度流动提供了保障,是大规模堆叠层数时维持训练稳定的基础技巧。这些技巧共同支撑了 Transformer 在大规模数据上的可靠训练。
Transformer 是当代大语言模型(LLM)的通用底座。几乎所有主流大模型都采用以解码器为主的 Transformer 架构,通过自回归方式逐 token 生成文本,其自注意力机制是模型捕捉长距离语义依赖的核心。
基于 Transformer 的编码器(如 BERT)与解码器(如 GPT 系列)分别发展出双向理解与自回归生成两条技术路线,前者擅长文本理解类任务,后者成为生成式大模型的主流形态。大规模预训练加下游适配的范式,使 Transformer 成为通用人工智能能力的主要载体。
在产业实践中,基于 Transformer 的大模型被广泛用于对话、代码生成、检索增强生成等场景。腾讯混元大模型即是基于 Transformer 构建的代表性产品之一,依托这一架构实现了对长距离语义依赖的有效建模与大规模训练。
2020 年提出的 Vision Transformer(ViT)证明,Transformer 可以直接应用于图像:将图像切分为固定大小的图块(如 16×16 像素),把每个图块当作一个 token 展平成序列,再送入标准 Transformer 编码器处理。这打破了此前计算机视觉由卷积神经网络主导的格局。
2021 年提出的 CLIP 通过对比学习,将图像编码器(ViT)与文本编码器映射到同一嵌入空间,使匹配的图文对彼此靠近、不匹配的彼此远离。这种对齐能力支撑了零样本分类、图文检索等任务,并成为众多多模态模型的视觉前端。
由于图像和文本都可以被表示为 token 序列并由同一套 Transformer 机制处理,将视觉与语言模态融合变得自然。当前主流视觉语言模型通常由视觉编码器、投影层和语言模型三部分组成,Transformer 在其中承担跨模态信息整合与推理的核心角色。
混合专家(Mixture of Experts, MoE)是一种条件计算机制:模型将前馈层替换为多个并行的"专家"子网络,并为每个输入 token 由门控网络动态选择其中一小部分专家参与计算。这样可以在不成比例增加计算成本的前提下,大幅扩充模型的总参数量。
传统稠密模型中,每个 token 都要经过全部参数;而 MoE 让总参数与单次激活参数解耦——模型可以拥有数百亿乃至数千亿总参数,但每个 token 只激活其中一小部分。这使模型在保持较高推理效率的同时获得更强的表达能力。
MoE 已成为当前大规模模型扩展的主流方向之一,被广泛应用于 Mixtral、DeepSeek 等系列模型。以 Qwen3-235B-A22B 为例,其将每个 token 路由到 128 个专家中的 8 个,在 2350 亿总参数中激活约 220 亿参数,体现了"大总参、小激活"的典型设计。
在自回归解码中,每生成一个新 token 都需要复用此前所有 token 的键和值。键值缓存(KV Cache)将这些中间计算结果缓存起来,后续步骤只需重算新 token 的查询,避免重复计算,是推理加速的基础手段。
为减小缓存占用,实践中发展出多查询注意力(MQA)和分组查询注意力(GQA):MQA 让所有查询头共享同一组键值,GQA 则在二者之间折中,将查询头分组共享键值。GQA 在质量与速度间取得平衡,已被 Llama、Mistral 等现代模型广泛采用。
推理优化的完整技术栈还包括:FlashAttention 降低注意力内存开销、PagedAttention 以分页方式管理 KV 缓存消除碎片、量化(INT8/INT4)减少显存占用、以及投机解码(Speculative Decoding)用小模型并行草稿、大模型批量验证来摊薄单 token 成本。这些手段组合使用,使生产环境能够高效服务长上下文、高并发的推理请求。
RNN 的隐状态必须按时间步依次传递,训练难以并行;Transformer 基于注意力,序列中所有位置可同时计算,训练并行度高,能更充分利用 GPU 算力,显著缩短大规模训练时间。
在 RNN 中,相距较远的两个位置之间信息需经过多个中间步骤传递,容易出现梯度消失或爆炸;Transformer 中任意两个位置之间只需一次注意力操作即可直接关联,最大路径长度为常数,更擅长捕捉长距离依赖。
由于并行化程度高、训练更稳定,Transformer 更容易随数据和算力规模扩展,参数可以增长到 RNN 时代难以企及的量级,这也是其成为当代大模型基础架构的根本原因。