跳到主要内容

把训练跑起来 — 流程、规模与拆到几千张卡上

这一章讲三件事: 一次真实的训练长什么样(三套数据、整集扫完再扫、学习率先大后小); 第 01 章那个悬念的兑现——大模型为什么不按经典理论过拟合,「越大越好」有什么依据; 以及大到一个装不下时,怎么把训练拆到几千张卡上。 它在全书的位置:前半(第 01–04 章)讲「原理上怎么训」,这章讲「实际上怎么训」

1. 顶层全景:一场训练的三块表

把第 04 章的下山循环真正跑起来,你要同时盯三块表1:

数据三块: 训练集(拿来调参数) · 验证集(拿来挑配置) · 测试集(拿来最后验收)
节奏一条: 学习率 先大后小
曲线两条: 训练损失(应一直降) · 验证损失(降到谷底后回升 = 过拟合露头)

图说:三块表背后是三件不同的事——「学好」「挑好」「验好」,混在一起就全废。

2. 三套数据,一件都不能少

为什么要三套?逐级看:

  • 第 01 章讲过,训练集上的成绩会撒谎(过拟合)。所以至少要把数据分成 训练集(用来调参数)和测试集(训练完的模型从没见过,用来估真实水平)2;
  • 但训练过程中还有一堆超参数要挑:层数、学习率、正则化强度…… 如果你用测试集来挑它们,挑到最后测试集也被「偷看」了,验收就失效。 所以再切出第三块:验证集(validation set),专供训练过程中挑配置用, 和训练集、测试集都不重叠3

训练的进度单位是(epoch):把全部训练样本完整扫一遍,叫一轮。 一次训练通常跑几十到几百轮4

两条损失曲线的标准剧情是:训练损失随轮次一路下降(优化在干活); 验证损失先降,到某个谷底后开始回升——回升点就是过拟合的起点: 模型开始背训练集特有的巧合了5

而这里轮到兑现第 01 章的悬念了。 按上面的剧情,容量极端的大模型 应该早早就验证损失回升;可实际上它们常常一直改善,不回升。 原书给的解释方向(引 Belkin et al. 2018)是:当训练集上的表现已经接近满分, 模型的归纳偏置取代「背题」成了优化的主要驱动力——继续下降的方向 由「结构偏好什么样的解」引导,而不是由「记住这道题」引导6。 注意这是「可能由于」(may be due to),原书用词留有余地——这是一个有理论方向、 无完备证明的现象

3. 学习率先大后小;大模型训练是手工活

学习率不是一个数,是一条随时间变化的曲线,行话叫学习率调度(learning rate schedule)。通行策略直接对应第 04 章的两种死法7:

  • 前期大: 趁还在山上,大步快走,免得早早陷进浅坑;
  • 后期小: 到了窄谷附近,小步挪动,免得在谷底弹跳。

给规模一个坐标:超大模型的训练,是几千张高端 GPU 跑几个月、 花几百万美元的工程;而且不是按下启动键就完事——过程中要靠人盯着 损失曲线的动态,做很多人工干预8

4. 今天的范式:预训练 + 微调

与其每个任务都从零训练,不如分两步走,这是当今的主流范式:

  1. 预训练(pre-training):在又大又杂的数据上把模型先训好 (比如在整个互联网的文本上学「猜下一个词」);
  2. 微调(fine-tuning):拿这个现成的模型当起点,在你的具体任务 (行话叫下游任务)的数据上接着训——不是随机起步,而是从预训练好的 那堆参数出发接着下山9

它为什么成立,原书给了两条理由10:一是下游任务的数据常常太少, 直接训会过拟合,而两个任务若够相似,原任务里学到的统计结构 就是下游任务的好归纳偏置;二是省钱——预训练那份天价账单只付一次, 之后每个下游任务只付微调的小钱。

