总的来说,就是直接把 PPO 或者 Reinforce++ 用在奖励模型训练上,会因为损失计算和优势归一化这两个环节内在的问题,在高效率训练或者训练后期特定数据分布下,引发数值不稳定,最终影响模型效果。
为了减小大比例差异的影响,Pre-CLIP策略会在计算对数概率的指数值之前对比例进行裁剪。通过在应用指数函数前裁剪log-πθ/πθold的比例,可以避免由于比例差异过大而导致的溢出问题,并缓解负优势情况下的大对数差异。裁剪后的公式为:
为了避免由于优势分布的极端不平衡对训练带来的影响,文章采用了3-sigma规则(即保留标准化优势在范围内的样本)。公式为:
标准化后的优势通过公式
计算,其中
和
分别为优势分布的均值和标准差。
结合了 Pre-CLIP 和优势过滤器,最终用来优化的目标函数长得有点像常用的 PPO 算法的目标函数,但有所修改:
ingFang SC", system-ui, -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size:17px;font-style:normal;font-variant-caps:normal;font-weight:400;letter-spacing:0.544px;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;-webkit-text-stroke-width:0px;text-decoration:none;width:418px;box-sizing:border-box !important;overflow-wrap:break-word !important;visibility:visible !important;"/>
首先使用下面的prompt,将奖励建模问题转化为rule-based的强化学习问题。
近期follow DeepSeek-r1工作的方法基本上都是格式奖励+结果奖励,但是在奖励模型训练过程中,这存在着一致性问题:即只用上面两个奖励时,模型有时会“精神分裂”:分析部分(<analysis>)明明说回答 2 更好,但最后却输出 <answer>1</answer>。因此本文引入了一个额外的“裁判”模型(文中用了 Qwen2.5-VL-7B-Instruct)。这个裁判专门负责检查奖励模型自己输出的分析内容,看它是不是真的支持最终给出的那个答案。
1. 奖励函数设计:文章提出了三种奖励函数:
utside;" class="list-paddingleft-1">格式奖励:要求模型的输出符合指定的格式,即‘<think> </think><answer> </answer>’,鼓励模型在给出最终答案之前先进行推理,以提高内容的质量和可解释性。
结果奖励:模型最终生成的答案必须与人类专家的偏好一致。
一致性奖励:确保推理过程与最终答案一致,即模型的最终结果应当直接源自其推理过程,而不是与推理步骤无关的生成内容。
ingFang SC", system-ui, -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 17px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.544px;orphans: auto;text-align: center;text-indent: 0px;text-transform: none;white-space: normal;widows: auto;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration: none;visibility: visible !important;width: 661px !important;"/>
这样的设计好在Consistency Reward 的加成效果(乘以 0.5 再加 1)只有在 Result Reward 大于 0(也就是答案选对)的时候才能真正起作用。如果答案选错了,Result Reward 通常是 0 或者负数,那么一致性奖励就不会带来正向激励(或者激励很小),从而确保模型首要目标还是把答案选对。格式奖励作为一个基础分被加上去。
“长思考链”的冷启动问题(Long-CoT Cold Start)
多模态大模型(MLLMs)本身并不是为做奖励模型这种“评价比较”任务而设计的,所以直接用强化学习去训练它们,效果通常很差而且不稳定,因此本文先进行了一轮监督微调。
做法:让 GPT-4o 对 R1-Reward-200k 数据集里的每一条数据,都按照 Table 1 里的提示模板,生成标准的“分析过程”和“最终答案”。生成时设置 temperature=1(让输出更发散),并且最多尝试 3 次,直到生成的答案和真实标签一致。
记录难度:同时,他们还记录了 GPT-4o 需要尝试几次才能生成正确答案,把这个次数作为样本“难度”的指标。
目的:这个 SFT 阶段就像是给模型“预习”。通过模仿 GPT-4o 的输出,先让模型学会任务的基本格式和流程,熟悉这个奖励建模任务应该怎么做。
筛选标准:在进行真正的强化学习训练时,并不是用 SFT 阶段的所有数据。研究人员专门挑选了那些被认为是“更难”的样本。
具体来源:
utside;" class="list-paddingleft-2">在 SFT 阶段,哪些 GPT-4o 需要尝试 2 次或 3 次才能给出正确答案的样本。
以及哪些 GPT-4o 尝试了 3 次仍然没能给出正确答案的样本。
研究人员认为,这些样本通常意味着两个回答之间的差别更小,更难判断优劣。用这些“硬骨头”来训练模型进行强化学习,可以更有效地提升模型辨别细微差异的能力。
在好几个主流的多模态奖励模型排行榜(比如 VLReward Bench, Multimodal Reward Bench, MM-RLHF-Reward Bench)上,R1-Reward 的表现都非常亮眼,平均准确率显著超过了之前最好的开源模型(比如 IXC-2.5-Reward)。
他们尝试在评价的时候,让 R1-Reward 模型对同一个问题输出好几个判断结果(比如输出 5 次或 15 次),然后采取少数服从多数(投票)的方式来决定最终哪个答案更好。
结果发现,这种简单的“投票”策略能大幅提升 R1-Reward 的准确率。比如在 MM-RLHF 这个比较难的榜单上,投票 5 次就能把准确率从大约 71% 提升到 85.3%,投票 15 次更是达到 86.47%,远超其他模型。
更有意思的是,他们还试了另一种策略叫 “Any Correct”,就是只要模型输出的 K 次结果里有一次是正确的,就算对。结果发现,当 K=15 时,这种策略的准确率几乎接近 100%!这暗示 R1-Reward 其实有潜力完美区分所有样本,只是需要更多的数据或更好的训练策略来完全激发出来。
通过 SFT 和 RL 训练,R1-Reward 不仅学会了如何评价两个回答,还自主地学习到了一套分析流程:先明确目标、分析图像、尝试解决问题、给出答案,然后基于这个过程去评价两个外部给定的回答。
更有趣的是,模型展示出了类似人类的反思和纠错能力。比如在上图中,模型自己计算时出错了,但在检查图表后,意识到了错误并重新计算得到了正确结果。这说明模型不仅仅是在模仿,还在学习某种程度的自我检查和修正机制。
经过强化学习训练后,模型输出的分析内容的平均长度还减少了约 15%,说明模型可能变得更“言简意赅”,推理效率提高了。