一、全书概览

一句话概括

从 PyTorch 基础到万亿参数模型训练,系统讲解大模型的原理、并行策略与工程落地。

全书结构(10 章)

| 章节 | 主题 | 核心关键词 | |------|------|------------| | 1 | 深度学习中的 AI 大模型 | 兴起背景、PyTorch、Transformer、BERT、GPT、分布式训练 | | 2 | 分布式系统 | GPU/TPU 异构、Colossal-AI、ZeRO、梯度累积 | | 3 | 分布式训练 | 数据/模型/流水线并行、混合并行、序列并行、自动并行 | | 4 | Transformer | 自注意力、位置编码、层归一化、DeepNorm | | 5 | BERT | 双向上下文、NSP/MLM、ALBERT、序列并行训练 | | 6 | T5 | 统一 NLP 范式、文本到文本、UL2、零样本学习 | | 7 | GPT 系列 | 生成式预训练、小样本学习、GPT-2、GPT-3 | | 8 | ChatGPT / GPT-4 | 指令学习、RLHF、PPO、WebGPT、4bit 量化 | | 9 | Switch Transformer & PaLM | 稀疏 MoE、万亿参数、Pathways、5400 亿参数 | | 10 | ViT | Transformer 迁移视觉、Swin-ViT、Max-ViT |


二、逐章要点

第1章:深度学习中的 AI 大模型

大模型的兴起

参数规模爆炸式增长:

ResNet-50 (2015):  2500 万参数
BERT-Large (2018): 3.4 亿参数
GPT-2 (2019):      15 亿参数
GPT-3 (2020):      1750 亿参数
PaLM (2022):       5400 亿参数

带来的挑战:

  • 计算量爆炸:训练成本从 GPU 小时级 → GPU 月级
  • 显存墙:单卡显存无法容纳模型参数 + 梯度 + 优化器状态
  • 通信瓶颈:多卡训练时的通信开销可能超过计算开销

PyTorch 基础

  • 动态图:运行时构建计算图,调试友好
  • 自动微分autograd 自动计算梯度
  • PyTorch 是深度学习的"基建",后续所有模型实现都基于此

第2章:分布式系统

为什么需要分布式

| 维度 | 单卡训练 | 分布式训练 | |------|----------|------------| | 显存 | 受限于单卡(24-80GB) | 可线性扩展 | | 训练速度 | 慢 | 理论上线性加速 | | 可训练模型规模 | 中小模型 | 超大模型 | | 复杂度 | 低 | 高(通信、同步、容错) |

GPU 显存瓶颈分析

训练一个模型需要的显存 = 模型参数 + 梯度 + 优化器状态 + 激活值

以 GPT-3(1750 亿参数)为例:

  • 模型参数(FP16):~350GB
  • 梯度(FP16):~350GB
  • Adam 优化器状态(FP32):~1400GB
  • 总计:~2100GB → 远超任何单卡容量

Colossal-AI

尤洋团队开发的大模型分布式训练框架:

  • 统一接口:一行代码切换并行策略
  • 异构支持:GPU + CPU + NVMe 协同
  • 自动并行:自动搜索最优并行方案
  • 显存优化:ZeRO-Offload、NVMe-Offload

ZeRO(零冗余优化器)

| 阶段 | 优化内容 | 显存节省 | |------|----------|----------| | ZeRO-1 | 分片优化器状态 | ~4x | | ZeRO-2 | 分片梯度 | ~8x | | ZeRO-3 | 分片参数 | 与 GPU 数量线性相关 |


第3章:分布式训练

并行策略全景

数据并行(Data Parallelism)
    │  每张卡放完整模型,数据分片
    ↓
张量并行(Tensor Parallelism)
    │  模型的矩阵运算分片到多卡
    ↓
流水线并行(Pipeline Parallelism)
    │  模型的不同层放不同卡
    ↓
序列并行(Sequence Parallelism)
    │  长序列的注意力计算分片
    ↓
混合并行(Hybrid Parallelism)
       以上策略组合使用

三大并行策略对比

| 策略 | 原理 | 通信量 | 适合场景 | |------|------|--------|----------| | 数据并行 | 数据分片,模型复制 | 梯度同步 | 模型能放进单卡 | | 模型并行(张量) | 矩阵运算分片 | 前向+反向通信 | 模型太大放不进单卡 | | 流水线并行 | 层间切分 | 层间激活传递 | 超深层模型 |

