总览
本章节范围:从 04 章的 attention 子层出发,把它跟另一个核心子层 FFN 用归一化 + 残差包起来,组装成 Transformer block,然后堆叠成完整模型。读完 04 + 05 章就是 GPT 主干。 目标读者:工程师 / 研究者;假设已读 04-注意力机制 完整 5 篇。
范围与边界
- 包含:FFN 三步 (上投影 / 激活 / 下投影) 与 GELU / SwiGLU 演化 / LayerNorm vs RMSNorm / pre-norm vs post-norm / 残差连接 + residual stream 概念 / 完整 block 顺序 / N 层堆叠的参数分布与计算开销。
- 不包含 (各项外链):
- MoE (Mixture of Experts): FFN 章节末尾点到,详见 interconnect/05-LLM并行通信/08-专家并行
- Attention 内部机制:已在 04-注意力机制,本章 attention 仅作"完整 block 里的一个子层" 引用
- 位置编码 (RoPE 等):已在 03-文本如何变成数字/04-位置编码, block 内 RoPE 注入位置不再展开
- 训练目标 / loss:归 06-预训练
- 量化与推理优化:归 08-推理,本章只讲 fp32/bf16 主线
- 梯度消失 / 数值稳定的完整理论:本章仅讲与 LayerNorm / 残差直接相关的部分
名词定义
本章节子文档默认这些名词已定义,不再重复;父总览 1 总览 已定义的 (FFN / MLP / Transformer block) 在此不重列。
| 名词 | 定义 |
|---|---|
| FFN intermediate ($h_{\text{ffn}}$) | FFN 中间维度,典型 $\sim 4h$ (Vaswani / GPT 系);SwiGLU 下因为有 gate 通常取 $\sim \frac{8}{3} h$ 以保持总参数与 4× 配置相近 |
| GELU (Gaussian Error Linear Unit) | 用高斯 CDF 加权输入的激活,GPT 系经典选择,$\mathrm{GELU}(x) = x \cdot \Phi(x)$ |
| SiLU / Swish | $\mathrm{SiLU}(x) = x \cdot \sigma(x)$, sigmoid 加权输入,SwiGLU 的基础激活 |
| SwiGLU | SwiGLU FFN = $W_{\text{down}}(\mathrm{SiLU}(W_{\text{gate}} \mathbf{x}) \odot W_{\text{up}} \mathbf{x})$, Llama 系标配,引入 gating 机制 |
| LayerNorm | 对每个样本的 hidden 维度做均值 0 方差 1 归一化,含两个可学习参数 (gain $\gamma$, bias $\beta$) |
| RMSNorm | 只做 root-mean-square 归一化,去掉均值减法和 bias,比 LayerNorm 快约 7-64%, Llama / Qwen / DeepSeek 全用 |
| Pre-norm | 归一化在子层前:$\mathbf{x} + \text{Sublayer}(\text{Norm}(\mathbf{x}))$,训练稳定,现代主流 |
| Post-norm | 归一化在子层后:$\text{Norm}(\mathbf{x} + \text{Sublayer}(\mathbf{x}))$, Vaswani 原版,深层训练不稳 |
| Residual stream | Anthropic Transformer Circuits 视角下,残差连接构成的"主干带";每个 block 从中读取信息又向其中写入 |
| Transformer block | attention 子层 + FFN 子层 + 各自的归一化与残差;堆叠 $L$ 次构成完整模型骨架 |
@tbl-block-glossary 本章共享名词
子文档索引
按"局部 → 全局" 顺序排列,每篇配独占技术内核 + 负边界 (脑暴契约,各篇不重新讨论):
| 篇 | 一句话 | 独占技术内核 (写到深) | 负边界 (不展开) |
|---|---|---|---|
| 02-激活与FFN | FFN 三步 + GELU/SwiGLU 演化 | FFN 占 ~2/3 模型参数 → 上投影 + 激活 + 下投影 三步语义 → GELU 数学 + GPT 系沿用 → SwiGLU 引入 gating + $h_{\text{ffn}} = \frac{8}{3} h$ 系数来源 → Llama 全线 SwiGLU 实证 → 单 FFN 计算 vs attention 计算占比 | MoE expert 路由仅点到指向专家并行章 / Flash 等 kernel 优化不展开 / activation function 全谱系 (ReLU / Mish 等) 不展开 |
| 03-归一化与残差 | LayerNorm vs RMSNorm / pre-norm vs post-norm / 残差几何 | LayerNorm 数学与可学习参数 → RMSNorm 去掉均值减法的工程动机 → 实测 RMSNorm 提速 7-64% → post-norm (Vaswani) 训练不稳的具体表现 → pre-norm 解掉训练稳定性 (Xiong 2020 理论 + 实证) → residual 几何意义 (Anthropic residual stream) → DeepNorm 等深层稳定方案点到为止 | 完整梯度消失理论 / BatchNorm / GroupNorm 等不在本章 / 完整正则化方案 (Dropout / DropPath) 不展开 |
| 04-block 与堆叠 | 完整 block 顺序 + N 层选择 + 参数与计算分布 | Vaswani 原版 vs Llama 现代 block 顺序对比 → attention + FFN + 2 个 norm + 2 个残差的完整顺序 → 层数 $L$ 与模型大小的关系 → 单 block 参数分布 (attention 约 1/3, FFN 约 2/3) → 计算 FLOPs 分布 (FFN 约 2/3) → 加深 vs 加宽的 scaling 实证 | scaling laws 完整内容归 06-预训练/04-scaling-laws / 推理时 block 串行 vs 训练时全并行 见 02-大模型是什么 / KV cache 见 08-推理 |
@tbl-block-index 子文档索引 (含边界契约)
章节定位:把局部组装成全局
本章承担"把零件组装成发动机" 的角色:
| 04-注意力机制 | 05-组装GPT (本章) | 06-预训练 |
|---|---|---|
| Attention 子层的内部机制 | Attention + FFN + 归一化 + 残差 → block → 堆叠 → 完整模型骨架 | 在堆叠好的模型上跑 next-token prediction 训练 |
读完本章,读者拿到的是 GPT 模型的结构图:知道每个 block 长什么样,模型由几个 block 组成,各部分占多少参数和计算。具体训练目标 / 训练循环 / scaling laws 归下一章。
与外部专题的接缝
| 外链主题 | 在本章哪里引 | 目标 |
|---|---|---|
| MoE 路由与 expert | 02-激活与FFN 末尾 | interconnect/05-LLM并行通信/08-专家并行 |
| 训练目标 (CLM loss) | 04-block 与堆叠 末尾 | 06-预训练/02-语言建模目标 |
| Scaling laws | 04-block 与堆叠 末尾 | 06-预训练/04-scaling-laws |
| Flash Attention | 04-注意力机制 末尾 (本章不重复) | 外部专题,未覆盖 |
| 量化 (INT8 / FP8) | 不在本章 | 08-推理/05-量化简介 |
@tbl-block-external 与外部专题的外链对照
参考资料
教学蓝本:
- Sebastian Raschka. Build a Large Language Model (From Scratch). Manning, 2024. Chapter 4.
关键论文:
- Vaswani et al. Attention Is All You Need. NeurIPS 2017. https://arxiv.org/abs/1706.03762 (Transformer block 原始定义)
- Shazeer. GLU Variants Improve Transformer. 2020. https://arxiv.org/abs/2002.05202 (SwiGLU)
- Zhang, Sennrich. Root Mean Square Layer Normalization. NeurIPS 2019. https://arxiv.org/abs/1910.07467 (RMSNorm)
- Xiong et al. On Layer Normalization in the Transformer Architecture. ICML 2020. https://arxiv.org/abs/2002.04745 (pre-norm vs post-norm 理论分析)
章内交叉引用:父总览 1 总览 给全章节地图与共享名词 / 形状约定。