两个实例坐标:计算机视觉(让机器从图像里读出信息的那个领域)的多数应用, 都从「在 ImageNet(一个 120 万张图、1000 类的图片分类数据集)上预训练好的模型」 出发微调;今天那些能对话的 助手模型,也是拿「只会续写文字的预训练模型」微调出来的(第 11 章细讲)11

5. 规模本身就是性能:缩放律

第 01 章悬念的另一半:「大」到底有多大好处?原书给的答案是 一组经验规律,叫缩放律(scaling laws,中文也叫规模法则)12:

测试损失随数据量、算力、参数个数三个量的增长,按幂律平滑下降—— 条件是三者要同步放大。

「幂律」的意思是:在双对数坐标纸上,损失对这三个量各自都呈一条直线—— 每翻十倍,损失按固定比例降一截。它把「变大」从玄学变成了工程预算表: 花多少钱、买多少数据、堆多少参数,能换来多少损失下降,可以事先估算13

这本书出版的年代(2023–2024),规模的两端是这样的14:

参数个数训练总计算量参照
视觉模型1 千万 – 1 亿10¹⁸–10¹⁹ 次运算
语言模型1 亿 – 数千亿10²⁰–10²³ 次运算最大一档 ÷ 第 02 章的单卡速度 ≈ 一张卡不停算几十年到几百年(补充:不在书里,按本表与第 02 章的数自算)

数量最大的那一档,叫大语言模型(Large Language Model, LLM)—— 用自回归方式(第 03 章)在海量文本上训练出来的超大模型, 第 09 章讲它的结构、第 11 章讲它训完会什么15

数据从哪来?精细标注的答案太贵、规模上不去,所以大模型训练用的是 从互联网自动汇集、几乎不人工清洗的数据,还常常是多种模态混在一起的 (网页上的文和图、视频里的声和像)。给一张原书的数据集坐标表16:

数据集年份规模
ImageNet(图)2012120 万张 / 150 GB
LAION-5B(图)202258 亿张 / 240 TB
WMT-18(文,德译英)2018约 1400 万本书的体量 / 8 GB
The Pile(文)2020约 16 亿本书的体量 / 825 GB
OSCAR(文)2020约 120 亿本书的体量 / 6 TB

(原书的「本书」按 250 页 × 2000 字符估算。)这张表横跨十年,文本数据 从「千万本书」涨到「百亿本书」,这就是缩放律的燃料。算力账同样夸张:原书一张图 把历代名模型的训练算力从 2012 年的 AlexNet(10¹⁸ 次)排到 2022 年的 PaLM 级(10²³ 开外),并在图上叠了电费虚线——参照物是全美国 2021 年 总用电 3920 TWh17

6. 装不下就拆开:四种并行(主走查)

当模型大到一张卡装不下(回忆第 02 章:单卡内存 8–80 GB), 训练要拆到多张卡上。原书给了四种拆法,我们用「一个 70 GB 的模型、 4 张 24 GB 的卡」当主走查(数字为演示编的,量级符合实际)18:

拆法一:数据并行(DDP)。 每张卡都存完整模型(70 GB 放不下? 那这法用不了——它要求模型装得进单卡)。4 张卡各拿一批数据的四分之一, 各自前向、反向,反向时把各自算出的梯度互相传一遍、求平均, 保证四份副本始终同步。效果:每趟用的数据份量 ×4,速度 ≈ ×4。

拆法二:分片(FSDP)。 模型装不下单卡时的解法:把参数、梯度、 优化器状态切成片,4 张卡各存 1/4(每张只背 17.5 GB);哪层要算了, 临时把那一层的碎片从各卡收拢(gather)过来,用完再放掉。 效果:能训的模型大小随卡数线性涨;代价是卡间通信量大增, 要靠「通信和计算重叠」来藏住。

拆法三:流水线并行。切:1–25 层放卡 1,26–50 层放卡 2…… 数据像过流水线一样流过四张卡。卡间只传层与层之间的激活, 不用传参数——用激活的通信换参数的通信。