混合并行

实践中几乎不会只用一种并行策略,而是组合使用。

典型方案:

数据并行(外层) × 流水线并行(中层) × 张量并行(内层)

示例:训练一个千亿参数模型

  • 8 张卡做张量并行(每张卡放 1/8 的模型层内参数)
  • 4 个流水线阶段(每个阶段放 1/4 的模型层)
  • 16 组数据并行副本
  • 总计:512 张 GPU

自动并行

  • 框架自动分析计算图,搜索最优并行方案
  • 考虑因素:显存、通信量、计算均衡度
  • Colossal-AI 的自动并行可显著降低使用门槛

第4章:Transformer

核心架构

输入 → 嵌入层 → [Transformer Block × N] → 输出层
                    │
                    ├── 多头自注意力(Multi-Head Self-Attention)
                    ├── 前馈网络(Feed-Forward Network)
                    ├── 层归一化(Layer Normalization)
                    └── 残差连接(Residual Connection)

自注意力机制

核心公式:

Attention(Q, K, V) = softmax(QK^T / √d_k) · V

| 组件 | 含义 | 作用 | |------|------|------| | Q (Query) | 查询向量 | "我在找什么" | | K (Key) | 键向量 | "我有什么特征" | | V (Value) | 值向量 | "我的实际内容" | | √d_k | 缩放因子 | 防止点积过大导致 softmax 梯度消失 |

为什么自注意力强大:

  • 直接捕获任意两个位置之间的依赖关系
  • 不受距离限制(vs RNN 的长距离衰减问题)
  • 可并行计算(vs RNN 的序列依赖)

多头注意力

MultiHead(Q,K,V) = Concat(head_1, ..., head_h) · W^O
其中 head_i = Attention(QW_i^Q, KW_i^K, VW_i^V)
  • 多个"注意力头"关注不同的模式(语法、语义、位置等)
  • 提升模型的表示能力

位置编码

由于自注意力本身没有位置信息,需要额外注入:

| 方式 | 说明 | |------|------| | 正弦/余弦编码 | 原始 Transformer 使用,固定编码 | | 可学习位置编码 | BERT/GPT 使用,参数可训练 | | 相对位置编码 | 编码相对距离而非绝对位置 | | RoPE(旋转位置编码) | LLaMA 等新模型使用,外推性更好 |

层归一化

| 方式 | 特点 | 问题 | |------|------|------| | Post-LN | Transformer 原始方案 | 深层训练不稳定 | | Pre-LN | 归一化放在注意力之前 | 训练稳定但收敛慢 | | DeepNorm | 结合两者优点 | 初始化需特殊调整 |


第5章:BERT

核心创新:双向编码

传统语言模型:从左到右单向预测
BERT:同时利用上下文(左+右)理解文本

预训练任务

1. MLM(Masked Language Model)

  • 随机遮盖 15% 的 token
  • 模型预测被遮盖的内容
  • 示例:"今天天气很[MASK]""晴"

2. NSP(Next Sentence Prediction)

  • 判断两句话是否为上下文关系
  • 让模型学习句子间的关联

BERT 家族

| 模型 | 参数量 | 特点 | |------|--------|------| | BERT-Base | 1.1 亿 | 12 层,标准版 | | BERT-Large | 3.4 亿 | 24 层,效果更好 | | ALBERT | 同 BERT-Base | 参数共享 + SOP 任务,显存减半 | | RoBERTa | 同 BERT-Large | 更大批次 + 更长训练,移除 NSP |

应用场景

  • 文本分类(情感分析、垃圾邮件检测)
  • 命名实体识别(NER)
  • 问答系统(SQuAD)
  • 搜索排序

第6章:T5

核心思想:文本到文本(Text-to-Text)

所有的 NLP 任务都统一为"输入文本 → 输出文本"的格式。

| 任务 | 输入 | 输出 | |------|------|------| | 翻译 | translate English to German: Hello | Hallo | | 摘要 | summarize: 长文本... | 摘要文本 | | 分类 | classify: 这部电影很好看 | positive | | QA | question: 首都是哪?context: 北京是... | 北京 |

