跳到主要内容

给它看示范 — 一条训练样本到底长什么样

这一章讲三件事: 「给它看示范」这件事的机制到底是什么(答案: 和当初造这个模型用的是同一套);一条真正喂进去的训练样本长什么样; 以及为什么决定成败的不是算法,是数据和格式。

它在全书链条里的位置: 第 04 章讲完了「改参数会发生什么」, 这一章是第一次真的动手。 它也是全书最该先试的一步—— 书里的说法是,大多数团队绕了远路才发现这一点。

★ 这一章欠下一笔债:模型从没练习过从自己的错误里爬出来。 这笔债第 15、16 章还。

1. 先看现象:大多数团队绕的那个远路

书里有一段专门的提醒,值得原样记住它的形状1:

一种模式在各个组织里反复上演:
① 团队成员读到了那些更高级的偏好训练技术
② 认定自己的项目需要它们
③ 花几个月和「打分器训不稳」「模型崩掉」搏斗
④ 最后退回来试试最朴素的「给它看示范」
⑤ 发现它一周就解决了八成的问题

作者的评语:剩下的两成可能真的需要那些复杂技术,
但他们现在已经有了尝试它的基础。
**「用管用的简单办法不丢人。目标是能力,不是复杂度。」**

这一章就是那个「一周解决八成」的东西。 它的正式名字叫 SFT (有监督微调,supervised fine-tuning)——这个缩写必须留住, 你在任何一份训练框架的文档里都会看到它。

作者引了一个流传很广的比喻当开场:如果智能是一块蛋糕, 蛋糕体是自学的那部分,糖衣是有人教的那部分,樱桃是靠奖惩练出来的那部分; 他自己补了一句——当下这块 AI 蛋糕的美味,多半来自糖衣和樱桃2这一章讲的就是糖衣。

2. 顶层全景:一条训练样本的一生

① 手上的原料
记录:P-4471 / 42 岁 / 腰椎 MRI / CT-06 / 保单第 7 条第 3 款
人写的标准答复:「尊敬的投保人:您于 3 月 12 日提交的……」

② 套上这个底座认的对话模板(每个模型家族的写法不一样)
<系统>你是本公司的理赔说明信撰写助理。</系统>
<用户>保单号 P-4471……请撰写拒付说明信。</用户>
<助手>尊敬的投保人:……</助手>

③ 切成 token,并标出「哪些位置要算账」
系统与用户那一段 → 标成「不算账」
助手那一段 → 标成「算账」

④ 一次前向:每个位置都被喂前面的**真值**,同时给出自己的猜测

⑤ 只在「算账」的位置上,把「猜得离真值多远」加起来 → 得到损失

⑥ 反推每个参数该往哪挪一丁点(步子按学习率),挪

└──► 换下一条样本

图说:**②③⑤ 三步是这一章的全部要害,而它们都不是算法问题。**
④⑥ 两步和当初造这个模型时用的一模一样(第 02 章第 4 节)。

这一章的主走查就是上面这条样本,下面每一节回来走一步。

3. 机制一:它和预训练是同一套,只换了数据

作者把这件事说得很干脆:预训练之后,模型已经「会」语言了—— 能写出流利的文字、遵守语法、调用海量知识。 它缺的是你要的那个具体行为:按某种格式回答、用某种语气、遵守某个行当的惯例3

SFT 弥合这个缺口的办法就是:给它看正确行为的例子(输入 + 期望输出), 然后调参数,使得给定这些输入时,模型给这些输出打更高的概率。

作者那句总结值得记住:「模型靠例子学,而例子定义了它会变成什么。」3

具体到每一步,机制和第 02 章讲的完全一样: 模型处理前面的 token,给出词表上的一张概率表; 训练调参数,让正确的那个 token 拿到更高的概率、别的拿到更低的4

