图解Transformer:一文看懂大模型背后的核心架构

📅 2026/7/1 17:06:03
图解Transformer:一文看懂大模型背后的核心架构
一篇8页论文如何改变了世界2017年Google团队发表了一篇名为《Attention Is All You Need》的论文。篇幅不长只有8页。当时谁也没想到这篇论文提出的Transformer 架构会在短短几年内横扫整个AI领域——GPT、BERT、DALL·E、Stable Diffusion……几乎所有2024-2026年最热门的大模型底层都跑在这个架构上。你可以不懂它的全部数学细节但要理解大模型为什么行Transformer 是绕不开的第一站。本文核心问题Transformer 究竟做了什么让整个深度学习世界心甘情愿地抛弃了统治多年的 RNN 和 CNN1. 为什么需要Transformer——从RNN到注意力革命RNN 的致命伤串行在 Transformer 出现之前处理序列数据文本、语音、时间序列的主流架构是RNN循环神经网络及其变体 LSTM、GRU。RNN 的工作方式就像读一本逐字逐句的书——你得看完第1个字才能看第2个字再看第3个字输入: 我 → 爱 → 你 ↓ ↓ ↓ RNN: h₁ ← h₂ ← h₃问题1不能并行。训练一个句子你得按顺序一个词一个词地算GPU的并行能力全浪费了。问题2长程依赖。我在北京生活了十年最喜欢的还是____——填烤鸭需要追溯到前面20个词。RNN 在处理这种远距离关联时梯度会一路衰减消失梯度消失问题。Attention 的破局思路早在2014-2015年研究者就发现如果在 RNN 基础上加一个注意力模块让模型在预测每个词时回看输入序列的各个位置效果会大幅提升。这就是Attention 机制的雏形。而 Transformer 的激进之处在于把 RNN 整个去掉只用 Attention。论文标题Attention Is All You Need注意力就是你所需的一切不只是个酷炫的口号——它直接宣判了 RNN 时代的终结。2. 宏观俯瞰Transformer 整体架构先看全局再看局部。Transformer 的架构可以拆成两大块┌─────────────────────────────────┐ │ 输出序列 │ │ ↑ │ │ Linear Softmax │ │ ↑ │ │ Decoder Block ×N │ │ ┌─────────────────────┐ │ │ │ Add Norm (FFN) │ │ │ │ ↑ │ │ │ │ Add Norm (Cross- │ │ │ │ Attention) │ │ │ │ ↑ │ │ │ │ Add Norm (Masked │ │ │ │ Self-Attention) │ │ │ └─────────┬───────────┘ │ │ ↑ │ │ 输入嵌入位置编码 │ │ ↑ │ │ 输出序列(shifted right) │ ├─────────────────────────────────┤ │ 输入序列 │ │ ↓ │ │ 输入嵌入位置编码 │ │ ↓ │ │ Encoder Block ×N │ │ ┌─────────────────────┐ │ │ │ Add Norm (FFN) │ │ │ │ ↑ │ │ │ │ Add Norm (Self- │ │ │ │ Attention) │ │ │ └─────────┬───────────┘ │ │ ↓ │ └─────────────────────────────────┘简单理解Encoder编码器读入完整的输入序列提取语义特征Decoder解码器基于编码器的输出一步步生成目标序列N 表示堆叠层数——原始论文用了 N6而 GPT-3 的层数已经堆到了 96 层。在切入每个组件之前先记住一个核心概念Transformer 的一切设计都在解决同一件事——让模型能看到序列中所有位置的信息。3. 核心一Self-Attention自注意力机制这是 Transformer 的心脏。理解了这个就理解了50%。3.1 从查询-键-值说起想象你在图书馆找一个叫《深度学习》的书你大脑中的需求就是Query查询Q每本书的标题/标签就是Key键K书的内容就是Value值V你的大脑先计算 Query 和每个 Key 的匹配度打分然后根据匹配度去加权读取对应 Value 的内容。Self-Attention 做的完全是同一件事——只不过发生在词与词之间。3.2 数学过程别怕就是矩阵乘法对于一个句子中的每个词Self-Attention 做3步第1步生成 Q、K、V 向量每个输入词向量x分别乘以3个权重矩阵得到对应的 Q、K、VQ x · W_Q K x · W_K V x · W_V简化理解每个词通过3个不同的视角来观察自己和它词——Q 是我想找什么K 是我有什么标签V 是我实际提供的信息。第2步计算注意力分数每个词的 Q 和所有词的 K 做点积dot product得到一个分数矩阵。分数越高说明这两个词越相关。score(Q, K) Q · K^T但原始分数容易受向量维度影响——维度越大点积值越大。所以除以√d_k做缩放scaled_score (Q · K^T) / √d_k第3步Softmax 归一化 加权求和用 softmax 把分数变成 0~1 的权重然后用权重去加权求和所有词的 VAttention(Q, K, V) softmax(Q · K^T / √d_k) · V完整公式这是论文中最重要的一条公式3.3 直观理解用一句话概括 Self-Attention——我在看句子中每个词时会问每个词你和我的关系有多重要然后根据重要性聚合所有词的信息重新理解我。比如句子 The animal didnt cross the street becauseitwas too tired——在it这个位置上Self-Attention 会让it看到animal的权重远高于street从而正确理解it指代的是动物而不是街道。3.4 为什么叫 Self-Attention因为Q、K、V 都来自同一个输入序列。模型在自己看自己所以叫自注意力。4. 核心二Multi-Head Attention多头注意力4.1 一个头看一种关系Self-Attention 一次只能学到一种关系模式。但词与词之间的关系是多样化的——比如语法关系主语-谓语语义关系同义、反义位置关系相邻、远距离解决思路用多组 Q、K、V 并行计算每组关注不同模式。4.2 多头的工作方式原始论文使用了8 个注意力头heads输入 → 线性变换 → 拆成8组 Q、K、V ├── Head 1: Self-Attention → 关注语法关系 ├── Head 2: Self-Attention → 关注位置关系 ├── Head 3: Self-Attention → 关注语义关系 ├── ... └── Head 8: Self-Attention → ... 8个头的输出 → 拼接 → 线性变换 → 最终输出每个头独立计算自己的注意力分布最后把所有结果拼起来再做一次线性变换。4.3 为什么多头有效用个类比一个侦探查案8个助理分别从不同角度调查——一个查财务记录一个查通讯记录一个查人际关系。最后汇总比一个人单干全面得多。多头注意力本质上是让模型在多个表示子空间中同时学习关联模式大大增强了表达能力。5. 核心三位置编码Positional Encoding5.1 为什么需要它RNN 天然有序列顺序a₁→a₂→a₃ 按顺序处理但 Transformer 的 Self-Attention不关心位置。对于 Self-Attention 来说我 爱 你和你 爱 我的注意力分数完全相同——因为 Q/K 点积跟顺序无关。但语言中顺序至关重要狗咬人 ≠ 人咬狗5.2 解决方案给每个位置打上位置标记Transformer 的做法是在输入词向量上叠加一个位置编码向量。位置编码 词向量 带位置信息的输入。论文使用的公式正弦/余弦编码PE(pos, 2i) sin(pos / 10000^(2i/d_model)) PE(pos, 2i1) cos(pos / 10000^(2i/d_model))其中pos是位置序号0, 1, 2, ...i是维度索引d_model是模型维度原始论文 5125.3 直观理解用不同频率的正弦/余弦波来编码位置低维度→ 低频波 → 编码粗略的位置信息高维度→ 高频波 → 编码精细的位置偏移这种设计的妙处在于模型可以学到相对位置关系比如第3个词和第7个词的关系而不只是绝对位置。现代大模型如 GPT、Llama已经改用可学习的位置编码learned positional embeddings但底层思路是一样的——让模型感知序列顺序。6. 训练秘籍Mask、残差连接与 LayerNorm6.1 Mask掩码Transformer 用了两种掩码Padding Mask句子长度不一样短的句子补了填充符padding。计算注意力时让模型忽略这些填充位置。Look-ahead MaskDecoder专用在做翻译等生成任务时解码器预测第3个词时不应该偷看第4个词。所以把未来位置的注意力分数设成负无穷softmax 后变成0。这就是Masked Self-Attention。6.2 残差连接Add NormTransformer 中的每个子层Self-Attention 和 FFN外面都包了一层Add Normoutput LayerNorm(x Sublayer(x))残差连接Add解决了深层网络的退化问题——让梯度能直接短路回传即使堆到100层也能稳定训练。层归一化LayerNorm让每层的输出分布稳定加速收敛。6.3 前馈网络Feed-Forward Network每个注意力层后面跟一个简单的前馈网络FFN(x) max(0, x · W₁ b₁) · W₂ b₂其实就是两层线性变换 ReLU激活函数。原始论文的维度是 20484×512。每个位置共享同一套 FFN 参数但不同位置独立计算。它负责对注意力提取的特征做非线性变换和进一步抽象。7. 从Transformer到大模型GPT 与 BERT 的路线分歧7.1 三种架构选择原版 Transformer 是 Encoder-Decoder 结构。但后续的工作证明不需要全都要。模型使用了哪个部分特点BERT只用 Encoder双向理解适合分类/问答GPT只用 Decoder单向生成适合文本生成T5Encoder Decoder原始结构适合翻译/摘要7.2 为什么 GPTDecoder-Only笑到了最后2020年代大模型的发展趋势很清晰GPT 路线的 Decoder-Only 架构主导了几乎所有顶级大模型。原因有三统一的预训练目标GPT 的预测下一个词next token prediction天然适合作为通用接口——翻译、写代码、聊天、推理全都可以统一成预测下一个词规模扩展平滑Decoder-Only 架构在扩展到百亿、千亿参数时训练稳定性和并行效率最高In-Context Learning只有单向的 Decoder 架构才能实现让人惊叹的上下文学习能力——给它几个例子它就能自动学会做新任务而 BERT 的双向能力虽然在下游任务微调时更强但无法直接支持零样本生成在规模即能力的时代逐渐退居二线。总结Transformer 的设计哲学回顾整个架构Transformer 的成功可以归结为几个关键设计决策完全抛弃循环→ 实现并行计算让 GPU 发挥全部实力自注意力机制→ 每个位置直接看到所有其他位置解决长程依赖多头注意力→ 从多个角度理解词间关系残差连接 LayerNorm→ 让极深网络的训练变成现实位置编码代替顺序处理→ 在保留顺序信息的同时摆脱了串行约束Transformer 不是没有缺点——它的计算复杂度是 O(n²)n为序列长度处理长文本时计算量爆炸。但正因如此才有了后续的 FlashAttention、稀疏注意力、线性注意力等优化工作——这是另一个故事了。如果你看到了这里你已经理解了自2017年以来AI领域最重要的架构创新。下次再看到 GPT-5、Claude-4、Llama-4 的新闻你知道它们底层都在跑什么了。参考资源Vaswani et al.,Attention Is All You Need, NeurIPS 2017Transformer 论文中文翻译Jay Alammar,The Illustrated TransformerUnderstanding Transformer Architecture (含向量数学示例)