跳到主要内容

训练在调什么 — 从下一词预测到 Adam

这一章讲三件事: 「猜得准不准」怎么变成一个数——行话叫损失(差距越大,这个数越大)。

这个数怎么反过来告诉每个可调数字该往哪挪——那份说明书叫梯度

以及怎么防止机器把训练材料背下来——这一类手段行话叫正则化(给训练添点「不适」,换稳定)。 读完你会拿到全书第一条「训练循环」的完整因果链——第 10 章把它变成能跑的代码。

1. 先把目标写成一句话

第 01 章说模型只做「猜下一词」。训练就是逼它猜得越来越准。原书把目标写得很干净:

把整段文字的概率拆成一步一步的条件概率(「知道前面,猜下一个」),模型学的就是每一步的猜法1

这句话值得停一下。它说训练不需要人工标注任何东西:随便抓一段人类文字, 把最后一个词遮住,让模型猜,答案就是被遮住的那个词。语料(拿来喂模型的一大堆文字)本身就是无穷的练习册。 原书把这类「从数据自己身上出题」的做法叫自监督学习2

2. 主走查:一句话怎么变成一个数

这一章的主走查只有一条链,后面每节都在上面加一段。 设定(这些数是为演示编的,不是真实数值):词表里只有 5 个词, 模型读完「今天天气很」之后,给 5 个候选各打一个原始分——logits 就是还没归一化的打分:

输入 「今天天气很」
│ 模型打分(logits) 好的候选 真实答案
▼ ┌─────────┐ ┌──────┐
候选分 好 3.0 吧 1.0 呀 0.5 … │ softmax │ │ 正确答案:「好」
▼ └─────────┘ └──────┘
softmax 40% 12% 8% … │ │
▼ └────┬─────┘
损失 -ln(40%) ≈ 0.92 ←─────────────────────┘
(模型给正确答案的概率越小,这个数越大;全对时趋近 0)

图说:损失就是「模型给正确答案的概率」取负对数。
这一遍叫前向传播——数据从入口流到出口,顺便量出差距。

两个新词都在这张图里:

  • softmax(把任意一堆分数压成「加起来恰好等于 1」的概率清单的函数):分数 3.0 变 40%,1.0 变 12%;

  • 损失(衡量「猜得离正确答案有多远」的一个数,越小越好):这里取负对数——对数,就是把「连乘了几层」折算成「加了几级」——猜中概率 40% → 损失 0.92; 要是模型只给正确答案 1% 的机会,损失会涨到 4.6。

损失还有个更学术的名字。先认识(一份概率清单有多「出乎意料」的量度):机器给正确答案的机会越小,清单越出乎意料,损失就越大。

损失的学名:交叉熵

原书把上面那条算式叫交叉熵损失——用的正是这个熵3

一个反直觉的细节:训练时一次算所有位置

上面的走查只算了一个位置。实际训练时,长度 64 的一段文字会产生 64 个「遮词题」, 每个位置的损失一起算、一起平均4。这就是训练高效的原因:一段材料出 64 道题。

3. 梯度:损失怎么告诉参数往哪调

损失是一个数。下一步是让几十亿个参数各往「让损失变小」的方向挪一点。

梯度(损失对某个参数的「斜率」——往哪边挪会让损失变大,取反就是该去的方向)是这一步的核心概念。 原书给出的更新规则一行就写完:

新参数 = 旧参数 − 学习率 × 梯度

图说:学习率是「每步挪多大」的旋钮。原书给的典型量级是 0.0001 到 0.000001[^5]
——不是不敢挪,是挪大了损失会来回震荡甚至发散。

这就是梯度下降(沿着负梯度方向一小步一小步走,把损失「走下山」)。

每步迈多大,由学习率(一步的步幅)说了算。两个工程事实立刻出现:

  1. 全量算不起,就抽着算。 语料有几 TB,每改一步就把全部数据过一遍是不可能的。改成一次只喂一小撮——这一小撮叫一个(batch)。

    按批估计梯度的做法,行话叫批量抽样。原书给的典型规模:每批 512 到 4096 条文字串5

  2. 手动推导算不起,就让框架算。 梯度要一层层从损失往回推,这个机械过程叫反向传播

反向传播的底细:链式法则

它的本质是微积分的链式法则(复合函数逐层拆导数)6。原书点明:PyTorch 这类框架的自动微分替你做了全部推导,你只管搭结构7

4. Adam:所有大模型都在用的那一件套

训练要反复回答「每个参数每步该改多少」——这件事叫优化(把参数一步步调向更低损失)。