所以这一节的结论只有一句:SFT 不是一种新技术,是同一套流程换了数据、调小了步子。 (第 02 章第 4 节末尾许诺过要把这句话再说一遍,这里还上了。)

作者还给了一条使用次序上的硬话:

SFT 本身常常就够了,反过来几乎从不成立—— 不做 SFT 直接上奖惩训练,保证以眼泪和/或浪费掉的显卡时间收场。5

为什么必须是这个顺序:两步的作用是不对称的

上面那句是硬话。但书没让它停在硬话上,它给了机制6

先把两步各自的分工摆清楚: 给它看示范这一步打地基—— 格式对不对、用词合不合行规、任务听没听懂、领域知识有没有; 奖惩那一步是在地基上面修品质,修的正是那些「认得出、但演示不出来」的部分6

然后是那处不对称。 书引了 Matsutani 等人一篇论文, 它去看模型解题时走过的推理轨迹——就是模型从题目走到答案途中吐出的那一串中间步骤 (第 16 章会把这串中间步骤当成正题来讲,那里它的正式名字叫思维链); 把两种训法各自训出来的轨迹放在一起比,结果是这样6:

这一步它对正确的解法路径做了什么它对错误的解法路径做了什么
给它看示范把正确路径的空间撑大但也把错误路径原样保住了
奖惩训练也会连带压掉一些正确的把错误路径压下去

两行连起来读,顺序就是自明的:

先示范 ──► 可走的正确解法变多了(代价:走错的路也还都在)

再奖惩 ──► 把错的那些剪掉
★ 它不擅长从零发现新的正确解法,
但「把错的剪掉」这件事它很在行 —— 而这时候
正确的路已经被上一步铺好了,它只管剪

结果:一个既有很多条正确路可走、又不太走错路的模型。
★ 两步刚好补上对方的短板,这不是巧合。

反过来做会怎样:跳过示范直接奖惩 ——
模型手上本来就没几条正确路径,奖惩只能在一片贫瘠里剪枝,
还会顺手剪掉仅有的那几条正确的。
**这就是上面那句「以眼泪收场」底下的机制。**

而且这不是只做一轮。 书说**「示范 → 奖惩」这一对反复级联多轮, 现在已经是大规模后训练的标准做法**6

(但这条顺序后来被一件事动摇过:第 09 章第 6 节会讲一支团队怎么跳过示范、 直接做强化学习也拿到了很强的结果,以及那件事到底质疑掉了多少。)

4. 机制二:训练时它被喂真值,用的时候没人喂——这笔债后面还

这是这一章最重要的一个机制,也是全书埋得最长的一条伏笔。

训练时发生了什么

训练时,每一个位置都是拿「真实的前文」作为条件的, 而不是拿模型自己刚生成的东西。这套做法有名字,叫 teacher forcing7

为什么要这么干:因为它能并行。 一句话里每个位置都能同时算—— 因为每个位置看到的都是真实的前文,不必等模型一个个生成出来。 作者说这个效率提升「巨大」:本来必须顺序生成的事,变成了一次并行的前向计算7

走查里的样子:

真值那句:「您 申请 的 腰椎 MRI 未获 批准」

训练时,七个位置同时算:
位置 1 看到「」 → 猜「您」 (真值是「您」)
位置 2 看到「您」 → 猜「向」 (真值是「申请」)❌ 猜错了
位置 3 看到「您 申请」 → 猜「的」 ← 注意:喂进去的是真值「申请」,
不是它上一步猜错的「向」
位置 4 看到「您 申请 的」 → 猜「腰椎」


图说:**第 3 个位置拿到的是真值,不是它自己刚犯的错。**
所以这个模型从头到尾,**一次都没有练习过「从自己写错的地方接着往下写」**。

代价:它没练过从自己的错误里爬出来

作者把代价写得很直白:这个效率的代价是, 我们训练时的条件和模型将来被调用时的条件并不一样7

