过程奖励模型与步骤级标注
如何通过把智能体的步骤标注为正确或错误来收集过程奖励(PRM)数据,包括首错模式与逐步模式,使用 Potato 实现。
过程奖励模型(PRM)评估智能体所采取的推理步骤,而不仅仅是它的最终答案。训练一个 PRM 需要步骤级标注:对于一条轨迹中的每一步,它是否正确? 正是这类数据,才能让模型学会好好推理,而不是靠运气碰到正确答案。
PRM 与结果奖励模型(ORM)形成对照,后者只评估最终结果。在步骤级别进行标注,能够捕捉到模型通过有缺陷的推理却得到正确答案的情况。功能参考请见过程奖励标注。
两种标注模式
Potato 的 process_reward 类型支持两种标准方案:
- 首错模式:标注者标记第一个出错的步骤;其后的每一步都会被自动视为受影响。速度快,也契合推理失败逐级蔓延的方式。
- 逐步模式:标注者独立地判断每一步是正确还是错误。更细粒度,也更费力。
yaml
annotation_schemes:
- annotation_type: process_reward
name: step_rewards
description: "Mark the first incorrect step. Steps after it are flagged automatically."
steps_key: structured_turns
mode: first_error
first_error:
correct_color: "#22c55e"
error_color: "#ef4444"
downstream_color: "#f97316"
require_confirmation: true这些颜色让蔓延过程一目了然:绿色步骤是好的,红色步骤是第一个错误,橙色则标出如今变得可疑的下游步骤。
何时使用哪种模式
- 首错模式适用于数学、编程以及链式推理等场景,在这些场景中一个错误会使其余步骤全部失效。更省成本,通常也足够用。
- 逐步模式适用于步骤彼此独立的情形,或当你需要为每一步获得密集的奖励信号时。
质量方面的考量
- 精确定义什么是"正确步骤":是既正确又有用,还是仅仅不出错?对于一个冗余但无害的步骤,需要有明确的判定规则。
- 推理在边缘情形下是主观的,应在一个样本上收集重叠标注并检查一致性。
- 与一个轨迹级的结果标签配合使用,以便研究好的结果在哪些地方掩盖了糟糕的推理。参见标注智能体轨迹。