Transformer 网络结构总览
更新于 2026-04-08
简介
Transformer 是 2017 年由 Vaswani 等人在论文 “Attention Is All You Need” 中提出的神经网络架构。它完全基于 Attention 机制,摒弃了此前主流的循环(RNN)和卷积(CNN)结构,成为现代大语言模型(LLM)的基石。
GPT、LLaMA、BERT 等知名模型都建立在 Transformer 之上。理解 Transformer 的整体架构,是深入学习 Attention、KV Cache、Flash Attention 等进阶主题的前提。
直觉理解:从 RNN 到 Transformer
RNN 的瓶颈
RNN(包括 LSTM、GRU)按时间步顺序处理序列:。每个时间步必须等待上一步完成,存在两个核心问题:
- 无法并行:序列长度为 时,计算复杂度是 个串行步骤,无法充分利用 GPU 并行能力。
- 长距离依赖衰减:信息需要逐步传递,经过多步后容易丢失或衰减。
Attention 的解法
Transformer 用 Self-Attention 替代了循环结构:每个位置可以直接关注序列中任意其他位置,一步完成全局信息聚合。
- 并行度:所有位置的 Attention 可以同时计算
- 长距离:任意两个位置之间的路径长度为
这种设计使 Transformer 在长序列建模和训练效率上远超 RNN。
架构总览
下图展示了一个 Pre-LayerNorm 变体的 Transformer Block 内部结构。现代 LLM(GPT-2、LLaMA 等)几乎都采用这种变体,而非原始论文中的 Post-LayerNorm。
一个完整的 Transformer 模型由 个这样的 Block 堆叠而成。输入首先经过 Embedding 和 Positional Encoding,然后逐层通过每个 Block,最终输出用于下游任务(如语言建模的 next-token prediction)。
下图展示了以 GPT 为代表的 Decoder-only LLM 的完整架构:从输入文本到预测下一个 Token 的全流程。你可以切换不同模型,查看它们的具体超参数配置。
一个 Transformer Block 算”一层”吗? 这取决于语境。业界说的”层数”(如 LLaMA-7B 有 32 层)指的是 Block 数——每个 Block 内部包含 Self-Attention + FFN 两个子层(sub-layer),但整个 Block 算作一层。所以”32 层”= 32 个 Block = 64 个子层。论文和代码中
n_layers/num_hidden_layers这个参数,指的就是 Block 的数量。
各组件详解
Input Embedding + Positional Encoding
Token Embedding 将离散的 token ID 映射为连续向量:
其中 是隐藏层维度(hidden size)。对于整个序列,输入张量的形状为:
Positional Encoding 为每个位置注入顺序信息。原始 Transformer 使用固定的正弦/余弦编码:
现代模型已发展出多种改进方案:
| 方案 | 代表模型 | 特点 |
|---|---|---|
| 正弦/余弦(固定) | 原始 Transformer | 不可学习,支持外推 |
| 可学习绝对位置编码 | GPT-2, BERT | 直接学习每个位置的向量 |
| RoPE (旋转位置编码) | LLaMA, Qwen | 在 Attention 计算中通过旋转编码相对位置 |
LayerNorm
Layer Normalization 对每个 token 的隐藏向量做归一化:
其中 是沿隐藏维度计算的均值和标准差, 是可学习的缩放和偏移参数。
Pre-LN vs Post-LN:
| 变体 | 公式 | 特点 |
|---|---|---|
| Post-LN(原始论文) | LayerNorm 在残差加法之后 | |
| Pre-LN(现代变体) | LayerNorm 在子层之前 |
- 原始 Transformer(2017)使用 Post-LN:
- GPT-2 起,多数模型切换到 Pre-LN:,因为它的训练更稳定
- LLaMA 进一步用 RMSNorm 替代 LayerNorm,去掉均值中心化和偏置项,计算更高效
Self-Attention(概述)
Self-Attention 是 Transformer 的核心。每个位置通过 Query、Key、Value 三组投影与序列中所有位置交互:
其中 是每个 attention head 的维度。Multi-Head Attention 将隐藏维度拆分为多个 head 并行计算,再拼接输出:
Self-Attention 的细节(QKV 数据结构、计算流程、Multi-Head 机制)将在后续文章中展开。
Feed-Forward Network (MLP)
每个 Transformer Block 中的 FFN 是一个逐位置(position-wise)的两层全连接网络:
- :将维度从 扩展到 (中间维度)
- :将维度从 压缩回
- 激活函数:原始论文用 ReLU,GPT-2 使用 GELU,LLaMA 使用 SwiGLU
激活函数的演进:ReLU → GELU → SwiGLU
激活函数的选择对 FFN 的表达能力有直接影响。LLM 的演进中经历了三代:
FFN 结构对比
为什么 SwiGLU 胜出? 关键在于门控机制(Gated Linear Unit)。标准 FFN 用 2 个权重矩阵: 过激活函数后乘 。而 SwiGLU 用 3 个权重矩阵,多出的 形成一个数据相关的门:
这种门控让网络能选择性地抑制或放大不同维度的信息,而 ReLU/GELU 只是对每个维度独立做非线性变换。Shazeer (2020, “GLU Variants Improve Transformer”) 的实验表明,在相同参数量下 SwiGLU 在 perplexity 上显著优于 GELU 和 ReLU。
参数量的权衡:SwiGLU 多了一个 矩阵(3 个矩阵 vs 2 个),为保持总参数量不变,FFN 中间维度从 缩小到约 。这就是为什么 LLaMA-7B 的中间维度是 11008()而不是 GPT 风格的 。
张量形状变化过程:
→ 经过 →
→ 经过 →
Residual Connection(残差连接)
每个子层(Self-Attention 和 FFN)都被一个残差连接包裹:
残差连接的作用:
- 缓解梯度消失:梯度可以通过”跳跃连接”直接回传,避免深层网络的梯度衰减
- 保持信息流:即使子层输出为零,原始信息也不会丢失
- 使深层堆叠成为可能:没有残差连接,堆叠 32 层甚至 126 层几乎不可能训练
注意:残差连接要求子层的输入和输出维度相同,这就是为什么 FFN 的输出维度必须回到 。
张量形状追踪
以 GPT-2 Small(, 序列长度 , batch size )为例,追踪完整的数据流:
| 阶段 | 张量形状 | 说明 |
|---|---|---|
| Token IDs | 整数序列 | |
| Token Embedding | 查表得到向量 | |
| + Positional Encoding | 加上位置向量 | |
| LayerNorm | 形状不变 | |
| Q, K, V 投影 | 每个 | 线性变换 |
| 拆分为 12 个 head | 每个 | per head |
| Attention 输出 | 拼接所有 head | |
| Residual Add | 加上输入 | |
| LayerNorm | 形状不变 | |
| FFN 中间层 | ||
| FFN 输出 | 压缩回原维度 | |
| Residual Add | 加上输入 |
上述过程重复 12 次(12 层),最终输出 的张量送入 LM Head 进行 next-token prediction。
Encoder-Decoder vs Decoder-only
原始 Transformer:Encoder-Decoder
原始 Transformer 为机器翻译设计,采用 Encoder-Decoder 结构:
- Encoder(6 层):对源序列做双向 Self-Attention(每个位置可以关注所有位置)
- Decoder(6 层):
- Masked Self-Attention:只能关注当前位置及之前的位置(因果 mask),防止信息泄漏
- Cross-Attention:对 Encoder 输出做 Attention,获取源序列信息
Decoder-only:现代 LLM 的主流
GPT 系列开创了 Decoder-only 架构,去掉 Encoder 和 Cross-Attention:
- 只保留 Masked Self-Attention(因果注意力)
- 每个 token 只能看到自己和之前的 token
- 统一了”理解”和”生成”:用同一架构完成所有任务
| 结构 | 代表模型 | Attention 类型 | 典型应用 |
|---|---|---|---|
| Encoder-Decoder | 原始 Transformer, T5, BART | 双向 + 因果 + 交叉 | 翻译、摘要 |
| Encoder-only | BERT, RoBERTa | 双向 | 分类、NLU |
| Decoder-only | GPT 系列, LLaMA, Qwen | 因果(Masked) | 文本生成、通用 LLM |
目前几乎所有主流 LLM(GPT-4、Claude、LLaMA、Qwen、Gemini)都采用 Decoder-only 架构。
典型模型超参数对比
| 参数 | 原始 Transformer | GPT-2 Small | GPT-2 XL | LLaMA-7B | LLaMA-3.1-8B |
|---|---|---|---|---|---|
| 隐藏维度 | 512 | 768 | 1600 | 4096 | 4096 |
| 层数 | 6 (Enc+Dec) | 12 | 48 | 32 | 32 |
| 注意力头数 | 8 | 12 | 25 | 32 | 32 |
| Head 维度 | 64 | 64 | 64 | 128 | 128 |
| FFN 中间维度 | 2048 | 3072 | 6400 | 11008 | 14336 |
| 词表大小 | 37000 | 50257 | 50257 | 32000 | 128256 |
| 上下文长度 | N/A | 1024 | 1024 | 2048 | 131072 |
| 总参数量 | 65M | 117M | 1.5B | 6.7B | 8B |
| LayerNorm | Post-LN | Pre-LN | Pre-LN | Pre-RMSNorm | Pre-RMSNorm |
| 激活函数 | ReLU | GELU | GELU | SwiGLU | SwiGLU |
| 位置编码 | 正弦/余弦 | 可学习绝对 | 可学习绝对 | RoPE | RoPE |
注:Head 维度 = 。LLaMA 系列使用 GQA(Grouped-Query Attention),其中 LLaMA-3.1-8B 的 KV head 数为 8(而非 32)。
推荐学习资源
如果你想更深入地学习 Transformer 架构,以下是我们精选的资源:
经典论文
- Vaswani et al.《Attention Is All You Need》 — Transformer 架构奠基论文,提出 self-attention 和 multi-head attention 机制,所有后续工作的源头。
- Lilian Weng《The Transformer Family Version 2.0》 — 系统梳理 Transformer 各种变体和改进,涵盖长上下文、高效注意力、自适应建模等方向,引用丰富的综述性参考。
视频课程
- 3Blue1Brown — Attention in Transformers (Neural Networks 系列) — 以精美数学动画闻名,直觉化解释 attention 机制的几何意义。Chapter 6 专门讲 attention,视觉效果极为出色。
- Andrej Karpathy “Neural Networks: Zero to Hero” — 从零手写 GPT,“Let’s build GPT” 一集(约 2 小时)从头实现 Transformer,是理解实现细节的最佳资源。配套 GitHub 代码和 Jupyter Notebook。
博客与教程(图文并茂)
- Jay Alammar《The Illustrated Transformer》 — 图文并茂的典范之作。通过数十张精心绘制的示意图逐步拆解 Transformer 架构,包括 encoder-decoder 堆栈、self-attention 的 Q/K/V 计算、multi-head attention、位置编码等。公认的最佳入门图解。
- Jay Alammar《Visualizing Neural Machine Translation》 — Illustrated Transformer 的前置阅读,图解 seq2seq + attention 机制的工作原理,帮助理解 attention 的起源。
- Harvard NLP《The Annotated Transformer》 — 对原始论文的逐行代码注释实现(PyTorch),将论文公式与代码一一对应,适合想深入理解每一行代码含义的读者。
交互实验
- Transformer Explainer (Georgia Tech / Polo Club) — 浏览器内运行 GPT-2 模型,实时观察 attention 计算过程。IEEE VIS 2024 发表,交互体验极佳。(poloclub.github.io/transformer-explainer/)
- Brendan Bycroft《LLM Visualization》 — GPT 推理过程的 3D 交互可视化,可以逐层观察数据流动和矩阵运算,视觉效果震撼。(bbycroft.net/llm)
- Financial Times《Generative AI Explained》 — FT 数据新闻团队制作的可视化叙事,以精美交互动画展示 LLM 工作原理。(ig.ft.com/generative-ai/)
总结
本文梳理了 Transformer 的整体架构:
- 核心思想:用 Self-Attention 替代循环结构,实现并行计算和全局信息聚合
- Block 组成:每个 Transformer Block 包含 LayerNorm → Self-Attention → Residual → LayerNorm → FFN → Residual
- 现代演进:从 Post-LN 到 Pre-LN,从 LayerNorm 到 RMSNorm,从 ReLU 到 SwiGLU,从固定位置编码到 RoPE
- 架构选择:现代 LLM 几乎都采用 Decoder-only 架构
在后续文章中,我们将深入每个组件的细节:
- QKV 的数据结构与直觉:理解 Query、Key、Value 到底是什么
- Attention 计算详解: 矩阵乘法的完整流程
- Multi-Head Attention:多头并行的原理和实现
- KV Cache:推理加速的关键技术