推理时没有人喂真值,它接的是自己刚写出来的东西。 一旦某一步写歪,后面每一步都建立在这个歪的基础上

判断(我们的,不是书里的): 这一条是全书好几个后续现象的共同根子。 第 15 章那条「每步九成正确、十步全对只剩三成半」的算术, 以及第 16 章「写进推理链里的东西抹不掉」,根都在这里。 书把它们分散在三章里各讲一次,没有把根挑明。 如果错,会错在: 这三处还各自有别的原因 (第 15 章的主因是多步相乘,第 16 章还有「写长有奖」这一重), 训练与使用条件不一致只是其中一条。不要把它当成唯一解释。

5. 机制三:损失读数怎么读,以及它只该落在哪儿

那个「离对的差多远」的正式名字

第 02 章说过训练要算一个「离对的差多远」的数。 它的正式名字叫交叉熵。 之所以是它,作者给的理由很实际: 它直接优化了我们真正在乎的那件事——让模型给正确的续写打高概率8

怎么读这个数(这一节最有用的部分)

作者专门指出一个通病:从业者往往只看损失曲线的走向,不看它的数值。 走向对了(SFT 里是往下走)大体就安心了。但数值是有确切含义的8:

损失读数意味着什么
2.3正确的那个 token,平均只拿到约 0.1 的概率
1.8正确的那个 token,平均拿到约 0.165 的概率

所以从 2.3 掉到 1.8,意思是模型对正确答案的信心涨了大约六成半9

这个换算值钱,因为它把一个抽象的数变成了一句人话。 拿走查说:

训练开始:损失 2.6 → 正确 token 平均概率约 0.074
「它基本在瞎猜,十几个候选里挑一个」
训练两轮:损失 1.5 → 正确 token 平均概率约 0.22
「它已经把候选压到四五个了」
训练五轮:损失 0.4 → 正确 token 平均概率约 0.67
「它几乎知道下一个词是什么了」
⚠️ 到这一步要警觉:它可能是把那 300 封信背下来了
(2.6 / 1.5 / 0.4 这三个读数是为演示编的;
2.3 → 0.1 和 1.8 → 0.165 这两组是书里给的。)

最后那行警觉是第 06 章的正题(那里有一张完整的曲线诊断表)。

损失只该落在回答上

这是走查里第 ③ 步那个「标出哪些位置要算账」。

作者的规矩是:微调时,损失通常只在回答的那些 token 上算,不在提示词上算。 理由一句话就说清了:模型该学的是生成合适的回答, 不是去预测那段提示词——那段提示词在使用时是别人给它的10

<系统>你是本公司的理赔说明信撰写助理。</系统> ← 不算账
<用户>保单号 P-4471……请撰写拒付说明信。</用户> ← 不算账
<助手>尊敬的投保人:……</助手> ← ★ 只有这一段算账

图说:如果整段都算账,你等于在教它「看到这种输入,先把输入复述一遍」。

6. 机制四:格式对不上,是最常见的死法

这一节讲的东西完全不涉及数学,但它是这一章最容易踩的坑。

现象

作者讲了一个亲历的场景:他见过团队跑了一星期的训练, 最后才发现自己的对话模板是错的11

为什么会死

现代的指令模型期待对话按特定方式组织: 有专门的 token 分隔说话人的轮次、有系统消息用来交代背景、 有特定的模式来标记「助手这一轮说完了」12

一个按某种格式训练出来的模型,在被另一种格式提问时会表现得难以预料—— 哪怕两者的语义内容完全相同。作者的定性是:格式不匹配是最常见的失败模式之一12

这套「怎么把一段对话变成模型期待的那串 token」的规格,就叫对话模板。 不同的模型家族用不同的模板:某家的模型期待某几个控制 token, 另一家期待另外几个,还有一种叫 ChatML 的通用格式12