拆法四:张量并行。单独一层都装不下一张卡时:矩阵乘法可以 切成几块算再拼回去,把一层内部的矩阵切到多张卡上。

DDP: [模型][模型][模型][模型] 各算 1/4 批,反向时同步梯度
FSDP: [¼模型][¼模型][¼模型][¼模型] 用到哪层临时收拢哪层
流水线: [层1-25]→[层26-50]→[层51-75]→[层76-100] 传的是激活
张量: 一层的矩阵本身切成四块算

图说:四种拆法回答同一个问题——「装不下」,但切的东西不同:
切数据、切参数、切层、切层内部。

7. 作者的判断与证据

  • 「大模型不过拟合可能因为归纳偏置接管」:原书明确标为推测(may be due to), 引 Belkin et al. 2018。这是全章最该记住的「有方向的坦白」;
  • 缩放律是经验规律(Kaplan et al. 2020),不是定理——它是大量测量的拟合, 原书用「remarkable」形容,但没有给成立条件之外的保证;
  • 训练成本数字(几千卡、几个月、几百万美元)是作者给的行业量级陈述, 没有逐项账单;数据集表与训练成本图引自 Sevilla et al. 2022/2023;
  • **「微调是视觉应用主策略、也是 LLM 变助手的路」**是作者对 2023 年现状的 概括,今天仍然成立。

8. 边界与局限

  • 缩放律发表后有重要修正:2022 年 Chinchilla 论文指出当时的模型普遍 「数据喂得不够」,模型每翻一倍数据也该翻一倍——本书 2023 年版引的是 Kaplan 2020 的原始版,未含这条修正(补充,不在书里,来自通用知识);
  • 「验证损失回升」这套过拟合剧情,在第 2 节说的超大模型上常常不上演—— 两套描述都在书里,读到时注意它们的适用范围;
  • 四种并行只给了原理;真实大训练是四者混用,工程细节(通信拓扑、容错) 超出本书范围;
  • 微调怎么省钱——只调一小撮参数的那招——是第 12 章第 4 节。

9. 可带走的

  1. 三块数据各管一件事:训练集调参数、验证集挑配置、测试集只许用一次;
  2. 训练进度按「轮」计;验证损失回升 = 过拟合露头;
  3. 大模型常常不回升——经典过拟合剧情在极端容量下失效,原因只有方向性解释;
  4. 学习率先大后小,对应「先别困住、后别弹跳」;
  5. 预训练 + 微调是默认范式:天价账单付一次,每个任务只付小钱;
  6. 缩放律:损失对数据/算力/参数按幂律下降——「变大」是可预算的工程;
  7. 大模型训练的燃料是免标注的互联网数据——这正是第 01 章「无监督」形状的威力;
  8. 模型装不下时有四种切法:切数据(DDP)、切参数(FSDP)、切层(流水线)、 切层内矩阵(张量并行)。

10. 原文地图

主题原书章原文位置
训练/验证/测试三套Training protocolstext/11-fm-training-protocols.txt:6(搜「at least two sets」) · text/11-fm-training-protocols.txt:18(搜「is disjoint from」)
轮与过拟合曲线Training protocolstext/11-fm-training-protocols.txt:23(搜「epochs」) · text/11-fm-training-protocols.txt:27(搜「reach a minimum」)
大模型不回升 + BelkinTraining protocolstext/11-fm-training-protocols.txt:49(搜「Paradoxically」)
学习率先大后小Training protocolstext/11-fm-training-protocols.txt:61(搜「schedule during training」)
几千卡几个月几百万美元Training protocolstext/11-fm-training-protocols.txt:71(搜「several million dollars」)
微调Training protocolstext/11-fm-training-protocols.txt:93(搜「fine」)
缩放律The benefits of scaletext/12-fm-the-benefits-of-scale.txt:1(搜「scal」)
参数量与算力量级The benefits of scaletext/12-fm-the-benefits-of-scale.txt:22(搜「10–100 million」)
数据集表The benefits of scaletext/12-fm-the-benefits-of-scale.txt:46(搜「ImageNet」)
训练成本图与美国用电The benefits of scaletext/12-fm-the-benefits-of-scale.txt:100(搜「3920TWh」)
LLMThe benefits of scaletext/12-fm-the-benefits-of-scale.txt:101(搜「As of 2024」)
DDP / FSDP / 流水线 / 张量并行Large-Scale Parallel Trainingtext/13-fm-large-scale-parallel-training.txt:10(搜「Distributed Data」) · text/13-fm-large-scale-parallel-training.txt:21(搜「Fully Sharded」) · text/13-fm-large-scale-parallel-training.txt:36(搜「pipeline par」) · text/13-fm-large-scale-parallel-training.txt:29(搜「ten」)

