English interface selected · this article is currently written in Chinese.
奖励模型怎样从比较中学习:分数差、概率与失效边界
English overview →具备清晰骨架、初步数学推导或工程验证,持续补充论据与实测。
数字花园
🌿 什么是数字花园与思想演进?
遵循 Maggie Appleton 与 Andy Matuschak 的常青笔记理念:这里不是按时间沉底的流水账,而是持续修剪打磨的知识生态。文章按成熟度经历:
- 🌱 萌芽 (Seedling): 发散灵感、读书摘录、开放猜想
- 🌿 演进 (Budding): 结构渐明、初步代码推导、积极修正
- 🌳 常青 (Evergreen): 逻辑闭环、持久经得起检验的基石
- 🔬 实验待证 (Speculative): 结合沙盒与仿真探针的理论探索
我们已经有一批同题回答的偏好对。接下来,希望训练一个模型,对新的回答给出可用于比较的分数。
这通常被称为奖励模型。但“奖励”这个名字容易让人误以为它测量了回答的真实价值。实际上,它学习的是数据和标注规范中的比较规律。
奖励模型的分数首先要在具体训练目标下解释。 本篇从一个常用的成对概率模型开始,说明分数怎样变成训练信号,又有哪些信息不能从这个分数推出。
输入是问题和回答,输出是一个标量
记共同输入为 ,回答为 ,奖励模型输出:
表示奖励模型参数。与生成模型在每个位置输出词表分数不同,这里我们关心的是整段回答的一个标量。
一种实现方式是在语言模型表示上接标量输出头,选定位置或按既定方式汇总表示。具体采用哪个位置、怎样处理结束标记和 padding,都需要按实现核对。不能默认“最后一个张量格子”一定对应回答末尾。
InstructGPT 的奖励建模阶段使用基于语言模型的标量预测,并从同一提示下的比较中学习。InstructGPT,第 3.5 节
奖励模型可以读完整的已给定回答后评分,但这并不意味着生成模型在写答案时也能提前看见未来文本。两者承担的是不同计算任务。
怎样把两个分数变成选择概率
设回答 A、B 的分数分别为 。常用的 Bradley–Terry 形式为:
其中 是 sigmoid。它把任意实数分数差转换为零到一之间的数。DPO 论文在建立偏好建模背景时也使用了这一形式。DPO,第 3 节
直觉很简单:A 分数比 B 高得越多,模型越倾向于预测标注者选择 A;两者相等时,预测概率为 0.5。
| 分数差 | 预测 A 被选择的概率 |
|---|---|
| 0.5 | |
| 0.75 | |
| 0.9 | |
| 0.25 |
这些是概率模型的计算结果,不是 A 的事实正确率。只有在适用分布上经过校准检查,才有理由把它当作选择频率的近似预测。
排序损失要求把 chosen 放在前面
对一条标注为 chosen 优于 rejected 的记录,设分数差为:
负对数似然损失为:
当 时,损失为 ;当 时,损失约为 0.2877;若方向反了,,损失约为 1.3863。
所以训练不只是检查排序对不对,还会对模型给标签分配的概率计分。一个把 chosen 略微排前的模型,与一个高置信度排前的模型,损失不同。
损失对分数差的导数是:
在把两个分数视为独立变量的局部分析中,梯度下降倾向于提高 chosen 分数、降低 rejected 分数。真实网络参数共享,这次更新也会影响其他输入,所以不能把局部方向直接当作所有回答的变化保证。
数值实现通常使用稳定的 log-sigmoid 或 softplus,避免先算极大指数再取对数造成溢出。
单个分数的零点没有天然含义
如果对同一提示下所有回答都加上常数 ,差值不变:
因此,(2,1) 与 (102,101) 给出相同的成对概率。单看“奖励为 102”,不能说回答比奖励为 2 的另一个提示好五十一倍。
更严格地说,成对比较目标无法单独确定每个提示的共同偏移。具体网络参数化和正则化可能产生某种数值约定,但这不等于数据提供了可跨提示解释的绝对标尺。
缩放则不同。把两分数都乘二,会把差值从 1 变成 2,sigmoid 概率随之变化。若另引入温度参数,尺度与温度也会发生关系;不能把平移不变性误写成任意变换都不影响概率。
这也是奖励分数用于后续优化时需要谨慎的原因:排序、概率校准和优化尺度是相关但不同的问题。
一个标量不是所有质量维度的客观总和
我们的任务同时关注事实支持、简洁与有用性。如果数据把这些取舍压成一个胜负标签,奖励模型就尝试学习这种综合选择。
它不会自动知道哪些条件是不可补偿的。若训练数据经常偏好长而自信的回答,即使存在轻微无依据断言,也可能学到这种取舍。
标量分数还具有表达假设。对固定提示,若分数满足 A 高于 B、B 高于 C,就必然有 A 高于 C;但实际群体比较可能因不同取舍出现循环或强分歧。简单标量模型不能完全表达任意比较关系。
这不意味着成对模型没有用,而是提醒我们先检查标签结构,不要要求一个分数精确还原所有人的偏好。
平局与软标签需要改变目标定义
如果同一对回答有多次独立判断,A 被选择的比例为 ,可以考虑使用软标签交叉熵:
其中 。在把这一对的概率当作独立可调量、且不加其他约束时,最优值为 。
但少量投票得到的 有不确定性,不等于一个精确已知的群体概率。标注者不独立、任务说明不同或样本选择有偏时,也不能简单合并。
“平局”与“信息不足”更不应统一编码为 0.5:前者可能表示两者相当,后者表示无法判断。采用什么转换或模型,需要与反馈定义一致。
排序准确率高,也可能置信度不可靠
假设奖励模型对一组回答都预测 A 胜出概率 0.9,但实际只有约 60% 被选为 A。它可能有一定排序能力,却明显过度自信。
因此,评价至少区分:成对准确率、负对数损失,以及不同预测概率区间的实际选择频率。校准检查需要足够样本,并保留来源分组,不能从几条记录得到稳定结论。
同时看错误切片:长短差异、模型来源、材料类型、明显事实错误与细微表达取舍。总体准确率可能主要来自容易的乱码对,而真正需要的困难比较仍然很差。
固定版本 TRL 奖励训练文档提供训练接口,并把成对准确率作为默认评价指标。前面提出的分组、校准和错误切片仍需另外落实,不能以为训练器默认都做了。这些指标支持诊断,不替代任务层面的独立判断。TRL 0.23.1 Reward Modeling
新模型输出可能离开奖励模型见过的范围
训练奖励模型时,候选来自一批固定模型和采样方式。后续优化会主动寻找高分回答,产生更长、更重复或更擅长利用评分规律的内容。
于是,“在原偏好测试集上准确”不保证“被优化后仍然可靠”。奖励过度优化研究讨论了代理奖励继续提高而另一评价信号退化的现象;具体程度依赖其研究设置,不能机械外推到所有任务。Scaling Laws for Reward Model Overoptimization
我们的对策不是只看训练奖励上升,而是保留独立材料检查、人工复核和不同候选来源的评价。后续第六篇会专门讨论怎样发现高分捷径。
第一轮奖励模型实验该验证什么
先用可手算的分数检查损失、符号和梯度方向,再检查真实输入中的共同提示、回答末尾位置和 padding。把 chosen/rejected 交换后,预测偏好应对应翻转,而不是字段名本身进入模型影响结果。
数据按提示与原始来源分组划分,避免同一候选跨训练测试出现。报告每个提示生成了多少候选、展开多少对,以及训练如何赋权。
然后比较一个简单基线,例如只使用回答长度预测偏好。如果复杂模型主要复制这个基线的规律,就要进一步检查标签是否有长度捷径,而不是立即宣布学会质量评价。
本篇完成的是机制解释与实验设计,没有训练新的奖励模型。下一步只有在数据定义和这些检查明确后,才值得扩大运行规模。
两个检查理解的问题
第一,两对分数分别为 (2,1) 和 (102,101),为什么预测概率相同?若改成 (4,2),概率还相同吗?
第二,一个奖励模型在固定偏好测试集上表现很好,为什么经过优化的生成模型仍可能找到高分但差的回答?你会补哪类独立评价?
接下来将研究 DPO:能否利用生成模型与参考模型的概率关系,直接学习偏好,而不单独训练这类显式奖励模型。
文章概念网络
从章节进入正文概念。实线表示所属层级,虚线连接跨章节重复出现的概念,不代表因果关系。
43 / 43 个节点 · 正文标记术语与关键词概念
奖励模型怎样从比较中学习:分数差、概率与失效边界
回到原文 ↗最后更新于 2026-10-20
引用本文
@article{2026-10-20-llm-training-preference-03-reward-model,
author = {枫语},
title = {奖励模型怎样从比较中学习:分数差、概率与失效边界},
journal = {枫语},
year = {2026},
month = {oct},
url = {https://meiluosi.github.io/posts/2026-10-20-llm-training-preference-03-reward-model/}
}