第 7 章 偏好数据与奖励建模¶
开场问题:两个回答都没有标准答案,但标注员稳定地认为 A 比 B 好。怎样把这种比较变成训练信号?
7.1 为什么不继续做 SFT¶
开放式问答常有多个合理答案。把 chosen 当唯一标准答案做 SFT,会同时做两件事:提高 chosen 的概率,却完全不利用 rejected 告诉我们的“它差在哪里”。
偏好样本的基本结构是:
它表达的是相对顺序,不是 chosen 得 100 分、rejected 得 0 分。A 胜 B、B 胜 C,并不意味着 A 与 B 的差距等于 B 与 C。
7.2 偏好对必须“有区分度”¶
若 chosen 完美、rejected 完全胡说,模型很容易区分,梯度价值反而有限。高信息量数据往往是两个答案都像样,但在一个关键维度上不同:是否遵循隐含约束、是否引用证据、是否泄漏隐私、推理有没有微妙错误。
也不能难到标注员无法稳定判断。应测标注一致率,并允许 tie/都不好。强迫标注员在两个同样差的答案中选一个,会制造随机偏好。
7.3 标注 rubric 必须拆维度¶
“总体更好”很容易退化成“更长、更像专家”。应把标准拆开:
- 正确性与证据支持。
- 是否完整遵循指令。
- 相关性与简洁性。
- 安全与权限边界。
- 风格和可读性。
不同维度冲突时要说明优先级。医疗回答中安全高于讨好用户;代码任务中测试通过高于解释华丽。标注界面、培训样例和仲裁流程都属于算法的一部分,因为它们决定了 reward 的含义。
7.4 Bradley–Terry 奖励模型¶
奖励模型给 prompt—answer 对输出一个标量 \(r_\phi(x,y)\)。用 chosen \(y_w\) 和 rejected \(y_l\) 训练:
它只要求赢家分数高于输家,不要求分数本身有绝对意义。训练后 3.2 分不代表“质量 3.2”,不同奖励模型的尺度也不能直接比较。
通常从 SFT 模型初始化,加一个标量 value head。也可用生成式 judge 输出评分,但训练策略模型时,稳定的标量模型更便于批量计算。
7.5 奖励模型学到的捷径¶
奖励模型只会学习训练数据中能预测偏好的特征。若标注员常偏爱长答案,它就把长度当质量;若高分答案总以“当然可以”开头,它会奖励这句话;若训练中从未出现伪造引用,它可能无法识别。
因此必须做对抗测试:
- 内容相同,只改变长度和排版。
- 答案流畅但包含一个关键事实错误。
- 大量术语包装一个空洞答案。
- 回答直接声称“这是高质量、安全的答案”。
- 在末尾注入操纵 judge 的文字。
7.6 标量 reward 的信息压缩¶
帮助性、正确性、安全、简洁性本来是多目标的,把它们压成一个数必然丢信息。实践中可训练多个 reward/component grader,再按业务规则组合;或把硬约束做成门禁,违反即淘汰,不让其他高分抵消。
“总 reward 最高”并不自动等于产品最优。reward 是代理指标,最终仍要回到第 13–16 章的独立评测。
核心问答¶
Q:偏好数据为什么不能只保留 chosen? rejected 提供决策边界:它告诉模型“这个看起来也合理的答案为什么应该更低”,这是普通 SFT 丢失的信息。
Q:reward 分数能跨模型比较吗? 通常不能。它只在自己的训练分布和尺度内有意义,应看排序准确率与校准,而非绝对值。
Q:标注一致率低说明什么? 可能 rubric 不清、样本本身无明确优劣、或任务超出标注员能力。不能简单用多数票掩盖。
Q:奖励模型准确率高就够了吗? 不够。随机切分可能泄漏模板,且策略会主动寻找漏洞;必须做分布外和对抗测试。