作者给的解法很实际:别自己拼,用你那个底座自带的工具去套模板12; 而且书里那一节的开头就提醒:具体的 token 和格式会随模型版本演进, 永远要对着你自己模型的切词器核对,不要照抄书上的例子13

除了机械上的正确,还有一层好处

格式一致还有个语义上的收益:模型在训练时看到一致的格式, 学到的就不只是「说什么」,还有「什么时候说、怎么说」—— 一致地使用系统消息,教会它去注意系统指令;一致的回答格式,教会它输出结构。 反过来,训练格式不一致,就制造了「我该产出什么」的不确定12

一句话口径:让训练时的条件和部署时的条件尽可能一样。

7. 机制五:数据质量压过一切

这是这一章的落点,也是全书的三条不变原则之一(第 20 章回收)。

作者把话说到了顶:

数据质量比什么都重要。模型大小、超参调优、训练算力, 没有一样比得上数据质量的影响。你没法靠算法弥补糟糕的输入。14

一千条 vs 一万条

一千条精心筛选的样本,会打过一万条平庸的—— 因为模型是从你给它看的东西里学的,而给它看错的东西,教的就是错的功课15

作者用了一个很刺的对照:

传奇团队从一百条扎实的样本起步;新手团队从一百万条起步,然后纳闷为什么一团乱16

他还顺手解释了「网上那些千篇一律的 AI 腔」是怎么来的: 拿海量平庸内容训出来的模型,学会的就是大规模地产出平庸—— 啰嗦、通用、和另外一千份输出难以区分。 当规模让人没法评估数据质量时,规模就从盟友变成了敌人17

卡住了怎么办:去人工挑几百条

作者给了一个很不体面但很管用的建议:

当模型在这一步反复失败、或者开始出现意料之外的坏行为时,可以回到一个老办法—— 叫一堆外卖,然后人工翻一遍数据集,挑出一小批质量极高的子集,哪怕只有几百条。 这足以确立「好数据长什么样」。而且常常,这就是模型需要的全部。18

开跑之前先跑一个「小到荒谬」的版本

同样是防止浪费,作者推荐一套叫婴儿基线的做法19:

① 拿 100 条样本、只训一轮、马上评估
——目的不是得到一个好模型,而是验证三件事:
流水线通不通 / 数据格式对不对 / 评估装置给出的数字合不合理
② 然后是「凭感觉测」:正式评估之前,先拿 20 条你真正在乎的提示词,
生成结果,**用眼睛读一遍**
——它听起来对吗?格式是你要的吗?
③ 只有在这一步确认方向没错之后,才去跑那些贵的正式评估

图说:这两步都不高级,但它们**在花大钱之前就能抓出格式错、语气错这类
指标发现不了的问题**。

作者对这套办法的评价很诚实: 它们「算不上什么精深的统计方法」, 但能早早给出一份对训练过程的直觉19

8. 那几个旋钮各自在管什么

书里对超参的处理很克制,这里只交付有用的那几条。

旋钮它在管什么书里的口径
学习率一步迈多大(第 04 章讲过)预训练用 10⁻⁴ 到 10⁻³,微调用 10⁻⁶ 到 10⁻⁵——差两三个数量级20
优化器拿到「该往哪挪」之后,具体怎么挪默认是 AdamW:给梯度一直很大的参数小一点的更新,给梯度一直很小的参数大一点的更新21
批大小一次拿多少条样本估一次方向书只说了硬边界:显卡吃不下就不能再大22

关于超参,书给的最实用的一句话是关于怎么选:

花在超参搜索上的算力是真实成本,但和哪怕一次失败的训练相比可以忽略不计。 作者说他不止一次见到团队浪费几周显卡时间, 跑在善意但错误的超参上——而那本可以用一次六小时的搜索避免23

9. 作者的判断与证据

说法是哪一类说明
损失 2.3 ↔ 0.1、1.8 ↔ 0.165可自行验算这是那条损失定义的直接换算,不依赖任何实验9
格式不匹配是最常见失败模式之一作者的经验书里的措辞是「one of the most common」,没有给统计12
「一周解决八成」作者的观察他写的是「一种模式在各组织里反复上演」,是经验不是数据1
一千条精挑 > 一万条平庸作者的论断反复出现三次,每次都没有配实验尾注1415
训练与使用条件不一致会带来错误累积有理论支撑,书未给实验机制说得清楚,但书在这一章没引实验7
微调学习率取 10⁻⁶ 到 10⁻⁵经验区间与第 04 章「比预训练低一个数量级」是同一件事的两种说法20
婴儿基线他引的别人的做法明写是某个团队提出的叫法19

10. 边界与局限

  1. 这一章没给完整代码。 书本身也只给带注解的片段,完整实现在它的配套仓库里。 我们讲的是每个配置项在管什么,不抄参数名。
  2. 对话模板的具体格式我们一个都没抄。 书里列了几个模型家族的模板示例, 但书自己在那一节开头就说这些会随版本变、要对着自己的切词器核对13。 照抄一份会过期的格式进拆解,是在制造错误。
  3. 优化器只讲了默认那一个。 书还讲了它内部的两处细节 (怎么按历史梯度缩放、以及它名字里那个 W 是什么), 我们只留了「它在做什么」,因为后面十五章都不需要更深
  4. 「一千条 vs 一万条」没有实验支撑。 这是全书重复最多、 证据最薄的一条断言。它很可能是对的,但书没有给你验证它的材料。
  5. 这一章不讲怎么造数据。 数据从哪来、不够了怎么办,整块在第 17 章

11. 可带走的

  1. 先试这一步。 书里的观察是:大多数团队绕远路去搞复杂技术, 最后发现给它看示范一周就解决了八成;
  2. 它不是新技术——机制和当初造这个模型用的一模一样,只是换了数据、调小了步子;
  3. 不做这一步直接上奖惩训练,书里的原话是「保证以眼泪收场」;
  4. 顺序背后有机制,不只是经验:示范那一步把正确解法的路径撑大、 但错的路径也一并留着;奖惩那一步把错的压下去、却也会连带压掉一些对的。 两步互补,所以先后不能倒;而且「示范 → 奖惩」这一对反复级联多轮, 如今是大规模后训练的标准做法;
  5. 训练时每个位置都被喂真值,所以它从没练习过从自己的错误里爬出来 —— 这笔债第 15、16 章还;
  6. 损失读数是可以翻译成人话的:2.3 ≈ 正确词平均拿 0.1 的概率, 1.8 ≈ 0.165;从 2.3 到 1.8 就是信心涨了六成半;
  7. 损失只该落在回答上。 落在提示词上等于教它复述问题;
  8. 格式对不上是最常见的死法之一,而且它会浪费掉整周的训练; 用底座自带的工具套模板,别自己拼;
  9. 训练格式要和部署格式一致 —— 不一致会让模型不确定该产出什么;
  10. 数据质量压过模型大小、超参和算力。 一千条精挑通常打得过一万条平庸;
  11. 卡住了就人工挑几百条极高质量的,先确立「好数据长什么样」;
  12. 正式开跑前先跑一个 100 条、一轮的「婴儿基线」,再用眼睛读 20 条输出 —— 这两步抓的是指标发现不了的错。

12. 原文地图