Footnotes

  1. 出处:「Training protocols」第 1–4 段(text/11-fm-training-protocols.txt:2,搜「protocol」)。

  2. 出处:「Training protocols」第 5–12 段(text/11-fm-training-protocols.txt:6,搜「at least two sets」)。

  3. 出处:「Training protocols」第 14–20 段(text/11-fm-training-protocols.txt:18,搜「is disjoint from」)。

  4. 出处:「Training protocols」第 22–24 段(text/11-fm-training-protocols.txt:23,搜「epochs」)。

  5. 出处:「Training protocols」第 25–47 段(text/11-fm-training-protocols.txt:27,搜「reach a minimum」;图 3.5 题注 text/11-fm-training-protocols.txt:39,搜「monitored through losses」)。

  6. 出处:「Training protocols」第 49–56 段(text/11-fm-training-protocols.txt:49,搜「Paradoxically」)。原文:「This may be due to the inductive bias of the model becoming the main driver of optimization when performance is near perfect on the training set [Belkin et al., 2018]」。

  7. 出处:「Training protocols」第 58–67 段(text/11-fm-training-protocols.txt:61,搜「schedule during training」)。

  8. 出处:「Training protocols」第 69–73 段(text/11-fm-training-protocols.txt:71,搜「several million dollars」)。

  9. 出处:「Training protocols」第 75–97 段(text/11-fm-training-protocols.txt:93,搜「fine」)。原文:「starts from the pre-trained model instead of using a random initialization」。

  10. 出处:「Training protocols」第 81–88 段(text/11-fm-training-protocols.txt:81,搜「amount of data」)。

  11. 出处:「Training protocols」第 99–106 段(text/11-fm-training-protocols.txt:99,搜「main strategy for most computer vision applications」)。

  12. 出处:「The benefits of scale」第 1–9 段(text/12-fm-the-benefits-of-scale.txt:1,搜「scal」)。引 Kaplan et al., 2020。

  13. 出处:「The benefits of scale」图 3.6 题注,第 41–44 段(text/12-fm-the-benefits-of-scale.txt:42,搜「petaflop」)。

  14. 出处:「The benefits of scale」第 22–61 段(text/12-fm-the-benefits-of-scale.txt:22,搜「10–100 million」)。

  15. 出处:「The benefits of scale」第 101–105 段(text/12-fm-the-benefits-of-scale.txt:101,搜「As of 2024」)。

  16. 出处:「The benefits of scale」表 3.1 及第 63–70 段(text/12-fm-the-benefits-of-scale.txt:46,搜「ImageNet」;text/12-fm-the-benefits-of-scale.txt:56,搜「250 pages」)。

  17. 出处:「The benefits of scale」图 3.7 题注,第 71–100 段(text/12-fm-the-benefits-of-scale.txt:100,搜「3920TWh」)。

  18. 出处:「Large-Scale Parallel Training」全章(text/13-fm-large-scale-parallel-training.txt:10,搜「Distributed Data」;:21,搜「Fully Sharded」;:36,搜「pipeline par」;:41,搜「matrix product」)。