《Build a Reasoning Model (From Scratch)》通读笔记(第一批:前言 + 第 1 章)
这份笔记是给后面写大纲的人用的,不是正文。
怎么读出处: 形如 text/04-ch01-….txt:35。… 是省略掉的文件名中段 ——
认前两位数字就够:ls library/build-reasoning-model/text/ | grep '^04' 即可定位。
冒号后面是清洗文本里的真实行号,sed -n '35p' 直接跳过去。
这批行号已逐条机器核过(581 处,全部落在非空行)。 少数「范围终点」故意落在
)、]、\] 这类代码或输出块的收尾行上,那标的是块的末尾,不是笔误。
但写正文引用时仍要按标准补上「搜『原文短语』」 —— 重新转码会让行号漂移,短语不会。
零、体检结论
node scripts/book-health.mjs build-reasoning-model → ✓ OK,562k 字。无「坏」无「可疑」,可以动笔。
导航章清单(不读、不引): 01-fm-…(版权页,259 字符)、03-fm-brief-contents(目录)。
02-fm-welcome 是作者亲笔的 MEAP 前言,有信息量,可引。
一、这本书的身份(影响怎么读)
| 项 | 值 | 依据 |
|---|---|---|
| 作者 | Sebastian Raschka(PhD) | text/02-fm-….txt:60 |
| 出版 | Manning,epub 元数据日期 2026-03-17 | chapters.json |
| 版本状态 | MEAP(Manning 早期试读版),不是定稿 | text/02-fm-….txt:12「Thank you for purchasing the MEAP for…」 |
| 前作 | 同作者《Build a Large Language Model (From Scratch)》,本书不要求先读 | text/04-ch01-….txt:53、text/04-ch01-….txt:325 |
MEAP 这件事必须在总纲里点明:早期试读版意味着文字可能还会改、章节可能还会增删。 但书里的代码路线是完整的(八章 + 七个附录都在)。
时代坐标(书里自己给的,不是我们加的):
- OpenAI o1 发布:2024-09-12,书说它「让 reasoning 这个词进了公众视野」(
text/04-ch01-….txt:339) - DeepSeek-R1 + 技术报告:2025-01,arxiv 2501.12948,书说它「不但开放了能打赢 o1 的模型,还公开了训练蓝图」(
text/04-ch01-….txt:351) - Sam Altman 2025-02-12 的表态被整段引用:GPT-4.5 是「最后一个非思维链模型」(
text/04-ch01-….txt:670) - 书里提到的当代推理模型:Anthropic Claude 4、xAI Grok 4、Google Gemini 2.5、DeepSeek R1、Alibaba Qwen3、OpenAI o1/o3/o4-mini/GPT-5(
text/04-ch01-….txt:630) - 提到 agent 应用「OpenClaw」(
text/04-ch01-….txt:41)—— 这是书里唯一一处具体 agent 产品名, 写的时候要核一下这是什么(见「缺口清单」)。
二、第 1 章:全书的定义层与地图(text/04-ch01-…txt,35.4k 字符)
这一章没有代码,是整本书唯一的纯概念章。它干四件事:定义 reasoning、回顾常规训练管线、 把改进手段分成三类、把 reasoning 和「模式匹配」摆到一起对照。
2.1 全书最要紧的一个定义(text/04-ch01-….txt:89–text/04-ch01-….txt:101)
reasoning = 模型在给出最终答案之前,先生成中间步骤。
- 作者明说这是「工程意义上的,不是哲学意义上的」(
text/04-ch01-….txt:89,搜「practical engineering sense」); - 中间步骤可以显示给用户,也可以裹在
<think>...</think>这类标签里藏起来 —— 两种都算(text/04-ch01-….txt:95); - 核心是「让模型把 token 花在中间过程上,而不是直接跳到结论」(
text/04-ch01-….txt:95); - reasoning model = 被(训练或提示)改造成 会产出这种中间步骤的 LLM(
text/04-ch01-….txt:101)。
这个定义是全书的地基:后面每一章都在回答「怎么让它多花 token 在中间步骤上、并且花得值」。
2.2 作者反复设的防线:LLM 的 reasoning 不是逻辑推理
这是第 1 章的主要论证,分三处递进,不是一句免责声明:
text/04-ch01-….txt:120(边栏 Chain-of-Thought):作者说他用 reasoning / thinking 是「常见工程说法」, 不暗示 LLM 像人一样推理;text/04-ch01-….txt:172–text/04-ch01-….txt:178:拿符号逻辑引擎 / 定理证明器做对照 —— 那种系统按固定规则走, 同样输入必然同样输出(书用了做菜的比方:照方子走一定得到同一道菜,text/04-ch01-….txt:172); 而 LLM 是自回归地一次吐一个 token、靠训练数据里的统计规律, 所以「它的推理步骤没有逻辑上正确的保证,哪怕看起来很有说服力」(text/04-ch01-….txt:178);- 边栏「LLM versus human reasoning」(
text/04-ch01-….txt:197–text/04-ch01-….txt:209):人可以确定性地推理 (同样的事实 + 同样的步骤 = 同样的结论),LLM 是概率性的。
2.3 常规 LLM 训练管线(1.2 节,text/04-ch01- ….txt:217–text/04-ch01-….txt:325)
书把它压成两段(明说把有些论文所谓的 mid-training 并进了预训练,text/04-ch01-….txt:235):
随机初始化的模型
│ 预训练:海量无标注文本(TB 级 / 万亿 token),目标 = 预测下一个 token
▼ 得到 base model —— 会写像人写的话,并冒出「涌现能力」(翻译、写代码等没专门教过的活)
│ 后训练之一:监督微调 SFT(= instruction tuning)→ 会听指令办事
│ 后训练之二:偏好微调(常用 RLHF 实现)→ 语气、风格合人心意
▼ 得到我们平时用的 LLM
- 成本句:「几千块 GPU 跑几个月,花掉几百万美元」(
text/04-ch01-….txt:281)—— 这是本章少数带量的句子; - 一个容易 被跳过的细节:书特意说「哪怕做完指令微调,它也还不是 chatbot」——
聊天界面是另一层:系统提示词、多轮历史管理、编排(
text/04-ch01-….txt:312),并指向附录 G; - 「token / 词」的边栏(
text/04-ch01-….txt:261–text/04-ch01-….txt:273)给了具体切分例:"An LLM can be useful."→"An"," L","LM"," can"," be"," useful","."—— 这是全书第一个可直接搬进正文的走查素材; - 书自己划的边界:这些阶段在前作里讲,本书不讲,直接加载已经训好的模型(
text/04-ch01-….txt:325)。
2.4 三条改进路线(1.3 节,text/04-ch01-….txt:382–text/04-ch01-….txt:391)—— 全书骨架
| 路线 | 动不动权重 | 干什么 | 书里哪几章 |
|---|---|---|---|
| 推理时计算扩展(inference-time compute scaling,别名 test-time scaling) | 不动 | 用户提问那一刻多花算力换正确率:思维链、各种采样法 | 第 4、5 章 |
| 强化学习(RL) | 动 | 用奖励信号让模型试错学出推理策略 | 第 6、7 章 |
| 蒸馏(distillation) | 动 | 拿强模型生成的高质量数据对小模型做 SFT | 第 8 章 |
作者特意标了一处术语陷阱(text/04-ch01-….txt:391):LLM 圈说的「蒸馏」和深度学习传统的知识蒸馏不是一回事——
传统蒸馏里学生要同时学老师的输出和 logits,LLM 蒸馏只拿老师生成的文本做 SFT。
这条要在拆解里显式讲,否则读者出门会认错。
另一处术语陷阱(边栏,text/04-ch01-….txt:403–text/04-ch01-….txt:415):推理用的 RL 和偏好微调用的 RLHF 底层是同一套 RL,
差别在奖励从哪来:RLHF 靠人打分/排序,推理 RL 靠自动验证器或环境给的可验证信号。
作者的评价很平衡:自动验证「更客观,但可能离人的偏好更远」(text/04-ch01-….txt:415)。
2.5 模式匹配 vs 逻辑推理(1.4–1.5 节,text/04-ch01-….txt:429–text/04-ch01-….txt:644)
这是第 1 章的主走查素材,书自己走了一遍,我们可以直接用:
- 例一(纯模式匹配):提示「The capital of Germany is…」→ 答「Berlin.」(
text/04-ch01-….txt:448–text/04-ch01-….txt:459)。 书的判词:这不是逻辑演绎,是回忆起一条很强 的统计关联(text/04-ch01-….txt:467); - 例二(需要逻辑):「All birds can fly. A penguin is a bird. Can a penguin fly?」(
text/04-ch01-….txt:491)。 书把它拆成两种读法:- 闭世界(只看提示里的前提):答案是「能飞」—— 因为两条前提逼出这个结论(
text/04-ch01-….txt:502); - 开世界(允许用背景知识):「企鹅不会飞」这条外部事实和结论冲突,
合格的推理系统应当发现矛盾,要么反问澄清,要么把第一条前提削弱成
「大多数鸟会飞,企鹅等除外」(
text/04-ch01-….txt:508);
- 闭世界(只看提示里的前提):答案是「能飞」—— 因为两条前提逼出这个结论(
- 例三(打脸自己):GPT-4o —— 不是推理模型 —— 在 ChatGPT 里居然答对了(图 1.7,
text/04-ch01-….txt:566–text/04-ch01-….txt:591)。 书的解释才是重点:它没有做矛盾检测,是因为训练数据里「penguins cannot fly」出现得够多, 统计关联本身就把矛盾隐式修正了(text/04-ch01-….txt:591、text/04-ch01-….txt:597)。 - 书给出的失效条件(
text/04-ch01-….txt:609–text/04-ch01-….txt:618):这种靠模式匹配的「假推理」在两种场合会崩 —— ① 逻辑情形是新的(训练里没见过);② 推理层数多、关系复杂。
这一段的价值极高:它就是全书的「为什么需要后面七章」。三个例子从「明显是记忆」→ 「看着像推理」→「其实还是记忆,只是数据够多」,一步步把读者逼到「那怎么办」。
还有一条作者的态度(text/04-ch01-….txt:644):reasoning 是连续谱,不是开关。o1/R1 之前的 LLM 就已经会
生成 中间步骤了;今天所谓「推理模型」只是这个能力的精修版。
2.6 为什么要从零手写(1.6 节)+ 成本账
书给了推理模型贵在哪的两条具体机制(text/04-ch01-….txt:695–text/04-ch01-….txt:714),这是可直接用的量化素材:
- 输出更长:每个 token 都要走一遍完整的前向计算;答案长一倍,前向次数就约多一倍(
text/04-ch01-….txt:701); - 调用更多次:很多推理流程要跑模型好几遍 —— 采样多个候选、调工具、跑验证器(
text/04-ch01-….txt:714)。
配套的判断(text/04-ch01-….txt:683–text/04-ch01-….txt:689):推理不是越多越好。适合复杂任务(谜题、高等数学、难代码)
和 agent(任务分解、规划、选工具);不适合摘要、翻译、知识问答。书还点了
「overthinking(想太多)反而更容易错」这个失效模式(text/04-ch01-….txt:689)。
2.7 全书路线图(1.7 节,text/04-ch01-….txt:732–text/04-ch01-….txt:776)
书自己画的四阶段(图 1.9):
阶段 1 拿一个常规 LLM 当基线(第 2 章)
▼
阶段 2 先把「怎么量」做出来(第 3 章) ←──────┐
▼ │ 阶段 3、4 都要回到阶段 2 复测
阶段 3 不改权重,在推理时改进(第 4、5 章)──┤
阶段 4 改权重,靠训练改进(第 6、7、8 章)──┘
「先做评测再做改进」是这本书的方法论主张,作者写得很直白:
「阶段 2 做出判断某个方法到底有没有用的工具……阶段 3、4 之后都要回到阶段 2 量一次」(text/04-ch01-….txt:751)。
这一条在拆解里要提到总纲的高度 —— 它是这本书区别于「炫技型」教程的地方。