主题原书章原文位置
先试 SFT、一周解决八成What Post-Training Really Meanstext/09-fm-what-post-training-really-means.txt:287(搜「80 percent of their problem in a week」)
SFT 的边界:有些品质演示不出来What Post-Training Really Meanstext/09-fm-what-post-training-really-means.txt:289(搜「flawless medical summary」) · text/09-fm-what-post-training-really-means.txt:291(搜「resist demonstration」)
蛋糕比喻、SFT 是主力The Mechanics Under the Icingtext/27-fm-the-mechanics-under-the-icing.txt:5(搜「icing on the cake」)
数据质量压过一切The Mechanics Under the Icingtext/27-fm-the-mechanics-under-the-icing.txt:7(搜「thousand carefully curated examples」)
预训练已会语言、缺的是行为The Mechanics Under the Icingtext/28-fm-the-mechanics-under-the-icing.txt:9(搜「learns by example」) · text/28-fm-the-mechanics-under-the-icing.txt:11(搜「probability distribution over the vocabulary」)
不做 SFT 直接上 RL 的后果The Mechanics Under the Icingtext/28-fm-the-mechanics-under-the-icing.txt:7(搜「end in tears」)
为什么是这个顺序、那处不对称、多轮级联Notetext/47-fm-note.txt:15(搜「proceeds from SFT to RL」) · text/47-fm-note.txt:17(搜「preserves incorrect ones」)
teacher forcing 与它的代价The Mechanics Under the Icingtext/28-fm-the-mechanics-under-the-icing.txt:13(搜「teacher forcing」)
交叉熵、损失读数换算WARNINGtext/29-fm-warning.txt:5(搜「cross-entropy」) · text/29-fm-warning.txt:11(搜「65 percent more confident」)
损失只落在回答上WARNINGtext/29-fm-warning.txt:13(搜「completion-only」)
优化器与学习率区间WARNINGtext/29-fm-warning.txt:19(搜「AdamW」) · text/29-fm-warning.txt:23(搜「must not be disrupted」)
超参搜索的性价比WARNINGtext/29-fm-warning.txt:29(搜「waste weeks of GPU time」)
数据质量那句总纲Garbage In, Garbage Outtext/31-fm-garbage-in-garbage-out.txt:3(搜「out-algorithm poor inputs」)
百条 vs 百万条、平庸内容的后果WHEN SCALE OBSCUREStext/32-fm-when-scale-obscures.txt:3(搜「Legendary teams」) · text/32-fm-when-scale-obscures.txt:5(搜「ally to enemy」) · text/32-fm-when-scale-obscures.txt:7(搜「ordering as much pizza」)
婴儿基线与凭感觉测THE BABY BASELINE METHODOLOGYtext/33-fm-the-baby-baseline-methodology.txt:3(搜「baby baselines」) · text/33-fm-the-baby-baseline-methodology.txt:5(搜「vibe testing」) · text/33-fm-the-baby-baseline-methodology.txt:7(搜「chat template was wrong」)
对话模板THE BABY BASELINE METHODOLOGYtext/33-fm-the-baby-baseline-methodology.txt:11(搜「Format mismatch」) · text/33-fm-the-baby-baseline-methodology.txt:13(搜「chat template is a specification」) · text/33-fm-the-baby-baseline-methodology.txt:15(搜「deployment conditions」)
模板会随版本变CHAT TEMPLATE FORMATS ACROSS MODEL FAMILIEStext/34-fm-chat-template-formats-across-model-families.txt:3(搜「verify against your model's tokenizer」)

Footnotes

  1. 出处:「What Post-Training Really Means」第 287 段(text/09-fm-what-post-training-really-means.txt:287,搜「80 percent of their problem in a week」)。这是书里一个标题为「SFT: START HERE FIRST」的提示框。最后两句原文是「There is no shame in simple techniques that work. The goal is capability, not complexity.」 2

  2. 出处:「The Mechanics Under the Icing」第 5 段(text/27-fm-the-mechanics-under-the-icing.txt:5,搜「icing on the cake」)。这个比喻出自 Yann LeCun 大约十年前在一次学术会议上的演讲;作者说比例一直有争议,而当下这块蛋糕的美味多来自糖衣和樱桃,但那个判断的实质仍然成立——SFT 是后训练的主力

  3. 出处:「The Mechanics Under the Icing」第 9 段(text/28-fm-the-mechanics-under-the-icing.txt:9,搜「learns by example」)。原文那句总结是「The model learns by example, and the examples define what it becomes」。 2

  4. 出处:「The Mechanics Under the Icing」第 11 段(text/28-fm-the-mechanics-under-the-icing.txt:11,搜「probability distribution over the vocabulary」)。原文:对训练序列里的每一个位置重复这件事,模型就学会生成与训练数据相像的文字。

  5. 出处:「The Mechanics Under the Icing」第 7 段(text/28-fm-the-mechanics-under-the-icing.txt:7,搜「end in tears」)。原文:SFT 本身常常就够,反过来几乎从不成立——「Jumping to RL without SFT is guaranteed to end in tears and/or wasted GPU time」。

  6. 出处:「Note」第 15 段(text/47-fm-note.txt:15,搜「proceeds from SFT to RL」)与第 17 段(text/47-fm-note.txt:17,搜「preserves incorrect ones」)。第 15 段说这条顺序不是随便定的约定,而是反映了两个阶段各自养出的能力不同:前一步立起格式、用词、任务理解、领域知识这些地基,后一步在地基之上精修那些「认得出、却不易演示」的品质。第 17 段引的是 Matsutani 等人的论文,原文把这处不对称称为「striking」:前一步扩大了正确推理路径的空间、但同时把错误的也保住了;后一步压缩错误路径、却也倾向于把正确的一起压掉。 书由此解释两阶段为什么这么有效,并说这也凸显了多轮「示范→强化」级联的效用,那已是大规模后训练的标准做法。上面那张对照表和那张流程图是我们按这段话重写的,书里没有画图。 2 3 4

  7. 出处:「The Mechanics Under the Icing」第 13 段(text/28-fm-the-mechanics-under-the-icing.txt:13,搜「teacher forcing」)。原文把这套做法定义为「永远以真值 token 为条件,而不是以模型自己的预测为条件」,并说效率提升「巨大」;代价那句是「我们并不是在模型将来被调用的同样条件下训练」。这个术语在中文文档里通常不译,直接写 teacher forcing。 2 3 4

  8. 出处:「WARNING」第 5 段(text/29-fm-warning.txt:5,搜「cross-entropy」)与第 7 段(text/29-fm-warning.txt:7,搜「ignore its values」)。第 7 段那句批评值得记:从业者「有一种不太有帮助的倾向,只看损失曲线而忽略它的数值」。顺带一提,书在同一处解释了「因果」在语言模型里的确切含义(第 3 段,text/29-fm-warning.txt:3,搜「directionally limited」):它指的是方向受限——某个位置的 token 只能看它前面的,看不到后面的,和日常说的因果关系无关。 2

  9. 出处:「WARNING」第 11 段(text/29-fm-warning.txt:11,搜「65 percent more confident」)。这两个换算可以自己验算:损失是「正确 token 概率取对数再取负」的平均,所以概率就是损失取指数的倒数。困惑度这个常见指标就是损失取指数之后的样子,读起来像「模型在几个选项里犹豫」。 2

  10. 出处:「WARNING」第 13 段(text/29-fm-warning.txt:13,搜「completion-only」)。这种做法的英文叫 completion-only loss,你在训练框架里会看到类似的配置开关。

  11. 出处:「THE BABY BASELINE METHODOLOGY」第 7 段(text/33-fm-the-baby-baseline-methodology.txt:7,搜「chat template was wrong」)。同一段还讲了另一个场景:团队在为基准分数上涨庆祝,而模型的实际输出正在以基准察觉不到的方式退化——这一条是第 10 章的引子。

  12. 出处:「THE BABY BASELINE METHODOLOGY」第 11 段(text/33-fm-the-baby-baseline-methodology.txt:11,搜「Format mismatch」)、第 13 段(text/33-fm-the-baby-baseline-methodology.txt:13,搜「chat template is a specification」)、第 15 段(text/33-fm-the-baby-baseline-methodology.txt:15,搜「deployment conditions」)。作者点名的三类差异是:分隔说话人轮次的特殊 token、交代背景的系统消息、标记助手回答结束的特定模式。他推荐直接用底座配套的切词器类来套模板。 2 3 4 5 6

  13. 出处:「CHAT TEMPLATE FORMATS ACROSS MODEL FAMILIES」第 3 段(text/34-fm-chat-template-formats-across-model-families.txt:3,搜「verify against your model's tokenizer」)。原文:书里给的这些例子只是示意,具体的 token 和格式会随模型版本演进,永远要对着你自己模型的切词器核对,不要逐字照抄 2

  14. 出处:「Garbage In, Garbage Out」第 3 段(text/31-fm-garbage-in-garbage-out.txt:3,搜「out-algorithm poor inputs」)。原文最后一句是「You cannot out-algorithm poor inputs」。 2

  15. 出处:「The Mechanics Under the Icing」第 7 段(text/27-fm-the-mechanics-under-the-icing.txt:7,搜「thousand carefully curated examples」)。这一句在书里至少出现三次,每次都没有配实验尾注 2

  16. 出处:「WHEN SCALE OBSCURES」第 3 段(text/32-fm-when-scale-obscures.txt:3,搜「Legendary teams」)。

  17. 出处:「WHEN SCALE OBSCURES」第 5 段(text/32-fm-when-scale-obscures.txt:5,搜「ally to enemy」)。原文里那个描述低质量通用模型输出的词是 slop,它在 2025 年被一家词典选为年度词(这件事出现在第 01 章拆到的那一段里)。

  18. 出处:「WHEN SCALE OBSCURES」第 7 段(text/32-fm-when-scale-obscures.txt:7,搜「ordering as much pizza」)。原文:「叫尽可能多的、能安全送到的披萨,然后人工翻数据集,整理出一小批极高质量的子集,哪怕只有几百条。」

  19. 出处:「THE BABY BASELINE METHODOLOGY」第 3 段(text/33-fm-the-baby-baseline-methodology.txt:3,搜「baby baselines」)与第 5 段(text/33-fm-the-baby-baseline-methodology.txt:5,搜「vibe testing」)。这个叫法作者明写是 Hugging Face 团队提出的。第二步「凭感觉测」的具体动作是:生成 20 条你在乎的提示词的回答,读一遍 2 3

  20. 出处:「WARNING」第 23 段(text/29-fm-warning.txt:23,搜「must not be disrupted」)。原文的对比很清楚:预训练从随机初始化开始,可以用 10⁻⁴ 到 10⁻³ 量级的学习率;微调从一个精心训练过、不能被扰乱的模型开始,通常要 10⁻⁶ 到 10⁻⁵。这和第 04 章那句「低一个数量级或更多」是同一件事。 2

  21. 出处:「WARNING」第 17 段(text/29-fm-warning.txt:17,搜「steepest increase」)与第 19 段(text/29-fm-warning.txt:19,搜「AdamW」)。第 17 段解释了优化器的职责:损失告诉我们模型错得多离谱,但没告诉我们怎么修,那是优化器的活。第 21 段(text/29-fm-warning.txt:21,搜「decoupled weight decay」)解释了它名字里那个 W 指的是把「让参数别长太大」这件事和梯度更新解耦开。

  22. 出处:「WARNING」第 25 段(text/29-fm-warning.txt:25,搜「too big of a bite to chew」)。书在这一章没有给批大小的推荐值,只说了它受显存约束。

  23. 出处:「WARNING」第 29 段(text/29-fm-warning.txt:29,搜「waste weeks of GPU time」)。第 27 段(text/29-fm-warning.txt:27,搜「hyperparameter optimization」)介绍了做这件事的工具:它用一种「从每次试验里学、把后续试验集中到有希望的区域」的搜索办法,对学习率可以跨好几个数量级去搜