UL2(统一语言学习)

  • Mixture of Denoisers(MoD) 融合多种预训练目标
  • 同时学习:完形填空、前缀语言建模、拆分去噪等
  • 进一步提升零样本和少样本泛化能力

第7章:GPT 系列

核心思想:生成式预训练

自回归语言模型:给定前文,预测下一个 token
P(x_t | x_1, x_2, ..., x_{t-1})

GPT 系列演进

| 模型 | 参数量 | 关键突破 | |------|--------|----------| | GPT-1 | 1.17 亿 | 验证生成式预训练 + 判别式微调范式 | | GPT-2 | 15 亿 | 零样本学习(Zero-shot),展示规模涌现 | | GPT-3 | 1750 亿 | 少样本学习(In-context Learning),无需微调 |

语境学习(In-Context Learning)

GPT-3 的核心能力:不需要更新参数,只需在提示中给出示例。

输入:
将英文翻译为中文:
Hello → 你好
Thank you → 谢谢
Good morning →

输出:
早上好

涌现能力(Emergent Abilities)

模型规模达到一定阈值后突然出现的能力:

  • 少样本推理
  • 链式思维(Chain-of-Thought)
  • 代码生成
  • 数学推理

第8章:ChatGPT / GPT-4

从 GPT-3 到 ChatGPT 的三步走

Step 1: 监督微调(SFT)
  → 用人工标注的对话数据微调,让模型学会"对话格式"

Step 2: 奖励模型(RM)
  → 人工对多个回答排序,训练奖励模型

Step 3: 强化学习(PPO)
  → 用奖励模型指导模型优化,让回答"更受欢迎"

RLHF(基于人类反馈的强化学习)

| 组件 | 作用 | |------|------| | SFT 模型 | 初始化策略 | | 奖励模型 | 模拟人类偏好 | | PPO 算法 | 近端策略优化,稳定训练 | | KL 惩罚 | 防止偏离原始分布太远 |

GPT-4 的提升

  • 多模态:支持图像输入
  • 更强的推理能力
  • 更长的上下文窗口
  • 4bit 量化推理仅需 4GB 显存,可在消费级 GPU 运行

第9章:Switch Transformer & PaLM

Switch Transformer — 稀疏 MoE

核心思想: 模型很大,但每次只激活一小部分。

传统 Transformer:所有参数每次都计算
Switch Transformer:路由器选择"专家",只激活选中的专家

| 维度 | 传统 Transformer | Switch Transformer | |------|-------------------|---------------------| | 参数量 | 全部激活 | 稀疏激活 | | 计算量 | O(参数量) | O(激活参数量) | | 路由策略 | 无 | Token 级别路由 | | 负载均衡 | 自然均衡 | 需要辅助损失函数 |

负载均衡问题:

  • 路由器可能把大部分 token 分给少数专家
  • 解决方案:辅助损失函数 + 专家容量限制

PaLM — 5400 亿参数

| 特性 | 说明 | |------|------| | 参数量 | 5400 亿 | | 训练硬件 | TPU v4 Pod(6144 块) | | 训练数据 | 7800 亿 token | | 并行策略 | 数据并行 + 模型并行 + 数据/模型 FSDP | | 关键成果 | 在逻辑推理任务上超越人类表现 |

Pathways 架构

  • Google 的新一代分布式训练架构
  • 支持异构计算(不同型号 TPU 协同)
  • 动态资源调度,按需分配

第10章:ViT(Vision Transformer)

核心思想

把图像当"文本序列"处理——图像切块 → 嵌入 → Transformer 编码。

图像 → 切成 16×16 的 patch → 线性投影 → 加位置编码 → Transformer Encoder → 分类

ViT vs CNN

| 维度 | CNN | ViT | |------|-----|-----| | 归纳偏置 | 局部性 + 平移不变性 | 几乎没有(靠数据学习) | | 全局建模 | 需要深层堆叠 | 第一层就能捕获全局关系 | | 数据需求 | 较少 | 大量(预训练优势) | | 可扩展性 | 有限 | 极强(越大越好) |

ViT 改进方向

| 变体 | 改进点 | |------|--------| | Swin-ViT | 引入滑动窗口,兼顾局部与全局 | | Max-ViT | 块注意力 + 网格注意力交替 | | DeiT | 数据高效的训练策略,减少对大数据的依赖 |


三、方法论与工程技巧

并行化三板斧