干这件事的程序叫优化器。Adam 就是最流行的那款。

朴素梯度下降对所有参数用同一个步幅,这在亿级参数的模型上行不通:有的参数梯度常年很大,有的很小。 原书花了一整节讲 Adam(自适应优化器:给每个参数记两本账——梯度的近期平均与近期波动幅度,据此各自调整步幅)8:

Adam 的两本账记什么起什么作用
一阶矩(β₁≈0.9)近期梯度的平均方向一致时加速,类似惯性
二阶矩(β₂≈0.999)近期梯度的波动幅度梯度小的参数自动迈大步,梯度大的自动收步

为什么它统治了这个领域?原书的回答:大模型的参数分工悬殊——注意力的连接强度和嵌入(每个词对应的那串数字)排成的表,梯度规模完全不同9

连接强度行话叫权重,下一节就会遇到它。

按参数各自自适应调步幅,是唯一能兼顾的做法——收敛(训到稳定下来)比朴素方法快得多9。 权重衰减(weight decay,给大数值参数加一点惩罚,防止个别数疯长)在实践中从 Adam 里拆出来单独施加,这一版就叫 AdamW10

5. 防背题三件套:正则化

模型容量大到一定程度,最省力的得分方式是把训练材料背下来——考试遇到新题就完蛋,这叫过拟合。 原书给了三件套,全部围绕「别让模型太自信、太依赖个别通路」11:

手段做法防什么
dropout(训练时随机清零一部分输出)随机把一小部分(如 10%)神经元的输出清零逼着网络不把宝押在个别连接上
权重衰减给过大的参数值加惩罚不让个别参数一家独大
标签平滑真实答案不记 100%,记 90% + 10% 分给其他词不让模型对任何词产生「绝对确信」

三件的共同点:都在训练时加「不适」,换取模型在新题目上的泛化(把学到的东西用到没见过的输入上)能力。

6. 这一章没展开、后面才兑现的两笔债

原书在这一章的数学里埋了两笔,原书自己后面才还:

  • 微调与 RLHF 的数学雏形在这里出现12(在预训练目标之外,用更小的学习率在小数据上继续训练; 以及训练一个替人打分的裁判——它的正式名字是奖励模型——再照它的分数调模型)——完整的流程第 12 章讲;

  • **「模型与数据要一起配平」**出现在第 09 章的复述里(Chinchilla 规模法则:每个参数约配 20 个训练 token)13—— 第 10、12 章的两处账本会用到它。

7. 附送:2024-25 年的模型版图

原书在章末扫了一遍当时的模型,这张表的价值是给后面几章的机制名找到「现实中的主人」14:

模型书里给的口径用了本书哪个零件
Qwen 3(阿里出品,代码公开——这类做法叫开源)约 2350 亿参数,激活其中一部分专家混合(第 08 章)
DeepSeek R1(开源)总参 6710 亿,每个 token 只激活约 370 亿专家混合(第 08 章)
Claude 3.720 万 token 的阅读窗口;参数未公开读得更长这一手(第 05 章)
Gemini 2.5 Pro约 100 万 token 的阅读窗口位置这一手(第 05 章)
Llama 3.3(Meta,开源)12.8 万 token 的阅读窗口本书的整套配方就是这一族

判断(我们的,不是书里的): 这张版图表里最值得记住的是 DeepSeek R1 那一行—— 「总参数 6710 亿、激活 370 亿」意味着模型的存储体积和每次计算的体积是两回事。 第 08 章的专家混合就是把这两件事拆开的机制。 如果错,会错在: 如果书里的激活比例数字有误(它属于厂商公布的口径,书未给来源), 「两回事」这个结论本身不受影响——机制不依赖具体数字。

8. 边界与局限

  • 原书这一章的数学公式在 epub 里是图片,转码后全部丢失;本章的公式是按原文散文重建的,算式形状可靠、记号是我们的;
  • 原书把 RLHF 的数学和预训练的数学放在同一章讲,容易让读者误以为两者是同一种训练——它们的数据、目标、成本都不同(第 12 章);
  • 版图一节的数字是 2025 年上半年的快照,读时当「历史坐标」用。

9. 可带走的

  1. 训练目标只有一句:提高模型给正确下一词的概率,量化成损失(负对数概率);
  2. softmax 把打分变成概率清单;logits 是打分的原始数值;
  3. 梯度 = 每个参数该往哪调的说明书;学习率定步幅;批量抽样让 TB 级语料训得起;
  4. 反向传播 + 链式法则 = 框架自动算梯度,人只管搭结构;
  5. Adam(W) 给每个参数记两本账、各自调步幅——大模型的默认优化器;
  6. dropout / 权重衰减 / 标签平滑都在治同一个病:过拟合(背题);
  7. 自监督 = 语料自己出题,不需要人工标注——大模型吃得起海量数据的根本原因;
  8. 存储参数量(可调数字的总个数)和每次计算的参数量是两回事(DeepSeek R1:6710 亿总量、370 亿激活)。

10. 原文地图

主题原书章原文位置
目标:下一词预测与条件概率分解The Comprehensive Mathematics Behind Training Large Language Modelstext/21-ch02-2-foundational-concepts-in-llm-development.txt:271(搜「Next-Token Prediction」) · text/21-ch02-2-foundational-concepts-in-llm-development.txt:275(搜「chain rule of probability」)
交叉熵损失The Comprehensive Mathematics Behind Training Large Language Modelstext/21-ch02-2-foundational-concepts-in-llm-development.txt:281(搜「negative log-likelihood」)
softmax 与大词表的代价The Comprehensive Mathematics Behind Training Large Language Modelstext/21-ch02-2-foundational-concepts-in-llm-development.txt:287(搜「softmax function」)
实践口径:512/2048 窗口The Comprehensive Mathematics Behind Training Large Language Modelstext/21-ch02-2-foundational-concepts-in-llm-development.txt:293(搜「fixed-length windows」)
MLM(掩码式)对照The Comprehensive Mathematics Behind Training Large Language Modelstext/21-ch02-2-foundational-concepts-in-llm-development.txt:299(搜「masked language modeling」)
梯度下降与学习率The Comprehensive Mathematics Behind Training Large Language Modelstext/21-ch02-2-foundational-concepts-in-llm-development.txt:315(搜「gradient descent」) · text/21-ch02-2-foundational-concepts-in-llm-development.txt:317(搜「learning rate」)
小批量 SGDThe Comprehensive Mathematics Behind Training Large Language Modelstext/21-ch02-2-foundational-concepts-in-llm-development.txt:321(搜「mini-batch」) · text/21-ch02-2-foundational-concepts-in-llm-development.txt:323(搜「512 to 4096」)
Adam 与两本账The Comprehensive Mathematics Behind Training Large Language Modelstext/21-ch02-2-foundational-concepts-in-llm-development.txt:329(搜「Adam optimizer」) · text/21-ch02-2-foundational-concepts-in-llm-development.txt:343(搜「adaptive learning rates」)
反向传播与自动微分The Comprehensive Mathematics Behind Training Large Language Modelstext/21-ch02-2-foundational-concepts-in-llm-development.txt:349(搜「backpropagation」) · text/21-ch02-2-foundational-concepts-in-llm-development.txt:355(搜「automatic differentiation」)
过拟合风险The Comprehensive Mathematics Behind Training Large Language Modelstext/21-ch02-2-foundational-concepts-in-llm-development.txt:361(搜「overfitting」)
dropout / 权重衰减 / 标签平滑The Comprehensive Mathematics Behind Training Large Language Modelstext/21-ch02-2-foundational-concepts-in-llm-development.txt:367(搜「Dropout randomly」) · text/21-ch02-2-foundational-concepts-in-llm-development.txt:379(搜「Weight decay」) · text/21-ch02-2-foundational-concepts-in-llm-development.txt:391(搜「Label smoothing」)
AdamW 解耦The Comprehensive Mathematics Behind Training Large Language Modelstext/21-ch02-2-foundational-concepts-in-llm-development.txt:385(搜「AdamW」)
SFT 与 RLHF 雏形The Comprehensive Mathematics Behind Training Large Language Modelstext/21-ch02-2-foundational-concepts-in-llm-development.txt:405(搜「Supervised Fine-Tuning」) · text/21-ch02-2-foundational-concepts-in-llm-development.txt:417(搜「Reinforcement Learning from Human Feedback」)
2024-25 版图Modern LLM Architecture Characteristics As of the End of 2024 and During 2025text/21-ch02-2-foundational-concepts-in-llm-development.txt:455(搜「Qwen 3」) · text/21-ch02-2-foundational-concepts-in-llm-development.txt:463(搜「DeepSeek R1」) · text/21-ch02-2-foundational-concepts-in-llm-development.txt:461(搜「Gemini 2.5 Pro」)

Footnotes

  1. 出处:「Defining the Goal of Language Modeling」第 269 段(text/21-ch02-2-foundational-concepts-in-llm-development.txt:269,搜「probability distribution over sequences」)。原文:训练 LLM 的首要目标是建模 token 序列的概率分布;自回归路线用链式法则把联合概率拆成逐步条件概率(第 275 段,搜「chain rule of probability」)。

  2. 出处:「Training Objectives」一节(Causal language modeling)(text/72-fm-training-large-language-models.txt:11,搜「Self-supervised」)。原文:「Self-supervised nature creates unlimited training examples without manual annotation」——自监督特性制造了无需人工标注的无限训练样例。

  3. 出处:「Defining the Loss Function」第 281 段(text/21-ch02-2-foundational-concepts-in-llm-development.txt:281,搜「negative log-likelihood」)。原文:最小化负对数似然,对应预测分布与真实 token 分布之间的交叉熵损失。

  4. 出处:「Practical Considerations」第 293 段(text/21-ch02-2-foundational-concepts-in-llm-development.txt:293,搜「fixed-length windows」)。原文:数据集由数十亿 token 组成,模型以 512 或 2048 token 的定长窗口处理序列,损失在这些序列上计算。

  5. 出处:「Stochastic Gradient Descent」第 323 段(text/21-ch02-2-foundational-concepts-in-llm-development.txt:323,搜「512 to 4096」)。原文:典型批大小 512-4096 条序列,依硬件与模型规模而定;小批量 SGD 在计算效率与梯度精度之间取得平衡。

  6. 出处:「Backpropagation」第 349 段(text/21-ch02-2-foundational-concepts-in-llm-development.txt:349,搜「backpropagation」)。原文:梯度用反向传播计算——把链式法则沿模型各层往回传播误差。

  7. 出处:「Role of Automatic Differentiation」第 355 段(text/21-ch02-2-foundational-concepts-in-llm-development.txt:355,搜「automatic differentiation」)。原文:PyTorch、TensorFlow 用自动微分高效计算梯度,免去手动推导。

  8. 出处:「Adam Optimizer」第 329 段(text/21-ch02-2-foundational-concepts-in-llm-development.txt:329,搜「Adam optimizer」)与第 331 段(搜「First moment」)。原文:Adam 记一阶矩(梯度均值,带动量,β₁≈0.9)与二阶矩(未中心化方差,β₂≈0.999),并做偏差校正。

  9. 出处:「Why Adam Works for LLMs」第 343 段(text/21-ch02-2-foundational-concepts-in-llm-development.txt:343,搜「adaptive learning rates」)。原文:Adam 的自适应学习率让它能处理稀疏梯度与参数尺度悬殊的 LLM,比朴素 SGD 收敛更快。 2

  10. 出处:「Implementation in Adam」第 385 段(text/21-ch02-2-foundational-concepts-in-llm-development.txt:385,搜「AdamW」)。原文:实践中权重衰减常与优化器解耦(如 AdamW),L2 惩罚直接作用在参数更新上而非梯度矩,更稳定。

  11. 出处:「Regularization Techniques」一组(text/21-ch02-2-foundational-concepts-in-llm-development.txt:361,搜「overfitting」;:367,搜「Dropout randomly」;:379,搜「Weight decay」;:391,搜「Label smoothing」)。dropout 随机清零部分激活(如 0.1);权重衰减加 L2 惩罚;标签平滑把 one-hot 目标抹平。

  12. 出处:「Fine-Tuning and RLHF」一组(text/21-ch02-2-foundational-concepts-in-llm-development.txt:401,搜「Adapting Pretrained Models」;:423,搜「Reward Model Training」;:429,搜「KL-divergence」)。原文:SFT 用更小数据与更小学习率;RLHF 训练奖励模型并用 PPO 加 KL 惩罚优化。

  13. 出处:「Advantages, Challenges, and Broader Impact」(Chinchilla 一段)(text/63-fm-advantages-challenges-and-broader-impact.txt:11,搜「Chinchilla scaling laws」)。原文:Chinchilla 规模法则表明最优算力分配随模型规模与数据规模同增。

  14. 出处:「Modern LLM Architecture Characteristics As of the End of 2024 and During 2025」一组(text/21-ch02-2-foundational-concepts-in-llm-development.txt:455,搜「Qwen 3」;:459,搜「Claude 3.7」;:461,搜「Gemini 2.5 Pro」;:463,搜「DeepSeek R1」;:465,搜「Llama 3.3」)。原文口径:Qwen 3 约 2350 亿参数、12.8 万上下文、开源;DeepSeek R1 总参 6710 亿、每 token 激活约 370 亿;Gemini 2.5 Pro 约 100 万 token 上下文。