阶段 5 · 大模型怎么炼成

没有标准答案,只有一个分数
它也能学会

上一章《训练三阶段总览》讲到「对齐」:SFT 还在对答案,这里只剩人事后给的一个分数。 这一章讲清一件事:分数怎么变成方向。

1

没有答案,只有一个分数

《训练三阶段总览》里的 SFT 有标准答案:差距往回一传,参数朝正确的方向动一步。

可有些问题写不出标准答案。下棋时没人告诉你「第 37 手是错的」, 跟人聊天也没人写得出「最得体的那句回复」。能拿到的只有一个事后分数: 这局赢了,或者人类点了「这个更好」。

一图看懂 · 两种学习信号

监督学习:每步都有答案 输入 标准答案 ✓ 立刻比 输入 标准答案 ✓ 立刻比 错在哪一步,哪一步就被改。 强化学习:走完只有一个分数 动作① 动作② 动作③ 7 中间哪一步有功、哪一步有过,没有人说。

只给分数、不给答案的学习,叫 强化学习。 这一章不铺开讲全貌,只玩一个能亲手点的小问题:三家馆子,哪家最好吃。

2

三家馆子:比平时好就多去

你刚到一座新城市,街上有 A、B、C 三家馆子。没有人给你排名,只能一家家试: 这次好吃,下次多来;踩了雷,下次少来。把「馆子」换成三个动作, 把「好吃程度」换成分数,就是强化学习的最小问题。

下面这个智能体只有一个能力:按三根概率条的宽窄选一家,拿一个分数。 三根条加起来永远是 100%,它们合起来就叫策略(记作 π)。 每家馆子背后还有一个看不见的偏好 θ:三个 θ 过一遍 softmax 就变成这三根概率条; 「单步」动的是 θ。

🎯 一整章的比喻

「比平时好」这件事,人一直在做:一家馆子如果比你的平均体验好,你就多去; 比平均差,你就少去。那个「平均体验」就是这一章的基线 b——开关打开时,它等于最近 50 次得分的平均分。 后面所有公式,都是在把这句话写成数字。

互动 · 三家馆子:自己抽一次,再让它自己学

💡 整章就这一句话

没有答案时,网络学的是:比平时好的动作,多做一点。

开关关着也能学会,但慢而且乱:分数都是正的,每家被抽中都会涨,只是好的那家涨得多一点。

开关关着,连最差的 C 被抽中都会涨,它怎么还能学会?

减掉平均分之后,比平均差的那家会被往下按——这正反两个现象,小结那节的验证里都能看到。

3

老去同一家,会错过更好的

上面那个智能体每选一家之前都在按概率抽——这是它和「贪心」的全部区别。贪心永远去历史平均分最高的那家: 第一口运气不好,可能再也不回头。

先押一个 · 贪心能找到 B 吗

统计 · 100 局里,最后停在 B 的局数

4

分数来得晚,功劳算谁的

上面的例子里,选一家立刻拿到分,功劳很清楚。这个「这一次拿到的分数」就是本章的 R。真实的问题里,一步只拿到一小块分数(reward,奖励), 一整段走完才攒出一个回报——一串奖励累计起来才是它:赢了一局棋,走了 200 步,哪些步该记功?

一个简单的办法是往回传的时候每退一步打个折。这个比例叫折扣, 记作 γ:γ = 1 时每一步功劳一样, γ 越小,越早的步越不算数。

互动 · 拖 γ,看五步各分到多少功劳

γ 也解释了为什么「越远的事越不确定」:同一个动作,隔五步才见结果,中间任何一步都可能把局面带偏。 真实的多步问题里,给某一步用的不再是那一次的分数,而是把它后面的分数按 γ 打折加起来的回报(return); 本章的玩具一步就结束,主式子里还没轮到它——下一章《RLHF 与 PPO》会接着讲。

M

数学 · 把分数变成梯度

第 2 节每次更新,后台执行的其实是同一行式子——「比平时好就多做」的求导版:

这一行就是三根概率条每次走的那一步

这条式子最贵的一步在右边那个 ∇log π(a):一根概率条凭什么能求导? 三家的概率是 softmax 算出来的:

对 log πa 求导,结果刚好只剩下一个很干净的东西:

抽中的那家推 +(1 − π),没抽中的各按自己的概率往下按。 三家概率都是 1/3 时,这一项是 1 − 1/3 = 0.67 和 0 − 1/3 = −0.33。 把上面这三根小柱代回去,第 2 节每次点一下后台发生的就是:

(R − b)在文献里叫优势:这次比平时好多少。 监督学习里同样的位置放的是损失函数的梯度 ∇L;这里换成优势乘 ∇log π(a)。 真实模型里 θ 是一整张网络的参数,梯度照常用反向传播算——换掉的只是信号从哪来。

5

从这一行出发的一家子

这一行有个名字:策略梯度。 它是「没有答案、只有分数」这一家的共同祖先。后代们多数只改两件事: 把(R − b)里的 b 换掉,或者限制一步别走太大(DPO 另说,它连采样都省了)。

一图看懂 · 谁改了谁

REINFORCE 本章 · 分数 × log 概率 Actor-Critic b 换成一个学出来的评委 PPO 再加一道裁剪(rlhf) GRPO 评委不要了(rlvr) DPO 绕开 RL,直接用偏好数据
方法核心一行它修的毛病在哪章细讲
REINFORCE 本章 ∇J = E[(R − b)∇log π(a)] 没有答案也能算出往哪改 本章第 M 节
Actor-Critic A = R − V(s) 滑动平均的基线太粗;换成学出来的评委 V(s) 方差小 《RLHF 与 PPO》第 4 节
PPO min(ratio·A, clip(ratio,1−ε,1+ε)·A) 一步推太远策略会崩;把每步的更新幅度裁住 《RLHF 与 PPO》第 3 节
GRPO A = (r − mean(r)) / std(r) 砍掉评委 V:b 换成同一题几次回答的平均分,省一整个模型 《RLVR 与 GRPO》第 3 节
DPO 直接用偏好对优化策略,不采样 绕开 RL 和奖励模型,训练更稳 《DPO 家族》

表里的记号:s 是当前局面,V(s) 是评委网络对「这局面平均能拿几分」的估计; ratio 是新旧策略选中这个动作的概率之比;ε 是允许一次变多大,常取 0.2; 小写 r 是一组回答各自的分数;「滑动平均」就是第 2 节那个 b; 偏好数据是人类标好的「这两条回答哪条更好」的成对样本。 公式里的 A 是优势,和 A / B / C 三家馆子无关。

6

试错很贵,分数会被钻空子

三选一的问题里,300 步是一瞬间,因为分数是现成的。 真实问题里,每一步都要在环境里真的做一次——环境就是那个「做一次动作、给回一个分数」的东西。 这一节是这一章的账单。

代价具体表现什么时候真的会痛→ 换成什么
样本效率低
(学一样东西要试多少次)
同一个「选哪家」的问题,第 2 节打开「减去平均分」、抽满 300 次分,约 100% 的局能找到 B;关着时只有约七成,剩下约三成停在别家。带答案的数据每条都自带一个明确的答案 环境试一次很贵、很慢,或者有危险 模拟器 / 世界模型(《世界模型与具身智能》)
方差大 三家真实平均分只差 1~2,每次抽到的噪声却有 ±2:一次高分说明不了什么 奖励稀疏(很多步才给一次分,大部分步拿到的是 0),一局很长时,梯度被噪声淹没 减去基线 b(第 2 节开关)、GAE(把后面的分数打折累加再做平滑;《RLHF 与 PPO》)
奖励被钻空子 OpenAI 2016 年公开过一个例子:赛艇游戏里,原地转圈刷目标点的得分比正常完赛还高 奖励只是目标的代理,不是目标本身 KL 约束(新的策略别离旧的太远)、奖励模型(《RLHF 与 PPO》第 5 节)
要有一个能反复试的环境 调参、写代码、玩游戏可以反复来;手术、谈判不行 环境不可重来,试错代价无法接受 人类反馈、模拟器 / 世界模型(《世界模型与具身智能》:在电脑里假装成环境)

真实 ChatGPT 训练里,这个分数由学人类偏好的奖励模型给出,环境是一轮对话;下一章 《RLHF 与 PPO》接着讲。

一图看懂 · 分数写漏了一句话会怎样

规则写完整:要跑完赛程 +20 示意:船往前走,分数往上涨。 规则漏了「必须往前跑」 +60 示意:原地转圈反复刷分,比完赛还赚——它没有作弊的概念,只是在最大化那个数。
7

小结

这一章站在「⑦ 拧得动」上(七条线在第一性原理页那张地图里):能拧动的不是分数, 而是「抽到那个动作的概率」——第 2 节那三根条就是被拧的旋钮。

它对应哪条线 ⑦ 拧得动——分数本身没法求导,可「抽到这个动作的概率」能; 怎么拧,看下面那张图和第 M 节那三根小柱。
一句话 监督学习每步有答案,强化学习只有事后一个分数—— 它靠「比平时好就多做」把分数变成方向。
它牺牲了什么 样本效率:同样学会一件事,要多试很多次。第 2 节那个三选一打开「减去平均分」也要抽满 300 次分; 关着时同样 300 步只有约七成找到 B(第 6 节第一行那笔账)。

一图看懂 · R 减掉 b,正的推高、负的按下

这次比平时好:R − b > 0 + 抽中的那家往上推。 这次比平时差:R − b < 0 − 抽中的那家往下按。 另两家被推的量相反——三根条仍是 100%。
🎬 自己验一遍

回第 2 节:把「减去平均分」切到关(用 R),按「▶ 开始」跑满 300 步;
再按「↺ 重置」,切到开(用 R − b),再跑 300 步。盯 C 那根条: 关着的时候它常被一起推高,开着的时候它被按下去。

它在暗线里站在哪

下面换一套编号:A–F 是拆任何方法时该问的六件事,和上面那条「⑦」不是一回事。

暗线这一章的回答
A 信息流动 进来的是一串「动作 + 分数」,不是带标签的数据;分数要等整段行为结束才回来一个数(标量)。
B 什么被牺牲了 样本效率:同样学一件事,要多试几百次(第 6 节第一行那笔账)。
C 参数账本 账单不是参数量,是采样次数:一局 300 步 × 100 局 = 30,000 次「抽取 + 打分」。
D 跑在什么上 不是算力受限,是交互次数受限:策略只有三个数要更新(第 M 节那三根小柱),贵的是每一步都要拿回一个分数。
E 它假设了什么 假设「分数就是目标」——奖励只是目标的代理(第 6 节那只转圈刷分的船)。
F 违背了哪个直觉 「分数是正的,所以每一步都会学到」是错的:不减去基线,方向退化成「谁被抽中谁涨」。

它接住了上一章什么:《训练三阶段总览》(llm-training)的 SFT 还在对答案; SFT 之后的问题没有标准答案,这一章补上「分数怎么变成方向」。

它给下一章留了什么:三根条是玩具、b 是一个滑动平均; 下一章 《RLHF 与 PPO》要把它们换成整个语言模型和学出来的评委。

一句话带走强化学习

监督学习对答案,强化学习只有事后一个分数。
它把「比平时好就多做」写成一次乘法:(R − b)乘到抽中动作的对数概率上,分数就有了方向。
代价是试错:同一个动作要抽很多次,才知道它到底好不好。

8

拓展阅读

上面讲的都是「够用」的版本。想往下挖,这里有三个入口—— 它们不是必修内容,是给想再往前走一步的读者准备的。

📄 这一章的说法从哪来

💻 工业界怎么写

∑ 更严格的形式