跳到主要内容

从续写机器到助手 — 指令、偏好、低秩(只加一对小矩阵的省法)旁路和可验证的奖励

这一章讲三件事: 为什么刚训完的模型是个「续写机器」,离能用的助手还差哪几道工序; 每道工序吃什么数据、花多少钱、在什么尺度上跑; 以及一个贯穿全场的问题——「好」到底由谁来定义:人来排序、写成原则,还是交给能自动判分的题。

它在全书链条里的位置: 第 12 章的自监督给了它语言,第 15 章给了它规模, 这一章给它行为。总纲说过「为什么必须分两步」,这一章的第 5 节兑现; 第 17 章的长思考、第 19 章的智能体,都建立在这一章训出的底子之上。

1. 预训练刚结束时的样子

先把落差摆出来。预训练结束后,模型脑子里装着海量知识,但它的原始目标只是「预测下一词」, 不是「帮用户完成任务」。书里的例子原样保留:你问它怎么做水果派, 它可能接下去写「这是一道传统甜点,在欧美家庭很受欢迎……」—— 从统计上完全合理的百科口吻;可你要的是步骤1

所以有了后训练(在已经练好的底座上再补的那几道工序)这个统称。 书里把它画成一条三段流水线2:

预训练 指令微调 偏好对齐 产品
万亿词元 高质量指令-回答对 偏好比较 / 规则反馈 ChatGPT 等
学语言学世界 学会听指令 学会符合偏好
成本:千万–数亿美元 数万–百万美元 数万–百万美元

这张图看的是钱的比例:预训练吃掉绝大部分预算(上一章那 557.6 万美元就是它的量级), 后面两道工序加起来往往只是零头——却决定了你上手的是个助手还是个复读机。

2. 第一道工序:指令微调

指令微调(行话也叫 SFT,监督微调——supervised,fine-tuning 就是「接着训一小段」的意思) 吃的食物很朴素:一条一条「指令-回答」对3。书里给了两条实例的风格: 「写一首关于月亮的五言绝句」配一首合格的五言绝句; 「用一句话总结《三体》的核心科幻概念」配一句准确的概括4

这样的数据练几万到几十万条,量变发生质变:只会顺写下去的「续写机器」, 变成能识别并执行意图的「助手」5。变化发生在行为模式上: 同样一段输入,它不再猜测「下一个最常见的续写是什么」, 而是识别出「有人在向我下指令,我的下一句应该是一个回答」。

3. 数据质量远比数量重要

要多少条?书里给的参照链很有说服力:一份开源复刻 Alpaca 用 5 万级指令样本就做出了可用的指令跟随模型; 另一份工作 LIMA 更极端,约 1000 条高质量样本就展示了「少而精」的效果6。 参照物:预训练侧同类公开项目的语料以万亿词元计——这一道工序的数据量, 只有预训练的亿分之一上下。

行内人给这道工序起了个绰号:「炼丹」——一点儿玄学,一点儿经验, 一点儿对数据口味的敏感7。玄的是为什么一千条顶一百万条,经验的部分倒很确定: 高质量样本精确覆盖了任务形态,低质量样本则在教模型敷衍。

4. 走查:一条训练样本进引擎

这一章的主走查:拿一条指令样本从头到尾送进训练引擎,看清楚「该学的部分」是怎么被圈出来的。 指令与回答我们都编个短的,专门为演示:

样本:指令「用一句话夸夸机器学习」 回答「我爱机器学习」
① 分词器切分 → 指令部分切出 8 个词元、回答部分 4 个(这两个数是为演示编的,
切法本身见第 14 章)
② 拼成一条序列,并给每个位置发「标签」:
指令那 8 个位置 → 全部改成 −100
回答那 4 个位置 → 保持下一个词元的编号
③ 模型照常在每个位置做「猜下一个词」
④ 算损失时,标签为 −100 的位置被直接跳过
⑤ 于是真正推动参数变化的,只有回答那 4 个位置上的 prediction 对错

这张图看的是第 ② 步的关键设计:不让模型把力气浪费在「模仿用户提问」上, 只让它学会如何作答。

补充(不在书里): 书里对 SFT 只讲到「用这些数据继续训练」,没有提屏蔽细节; 上面的 −100 标位法来自真实实现8。工程口径顺带澄清一下: 在第 14 章我们说过预测目标永远成立,这里没有推翻它——损失的算式没变, 变的只是哪些位置允许参与扣分。

5. 光听指令还不够

总纲欠的那笔账在这里还:「为什么必须分两步?」

因为两道工序教的根本不是同一种东西9: SFT 能让模型听懂指令,但它教不会诚实、无害、风格友好—— 这些品质不写在任何一条指令里。你没法给出一万条「诚实地回答」的示范让它背, 因为「什么是诚实的分寸」恰恰需要逐例比较才能传达。

于是第二道工序换了教学方法:

第一道:指令微调第二道:偏好对齐
数据长什么样一问一答的完整示范同一个问题,两个回答,谁更好
教的是什么听懂并执行格式化的意图在都能用的回答之间辨优劣
反馈信号的来源人写下的范例本身人的选择

一句话版本:第一道的老师是示范,第二道的老师是挑选。 示范教不出品味,挑选才教得出。

6. 收集偏好:排序员的一天

第二道工序的原料从哪来?流程三步10:

  1. 收集偏好数据:同一道题让模型生成几个回答(书里举的数:比如 4 个), 让标注员排出高下——「对于这个问题,回答 A 比回答 B 好」。为什么用排序不用打分, 第 13 章已经推过(不同人给同一个回答打出 7 分或 4 分,但对谁更好意见一致),这里直接取用结论;
  2. 训练奖励模型:拿这批排序数据训一个小模型,让它学会模仿人类评委,给任何回答打分10;
  3. 用强化学习优化:把语言模型当作策略,奖励模型当场打分,用第 13 章讲的 PPO 推着它涨分10

有一个容易被忽略的细节,书里专门点了名:标注员的选择会直接塑造模型的性格。 公司会给标注团队详细的指南,白纸黑字规定什么算「有帮助」、什么算「诚实」、什么算「无害」—— 不同的数据、指南和策略,训出的模型味道就不一样11。 这一伏笔在第 12 节收回来。

7. 省钱的微调:只训一条旁路

到目前为止的说法都隐含着一件事:微调就是在全部参数上继续拧。 但对几十亿往上的模型,补充(不在书里)——工程界有个普及度极高的省法, 行话叫 LoRA(中文常译低秩适配)。

它的做法:冻结(训练时保持原值不动)原来的参数,在旁边并联一对瘦矩阵,只训练这对小矩阵12。 打个比方就拆:不改整栋楼的承重墙,只在墙上挂一块可调节的斜撑; 走查里那句「B 从零开始」的细节放在脚注12

效果近似全参微调而开销小得多,这也是「开放权重」生态(第 15 章第三类家族) 能在个人电脑上折腾的根本原因之一:底座归底座,那块斜撑才是你的。 书内与之呼应的一处是部署篇的一个名词「低秩分解」13——同一个数学思想, 用在训练是旁路,用在部署是压缩。

8. 用人的偏好当分数

现在把第 6 节的三步中最重的一步摊开看。第 13 章末尾留过一个钩子: 「这套偏好机制用在大机器上是什么样。」这里兑现。

核心循环是:模型对一批题目各出多个回答 → 奖励模型按人的口味逐个打分 → PPO 沿着高分方向更新策略。书里在优化目标旁边写了直觉版: 奖励尽可能高,但别离原来那个模型太远——后面的 KL 约束项像一道「紧箍咒」, 防止模型为了骗奖励分数去生成奇怪的句子(比如不明意义却总能得分的暗号文本)14。 KL 是两个概率分布差异的度量,这里的用法一句话:新旧模型的行为差距不许超过一条线

补充(不在书里,依据我们的 frontier 书架):真实的一次运行有多重? 一套广泛使用的开源训练框架的示例配置:2 台机器 × 每台 8 张卡 = 16 张 GPU, 每一步批量处理 1024 道题、每道题采样 5 个回答供奖惩比较15。 参照物换算:每一个训练步,就是五千一百多个待评比的回答过一遍奖励模型的秤; 乘上千百个训练步,这就是「人的口味」被工业化的方式。

9. 直接偏好优化:跳过中间商

上面那条流水线要养三个模型(正在训的、冻结的原始副本、打分的奖励模型), 复杂且不稳定。2023 年出现的DPO(直接偏好优化)走了短路: 不做奖励模型、不做 PPO,数学上证明了可以把带约束的偏好优化改写成类似分类任务的损失, 直接拿「A 比 B 好」这类数据开训16。工程上更轻、更稳。

补充(不在书里,依据我们的 frontier 书架):那条损失在代码里的样子确实只剩一行核心式: 对好差两组回答的差值取对数概率、缩放后再过一道压平函数17。 要强调公平:DPO 并没有淘汰 RLHF——它给工具箱添了一件更顺手的工具, 可验证奖励那一类场景(下一节)依然常见于强化学习路线。

10. 可验证的奖励:答案自己会说话

preference 的尽头还有一个釜底抽薪的办法:某些领域,对错根本不需要人来评。 数学题看最终答案对不对,代码跑测试通不通过——奖励信号现成18。 书里在前一章推理模型部分埋了这条线:DeepSeek 的 R1-Zero 展示了 大规模强化学习可以直接激发推理行为,不需要先灌人工示范19; 正式版 R1 加了冷启动和多阶段训练让能力稳定可用,引发行业震动的原因, 书里总结得克制:不是因为宣布「算力不重要」, 而是证明了工程效率与训练策略同样是竞争变量(会左右胜负的输入条件)19

那条管线用的算法叫 GRPO(组内相对策略优化):同一道题采样一组回答, 按组内相对高下给奖励,从而免掉单独养一个评论员网络—— 比 actor-critic 少养一个网络,故常被称作便宜路线。 书里给了一句值得原样记住的冷却剂:把 R1 的成功全归于 GRPO, 就像把一道好菜全归功于锅铲20

到这里,三种「好」的定义凑齐了:人来排序(RLHF/DPO)、原则来评审(下一节)、答案自证(本节)。 最后一类的边界也明摆着:写作、陪伴、咨询——凡是没有标准答案的地方,秤还是只有人心里那一杆。

11. 宪法式对齐:把原则写下来

第三种思路干脆连标注员也部分替代:宪法 AI(Constitutional AI,Anthropic 提出)—— 先写一组「宪法」式的原则条文,让模型依据这些原则批评和修改自己的回答, 再用修改前后的对比生成偏好数据继续训练21

注意书里的措辞,它没有抛开人的判断,而是把「逐条人工标注」换成了 「原则 + AI 评审」——人评一次原则,机器按照原则评千次回答。 Claude 系列的产品风格,书里明确说与此类对齐路线有关21。 这与智能体那一章的「反思自我改进」是同一个思想的对齐版:让机器自审,但审查的标准由人定。

12. 同一个底座,不同的性格

最后一节收回第 6 节的伏笔。书里给的现象:各家拿到同一个开放底座(比如 Llama), 配上各自的 SFT 数据和对齐策略,产出风格迥异的东西——有的严谨、有的活泼、 有的适合敲代码、有的擅长扮演角色22

对齐阶段塑造了模型的「人格」。 你日常感受到的 ChatGPT、Claude、Gemini 之间那种说不清的气质差别,相当一部分不在万亿词元的底座里, 而在标注指南的字缝里(什么算有帮助)、在偏好排序的选择里(诚实与讨好冲突时选哪个)。 底座决定它会什么,后训练决定它是谁

13. 作者的判断与证据

有证据的部分。 三段流水线及成本区间出自书里的整理;Alpaca 与 LIMA 的样本量(训练例子的条数)、 R1-Zero 的纯强化学习实验都是公开记录;三步流程(收集偏好→奖励模型→PPO)是该方向的通行描述。

要分开看的四处:

  1. 书里从头到尾没提 LoRA。 第 7 节整个是我们按业界常识补的(标了「补充」), 书内只有部署篇的「低秩分解」一名遥相呼应。
  2. −100 屏蔽也是补的。 书里只说「用指令-回答对继续训练」;屏蔽来自实现, 我们给出工程锚以便回核。
  3. 成本图中的「数万–百万美元」区间画得很粗。 它想表达数量级而非报价, 不要拿着跟厂商账单对账。
  4. 「人格由后训练塑造」有强证据(同底座异风格是产业常态), 但别读成「底座无关」。 底座太弱的模型,再精心的对齐也扶不起来。

判断(我们的,不是书里的):后训练是这个行业真正的「编辑部」。 底座像印厂——印多少亿册,内容早定死了;后训练像编辑部——决定语气、立场、什么话不说。 公司之间的产品差异,公众以为拼的是大脑,实际很大一部分拼的是这几道小预算工序的审美。 如果错,会错在: 当底座能力出现代差时(前沿与前一代之间), 编辑部救不了印厂——此时差异性论断只在底座水平接近的市场成立。

14. 边界与局限

  • 书里没有给出任何一种算法的公式层。 PPO 的剪切、DPO 的推导、KL 的定义都只有直觉句; 本拆解补的也只是一行代码的样子,不是推导。
  • 多轮对话(一来一回好几轮的对话)与工具使用的对齐没有展开。 本章素材基本都是单轮问答, 多轮场景怎样保持一致,第 19、20 章才会碰到。
  • 偏好数据的各种失效模式只点了几个名。 标注员的疲劳、一致性检查、文化偏差, 书里只说「选择很讲究」,操作层面的坑留给读者自行警惕。
  • 数值都以区间或个例给出。 训练步数、学习率、KL 系数的典型值全书缺席; 配置级的数字请到代码框架文档里找。
  • 宪法 AI 的失败案例书里没收录。 原则自身含混时的争议,这一版没有讨论。

15. 可带走的

  1. 预训练结束时它是个续写机器:问水果派,答百科腔。 助手是后训练教出来的。
  2. 三段流水线的钱是万比一的关系:大脑最贵,品行便宜——但没有后者前者白费。
  3. SFT 吃「指令-回答」对;一千条精品顶一百万条水货(LIMA)。
  4. 主走查的一条铁律:训练只在回答上扣分,问题部分标 −100 跳过。 不学模仿你的问法。
  5. 必须分两步,因为教具不同:示范教格式,挑选拔品味的。
  6. 标注指南写得越细,模型的性格越固定。 有帮助、诚实、无害都有字面定义。
  7. LoRA:冻结楼体,挂一副可调斜撑,只训那副斜撑。 个人电脑微调因此可行。
  8. RLHF 三步 + KL 紧箍咒:加分但不许人格分裂。 16 卡采样 5120 个回答,就是口味的工业化。
  9. DPO 把偏好训练折成一行分类式损失:轻、稳,但没取代 RLHF。
  10. 数学与代码自带裁判,R1-Zero 证明纯强化学习能激发推理。 但没有标准答案处,秤仍在人手。
  11. 宪法 AI:人批一次原则,机器批千次回答。 规模化监督的第一种形状。
  12. 底座决定它会什么,后训练决定它是谁。 两家产品的气质差,多半在编辑环节。

16. 原文地图

主题原书章原文位置
续写机器的现状第8章 语言的魔法:大语言模型text/09-ch08.txt:468(搜「水果派」)
三段流水线与成本第8章 语言的魔法:大语言模型text/09-ch08.txt:114(搜「万亿词元」)· :483(搜「千万」)
SFT 定义与数据形式第8章 语言的魔法:大语言模型text/09-ch08.txt:488(搜「Supervised Fine-Tuning」)· :492(搜「明月悬空照」)
三体示例第8章 语言的魔法:大语言模型text/09-ch08.txt:496(搜「三体」)
数量级转变第8章 语言的魔法:大语言模型text/09-ch08.txt:499(搜「几万到几十万」)· :500(搜「续写机器」)
质量重于数量第8章 语言的魔法:大语言模型text/09-ch08.txt:503(搜「Alpaca」)· :504(搜「LIMA」)
炼丹第8章 语言的魔法:大语言模型text/09-ch08.txt:505(搜「炼丹」)
SFT 够不到偏好第8章 语言的魔法:大语言模型text/09-ch08.txt:509(搜「符合人类偏好」)
三步流程第8章 语言的魔法:大语言模型text/09-ch08.txt:515(搜「第一步」)· :521(搜「奖励模型」)· :524(搜「InstructGPT」)
标注指南塑性格第8章 语言的魔法:大语言模型text/09-ch08.txt:518(搜「标注指南」)· :520(搜「不一样的重要原因」)
KL 直觉与紧箍咒第8章 语言的魔法:大语言模型text/09-ch08.txt:532(搜「紧箍咒」)
DPO第8章 语言的魔法:大语言模型text/09-ch08.txt:534(搜「直接偏好优化」)· :537(搜「更顺手」)
可验证奖励第8章 语言的魔法:大语言模型text/09-ch08.txt:442(搜「正确性或测试是否通过」)
R1-Zero 纯 RL第8章 语言的魔法:大语言模型text/09-ch08.txt:436(搜「R1-Zero」)· :438(搜「震动业界」)
R1-Zero 影响第8章 语言的魔法:大语言模型text/09-ch08.txt:438(搜「工程效率」)
低秩分解(部署侧名字)第4章 把网络训好的艺术text/05-ch04.txt:616(搜「低秩分解」)
宪法 AI第8章 语言的魔法:大语言模型text/09-ch08.txt:538(搜「Constitutional」)· :541(搜「Claude 系列」)
同底座不同人格第8章 语言的魔法:大语言模型text/09-ch08.txt:542(搜「同一个底座」)· :545(搜「人格」)

Footnotes

  1. 出处:「第8章 语言的魔法:大语言模型」第 467 至 469 段 (text/09-ch08.txt:467,搜「原始目标」;:468,搜「水果派」)。

  2. 出处:「第8章 语言的魔法:大语言模型」第 476 至 485 段 (text/09-ch08.txt:485,搜「三阶段」;:483,搜「千万」)。 图中各阶段下方文案「学语言、学世界」「学会听指令」「学会符合偏好」照原文抄录。

  3. 出处:「第8章 语言的魔法:大语言模型」第 488 段(text/09-ch08.txt:488,搜「指令微调」)。 「fine-tuning 就是『接着训一小段』」是释义,括号内的英文对照是补充说明

  4. 出处:「第8章 语言的魔法:大语言模型」第 491 至 497 段 (text/09-ch08.txt:491,搜「五言绝句」;:496,搜「三体」)。

  5. 出处:「第8章 语言的魔法:大语言模型」第 499 与 500 段 (text/09-ch08.txt:499,搜「几万到几十万」;:500,搜「续写机器」)。

  6. 出处:「第8章 语言的魔法:大语言模型」第 503 与 504 段 (text/09-ch08.txt:503,搜「Alpaca」;:504,搜「LIMA」)。 「亿分之一上下」按 5 万条样本相对万亿词元估算,比值是为了量感粗估的

  7. 出处:「第8章 语言的魔法:大语言模型」第 505 段(text/09-ch08.txt:505,搜「炼丹」)。

  8. 补充(不在书里,依据我们的 frontier 书架):SFT 实现里用 ignore_index=-100 让被标记位置不计入损失。 依据: shelf=ai-frontier-reference/trl@src:trl/trainer/sft_trainer.py:112 @67dfbe211a07a8dd6ebc1a5af5b75152e10add8e 事实=F.nll_loss(log_p, lbl, ignore_index=-100) —— 标签为 -100 的位置损失为零, 这就是走查里 −100 标位的工程出处。

  9. 出处:「第8章 语言的魔法:大语言模型」第 509 段(text/09-ch08.txt:509,搜「符合人类偏好」) 与第 474 段(text/09-ch08.txt:474,搜「先抓住三件事」)。 「老师是示范 / 老师是挑选」的对照表是我们对这两段的合并转述。

  10. 出处:「第8章 语言的魔法:大语言模型」第 514 至 526 段 (text/09-ch08.txt:515,搜「收集偏好数据」;:521,搜「训练奖励模型」;:524,搜「PPO 算法优化」)。 2 3

  11. 出处:「第8章 语言的魔法:大语言模型」第 518 段(text/09-ch08.txt:518,搜「标注指南」) 与第 519 至 520 段(text/09-ch08.txt:520,搜「不一样的重要原因」)。

  12. 补充(不在书里,依据我们的 frontier 书架):LoRA 冻结原权重、仅训练一对并联的小矩阵; 其中上行矩阵随机初始化、下行矩阵 B 初始化为全零,保证起步等价于什么都不加。 依据: shelf=ai-frontier-reference/peft@src:src/peft/tuners/lora/layer.py:343 @5779b17b9a67d9b07b5be75053cb1932b939fd9f 事实=nn.init.zeros_(self.lora_B[adapter_name].weight) —— 初始化代码就在库里。 2

  13. 出处:「第4章 把网络训好的艺术」第 616 段(text/05-ch04.txt:616,搜「低秩分解」)。 「同一思想,训练是旁路、部署是压缩」是我们的对应注解。

  14. 出处:「第8章 语言的魔法:大语言模型」第 529 与 532 段 (text/09-ch08.txt:529,搜「KL」;:532,搜「紧箍咒」)。 「暗号文本」的那个例子是书里防的内容方向,非具体案例。

  15. 补充(不在书里,依据我们的 frontier 书架):某开源强化学习训练框架的 GRPO 示例配置, 以环境变量缺省值写明 2 节点、每节点 8 卡、全局批 1024 道题、每题采样 5 个。 依据: shelf=ai-frontier-reference/verl@src:examples/grpo_trainer/run_qwen2_5_32b_fsdp.sh:15 @8f8b122195ecf43475679fb6ee0204ee33f387c5 事实=NNODES=2(第15行)、NGPUS_PER_NODE=8(第16行)、TRAIN_BATCH_SIZE=1024(第18行)、ROLLOUT_N=5(第31行)。 1024×5=5120 为我们直接相乘,可核对。

  16. 出处:「第8章 语言的魔法:大语言模型」第 534 至 537 段 (text/09-ch08.txt:534,搜「直接偏好优化」;:537,搜「添了一把更顺手的工具」)。

  17. 补充(不在书里,依据我们的 frontier 书架):DPO 损失的核心一项在代码中是对偏好差值取负对数并压平。 依据: shelf=ai-frontier-reference/trl@src:trl/trainer/dpo_trainer.py:1465 @67dfbe211a07a8dd6ebc1a5af5b75152e10add8e 事实=per_sequence_loss = -F.logsigmoid(self.beta * delta_score) —— sigmoid 型 DPO 损失分支。

  18. 出处:「第8章 语言的魔法:大语言模型」第 441 与 442 段 (text/09-ch08.txt:441,搜「多次采样、搜索、验证」;:442,搜「测试是否通过」)。

  19. 出处:「第8章 语言的魔法:大语言模型」第 436 段(text/09-ch08.txt:436,搜「R1-Zero」) 与第 437 至 439 段(text/09-ch08.txt:437,搜「震动业界」)。 2

  20. 出处:「第7章 在试错中成长:强化学习」第 508 段(text/08-ch07.txt:508,搜「锅铲」)。 GRPO 的原理描述在同章第 304 至 306 段(text/08-ch07.txt:304,搜「GRPO」)。

  21. 出处:「第8章 语言的魔法:大语言模型」第 538 至 541 段 (text/09-ch08.txt:538,搜「Constitutional」;:541,搜「Claude 系列」)。 2

  22. 出处:「第8章 语言的魔法:大语言模型」第 542 与 544 段 (text/09-ch08.txt:542,搜「同一个底座」;:544,搜「人格」)。