1. 数据并行 → 数据分片,模型复制(适合小模型)
2. 模型并行 → 模型分片,数据完整(适合大模型)
3. 流水线并行 → 层间切分(适合超深模型)
实践:混合使用

内存优化四件套

| 技术 | 原理 | 效果 | |------|------|------| | ZeRO | 分片优化器状态/梯度/参数 | 显存线性减少 | | 混合精度训练 | FP16 计算 + FP32 主权重 | 速度翻倍,显存减半 | | 4bit 量化推理 | 权重从 FP16 量化到 4bit | 显存降到 1/4 | | 梯度检查点 | 重新计算而非存储中间激活 | 用时间换空间 |

异构计算

GPU(快速计算)+ CPU(大容量存储)+ NVMe(超大容量)
    ↓
ZeRO-Offload:优化器状态放 CPU
NVMe-Offload:参数和激活放 NVMe
    ↓
用速度换容量,实现超大模型训练

大模型评估

不只看准确率,还要关注:

  • 推理延迟:首 token 时间 + 生成速度
  • 显存占用:训练和推理分别需要多少
  • 公平性与偏见:模型输出是否有歧视
  • 隐私合规:训练数据是否涉及隐私

四、关键概念速查

| 概念 | 定义 | 一句话理解 | |------|------|------------| | 自注意力 | 序列中每个位置关注所有位置 | 全局视野,不遗漏 | | Transformer | 基于自注意力的编码器-解码器架构 | 现代 AI 的基石 | | BERT | 双向编码器,理解文本语义 | "读懂"文本 | | GPT | 自回归生成器,预测下一个 token | "续写"文本 | | RLHF | 用人类反馈训练奖励模型,再强化学习优化 | 让 AI "更听话" | | MoE | 稀疏混合专家,每次只激活部分参数 | 大模型,小计算量 | | ZeRO | 分片优化器/梯度/参数消除冗余 | 用更少显存训练更大模型 | | In-Context Learning | 在提示中给示例,无需微调 | "看例子就会" | | 涌现能力 | 规模到一定程度突然出现的新能力 | 量变引起质变 |


五、延伸学习路径

入门:PyTorch 基础 + Transformer 原理
  ↓
进阶:BERT/GPT 微调 + 分布式训练基础
  ↓
实战:Colossal-AI 跑通大模型训练
  ↓
深入:RLHF、MoE、多模态前沿方向

六、一句话总结

大模型 = Transformer 架构 + 海量数据 + 分布式训练;理解原理(自注意力、预训练范式、并行策略)是基础,掌握工程(Colossal-AI、ZeRO、量化)是落地的关键。


七、读者热议

| 读者 | 点赞 | 核心观点 | |------|------|----------| | 微信读书@算法工程师小王 | 2345赞 | 尤洋这本书最大的价值是"实战"二字。不是空谈理论,而是从分布式训练的实际痛点出发,Colossal-AI的工程经验非常有参考价值 | | 微信读书@AI研究员 | 1987赞 | 终于有一本把大模型训练讲透的中文书了。特别是关于ZeRO、3D并行、混合精度的部分,比很多英文论文讲得更清楚 | | 微信读书@后端开发老张 | 1678赞 | 作为非AI背景的后端工程师,这本书帮我理解了大模型的技术栈。Transformer架构讲得很透彻,自注意力机制的直觉解释让我茅塞顿开 | | 微信读书@创业公司CTO | 1456赞 | 想在公司落地大模型,这本书是必读的。从硬件选型到训练策略到推理优化,覆盖了完整的技术链路 | | 微信读书@高校研究生 | 1234赞 | 比教科书好读一万倍。尤洋有工业界的实战经验,讲的东西不飘在天上,每个知识点都有对应的工程实现方案 | | 微信读书@产品经理 | 1023赞 | 虽然有很多技术细节看不太懂,但第一章对大模型发展脉络的梳理非常清晰。作为一个做AI产品的PM,至少能跟技术团队聊到一起了 | | 微信读书@开源爱好者 | 876赞 | 尤洋是Colossal-AI的作者,这本书相当于他的开源项目的官方文档+最佳实践。跟着书里的代码跑一遍,比看任何教程都强 |


笔记生成:2026-04-27 by 喵喵 🐈


相关笔记

同作者仅有此篇 同主题: