跳到主要内容

奖励模型 — 把偏好压成一个数

这一章讲三件事: 「人更喜欢哪条回答」怎么变成一个可训练的数学问题; 这个打分机器具体长什么样、训练时有什么坑;以及四种容易混淆的「打分机器」 怎么区分。读完你能对着一条成对偏好数据,把训练损失从头算一遍。

1. 这一章讲什么

第 02 章说过,RLHF 的第一处手术是把「环境写死的奖励函数」换成「学出来的奖励模型」。 奖励模型(RM)是一个从语言模型改造出来的打分器:吃进一条文本,吐出一个分数, 这个分数代表「人类会有多喜欢它」1。它是 RLHF 全部的优化目标——第 05、06 章的 强化学习都在对这个分数使劲,第 14 章的全部病症也都源于「它只是个替身」。

2. 顶层全景与主走查

主走查:拿一对真实形状的偏好数据,把训练损失算一遍。设定(分数为演示编的):

prompt: 「解释一下机会成本」
回答 A(人选的,chosen): 概念正确、有例子 → 打分器输出 r_c = 2.0
回答 B(人弃的,rejected): 概念对但含糊其辞 → 打分器输出 r_r = 0.5

第 1 步 算分差: r_c − r_r = 2.0 − 0.5 = 1.5
第 2 步 过 sigmoid 换成概率: σ(1.5) ≈ 0.82 ← 「A 被偏好的概率」
第 3 步 取负对数当损失: −log(0.82) ≈ 0.20
第 4 步 梯度下降调参数,让这个数变小 —— 也就是把分差再拉大

图说:训练的全部目标就是「让被选中的那条,得分稳定地高于被嫌弃的那条」。
r_c、r_r 是编的演示数;损失公式是书里的正牌公式。

这套「分差→概率(某事发生的可能性,0 到 1 之间的数)→损失」的形状来自 1952 年的 Bradley-Terry 模型——统计学里 处理成对比较的老办法。它假设每条回答有一个潜在的「实力值」,人观察到的偏好是 实力加噪音:实力高的一条被选中的概率,随实力差拉大而逼近 12。两个推论值得 记住:只有分差有意义(所有分数一起加常数,概率一点不变——打分器是相对的, 不是绝对的);以及它不是自然法则,只是「在实践中常常好使的近似」3

3. 核心原理

3.1 从语言模型到打分器:只差一个头

实现上,奖励模型 = 一个现成的语言模型 + 一个小的附加层,行话叫线性头(线性:输出随输入按直线关系变化;头:接在网络末端的附加层, 这里负责把整条文本的内部表示压成一个分数)4

这个「分数」,行话叫 logit:模型内部对每个候选词都有一份这样的原始打分,这组打分合起来就叫 logits

  • 吃进「prompt + 一条回答」,取最后一个非填充 token的隐藏状态,过线性头, 输出一个 logit5;
  • 训练损失就一行:loss = -logsigmoid(r_chosen − r_rejected),即主走查的三步;
  • 工程上真正的难点不在损失公式,而在数据管道:成双的偏好数据要正确配对、分头进模型;
  • 只训 1 个 epoch(整个数据过一遍)——书里点名的标准做法,多训就过拟合(过拟合,就是把数据背下来而非学会规律)到偏好数据6

过拟合,就是把数据背下来而非学会规律——只训一遍,原因就在这。

3.2 三个变体:人类标注(人留下的「哪条更好」记录)比「二选一」信息更多时怎么办

真实的标注常带强度(「好很多」vs「稍微好」)或一个 prompt 多条回答。书里列了 三个处理办法7:

变体做法结局
偏好差距损失(Llama 2)把 1–5 分的差距当 margin 加进损失(如 5 分对 2 分,margin = 3)Llama 3 又删掉了——规模上去后收益递减
每题多条回答的平衡(InstructGPT)同一 prompt 的多条比较放进同一个批,按 prompt 加权不这么做会过拟合到 prompt 上
K-wise 损失(Starling)一次给 K 条排出全序(Plackett-Luce 模型)K=2 时退化回 Bradley-Terry

这张表是本书方法论的一个缩影:「怎么用更丰富的标注信号」反复被提出、 反复没有成为标准——直到全书收尾,这个领域也没给这个问题一个公认答案8

3.3 四种打分器,一张表分清

最容易混淆的是 RM 和它的两位近亲。区别只有一个维度:分数打在哪9:

类型分数打在哪训练信号典型用途
奖励模型 RM整条回答末尾一个分成对偏好(对比损失)偏好微调的主打
结果奖励模型 ORM每个 token 上打「最终对不对」有对错答案的题(数学、代码)判卷:答案对 = 1,错 = 0
过程奖励模型 PRM每个推理步骤末尾一个分人工标到每一步(-1/0/+1)「这步对,但下一步跑偏」的定位
价值函数每个状态(此后累计能拿多少)回归到实际回报强化学习内部的基线(第 05 章)

ORM 与 PRM 的差别用一道多步数学题看最清楚:ORM 像只看最终答案的阅卷老师—— 答案错,整条过程都得零分,但说不清错在哪一步;PRM 像逐步批改的老师—— 每步末尾给一个「对/错/中性」,能把跑偏的那一步点名出来。PRM 的标签还有个 微妙之处:它只判「这一步本身对不对」,不判「这条路走不走得通」——一步正确 的弯路,标签照样是「对」10

3.4 让另一个语言模型当判官

既然打分机器是个语言模型改造的,一个自然的想法:直接拿现成的大模型当判官, 行话叫 LLM(大语言模型,即 Large Language Model)当判官(LLM-as-a-judge)11

评审的输入,是提示词(下给模型的指令文字)、问题、两条回答;输出「[[A]]」或「[[B]]」。这套做法撑起了整个自动评测产业(第 15 章)。

书里还给了一个实操细节:评审时把温度(生成时的随机度旋钮,0 就是每次都挑最稳的答案)设成 0,压掉评分的随机抖动12

但作为训练用的奖励模型,书里的结论很直白:判官型(行话叫生成式,即让模型写出评语再给分)奖励模型在专门的 RM 评测上仍然落后于专门训的 RM——所以它赢在评测与造数据的成本,没有赢在 RLHF 的核心岗位上13

4. 作者的判断与证据

书里有证据的部分:margin 被 Llama 3 移除、同 prompt 平衡防过拟合(InstructGPT)、 1 epoch 防过拟合、Starling 的 K-wise 实践,全部挂着实名论文。书里给判断的部分: 作者断言「奖励建模是 RLHF 里开发不足的地带——变体很多,没有收敛出最佳实践」 8;以及 RM 评测生态(RewardBench 一族)是 2024 年才补齐的,作者本人是 RewardBench 的作者——这条利益相关要记着,他报「RM 评测很重要」时有自己的 产品线在里头。

5. 边界与局限

  • 打分是相对的:RM 只会排座次,给不出绝对质量——所以 RLHF 的优化目标是 「分差」,天然倾向「比别人好」而非「客观好」(第 14 章的病根之一);
  • ORM 术语已漂移:同一个词,有的文献指 Cobbe 2021 的原版,有的不是——书里 明说这块「定义混乱」14;
  • 判官的偏差会传染:大模型判官有长度偏好、有「偏爱自己风格」的自恋 (第 10、11 章展开);
  • 多模态与 agent 的 RM 评测刚起步,书里只列了基准名单,没有给结论15

6. 可带走的

  1. 奖励模型 = 语言模型 + 输出单分数的头;只有分差有意义;
  2. 数学骨架是 1952 年的 Bradley-Terry 成对比较:分差过 sigmoid 变成「被偏好概率」;
  3. 只训 1 个 epoch;工程难点在数据管道,不在损失函数;
  4. 标注强度怎么用(margin/平衡/K-wise)反复被发明、反复没定型;
  5. RM / ORM / PRM / 价值函数:分数打在哪是唯一的区分维度;
  6. LLM-as-a-judge 赢了成本,输了精度——评测好用,当训练目标还不行;
  7. 奖励建模是 RLHF 各环节里最「欠开发」的一块——也是提升空间最大的一块。

7. 原文地图

主题原书章原文位置
RM 的定位与来历Reward Modelingtext/08-ch05-5-reward-modeling.txt:29(搜「proxy objectives」) · text/08-ch05-5-reward-modeling.txt:35(搜「proxy for environment rewards」)
Bradley-Terry 与「只有分差」Reward Modelingtext/08-ch05-5-reward-modeling.txt:59(搜「Bradley-Terry」) · text/08-ch05-5-reward-modeling.txt:85(搜「Only differences in scores matter」) · text/08-ch05-5-reward-modeling.txt:85(搜「not a law of nature」)
实现与 1 epochReward Modelingtext/08-ch05-5-reward-modeling.txt:167(搜「AutoModelForSequenceClassification」) · text/08-ch05-5-reward-modeling.txt:198(搜「logsigmoid」) · text/08-ch05-5-reward-modeling.txt:268(搜「1 epoch」)
margin 及其退场Reward Modelingtext/08-ch05-5-reward-modeling.txt:292(搜「margin」) · text/08-ch05-5-reward-modeling.txt:311(搜「margin term was removed」)
多比较平衡与 K-wiseReward Modelingtext/08-ch05-5-reward-modeling.txt:323(搜「overfitting to the prompts」) · text/08-ch05-5-reward-modeling.txt:342(搜「Plackett-Luce」)
ORMReward Modelingtext/08-ch05-5-reward-modeling.txt:373(搜「Outcome Reward Model」) · text/08-ch05-5-reward-modeling.txt:495(搜「used in multiple ways」)
PRMReward Modelingtext/08-ch05-5-reward-modeling.txt:507(搜「every step in a chain-of-thought」) · text/08-ch05-5-reward-modeling.txt:550(搜「if the step is correct」)
四种打分器对比Reward Modelingtext/08-ch05-5-reward-modeling.txt:634(搜「Comparing types of reward models」) · text/08-ch05-5-reward-modeling.txt:685(搜「discount factor of 1」)
LLM-as-a-judgeReward Modelingtext/08-ch05-5-reward-modeling.txt:707(搜「impartial judge」) · text/08-ch05-5-reward-modeling.txt:741(搜「temperature of 0」) · text/08-ch05-5-reward-modeling.txt:735(搜「behind existing reward models」)
RewardBench 生态Reward Modelingtext/08-ch05-5-reward-modeling.txt:753(搜「RewardBench」) · text/08-ch05-5-reward-modeling.txt:280(搜「under-explored」)

Footnotes

  1. 出处:「Reward Modeling」第 29 段(text/08-ch05-5-reward-modeling.txt:29,搜「compress complex features」)与第 35 段(text/08-ch05-5-reward-modeling.txt:35,搜「single scalar value of reward」)。

  2. 出处:「Reward Modeling」第 59 段(text/08-ch05-5-reward-modeling.txt:59,搜「Bradley-Terry model of preference」)与第 72 段(text/08-ch05-5-reward-modeling.txt:72,搜「latent strength」)。

  3. 出处:「Reward Modeling」第 85 段(text/08-ch05-5-reward-modeling.txt:85,搜「not a law of nature」)。

  4. 出处:「Reward Modeling」第 167 段(text/08-ch05-5-reward-modeling.txt:167,搜「linear head」)。

  5. 出处:「Reward Modeling」第 232 段(text/08-ch05-5-reward-modeling.txt:232,搜「last non-padding token」)。

  6. 出处:「Reward Modeling」第 268 段(text/08-ch05-5-reward-modeling.txt:268,搜「1 epoch」)。

  7. 出处:「Reward Modeling」第 286 段(text/08-ch05-5-reward-modeling.txt:286,搜「Preference Margin Loss」)、第 323 段(text/08-ch05-5-reward-modeling.txt:323,搜「balancing them」)、第 342 段(text/08-ch05-5-reward-modeling.txt:342,搜「K-wise loss function」)。

  8. 出处:「Reward Modeling」第 280 段(text/08-ch05-5-reward-modeling.txt:280,搜「under-explored」)。原文:「Reward modeling is a relatively under-explored area of RLHF…have not solidified into a single best practice.」 2

  9. 出处:「Reward Modeling」第 628 段(text/08-ch05-5-reward-modeling.txt:628,搜「spectrum of ways」)及表格第 85–101 段(text/08-ch05-5-reward-modeling.txt:649,搜「Contrastive loss」;text/08-ch05-5-reward-modeling.txt:385,搜「per-token」;text/08-ch05-5-reward-modeling.txt:662,搜「end of reasoning steps」)。

  10. 出处:「Reward Modeling」第 550 段(text/08-ch05-5-reward-modeling.txt:550,搜「if the step is correct」)。原文:标签不必然关联「是否在正路上」,只关联「这一步是否正确」。

  11. 出处:「Reward Modeling」第 707 段(text/08-ch05-5-reward-modeling.txt:707,搜「impartial judge」)。

  12. 出处:「Reward Modeling」第 741 段(text/08-ch05-5-reward-modeling.txt:741,搜「temperature of 0」)。

  13. 出处:「Reward Modeling」第 735 段(text/08-ch05-5-reward-modeling.txt:735,搜「behind existing reward models」)。

  14. 出处:「Reward Modeling」第 495 段(text/08-ch05-5-reward-modeling.txt:495,搜「used in multiple ways」)。

  15. 出处:「Reward Modeling」第 622 段(text/08-ch05-5-reward-modeling.txt:622,搜「Process RMs」)与第 774 段(text/08-ch05-5-reward-modeling.txt:774,搜「Agentic RMs」)。