从 RLVR 到 RLCD:当强化学习不再只奖励“正确”
2026-10-17
从 Jev 说起
最近 TypeSafe AI 发布的 Jev 模型引起了我的关注。它定位为一个面向结构化决策的组件:给定上下文,直接返回不同答案的概率分布。比如,判断一封客服邮件属于 A、B 还是 C 部门,并给出对应的预测概率。
它背后的核心训练方法 RLCD (Reinforcement Learning for Calibrated Decisions) 值得被单独讨论。与通常只奖励“正确性”的传统强化学习相比,RLCD 的一个显著特征,是它把“概率校准(Calibration)”纳入了优化目标之中。
(注:TypeSafe 目前未完全公开 RLCD 的内部细节。本文关于 的数学分析,依据的是一个独立的开源实现。)
这种做法带来了两个很清晰的性质: 第一,它要求模型不仅要选对答案,还要如实反映不同答案发生的真实概率。 第二,即便模型处在一个只能获得部分反馈的黑盒里,它依然能利用这些残缺的信息,优化整个概率分布。
这两个性质联系得十分紧密。要理解这里的机制,我们可以先明确,什么是“只能获得部分反馈”。
真实世界的“部分反馈”
假设我们正在训练那个客服分流模型,有三个可选部门: A:Billing(账单) B:Technical(技术) C:Account(账户)
对于某一类具有相同特征的邮件,假设真实的条件概率分布为:
也就是说,60% 的正确答案是 A,30% 是 B,10% 是 C。
如果是传统的监督学习,事情比较简单。每次输入一封邮件,系统直接告诉模型正确答案 。模型利用完整的正确标签计算 Cross-Entropy 调整参数即可。
但现实的业务系统很少能提供这种完整的反馈。 在真实场景里,模型看完邮件,决定把它分给 A 部门。几个小时后,系统抛出一个结果:“这次分配错了。” 此时,模型唯一确定的信息是:
至于真正该去 B 还是 C,它并不知道。
系统能提供的反馈,只有简单的 1 和 0:
这就是典型的 Bandit Feedback(部分反馈)。模型只能观察到自己采取的动作所对应的结果,对没有被选择的平行选项一无所知。真实软件系统中,这种知其错而不知何为对的情况非常常见。
[Interactive figure: 完备标签 vs. 真实世界的部分反馈(Bandit Feedback)]
对比传统监督学习的全局完备标签与真实业务系统的单点对错反馈(Bandit Feedback)。在 Bandit 模式下,未选中的平行世界选项被遮罩隐藏,仅知所选动作之错,不知何为正确答案。
RLCD 比较巧妙的地方在于,它仅凭这种残缺的 1 和 0,就撬动了对整个概率分布的估计。
:用偏差丈量概率
我们假设模型当前预测的概率分布是:
而真实的概率分布依旧是:
模型显然高估了 A,低估了 B 和 C。
如果使用基础的正确性奖励强化学习(RLVR),规则很简单:选对得 1,选错得 0,即 。
而 RLCD 的开源实现,在这里做了一次看似简单的减法:
其中 是实际的对错反馈, 是模型给所选答案的预测概率。
只比普通的正确性奖励多减去了一个 ,就改变了模型接收反馈的逻辑。 假设模型给某个答案打了 90% 的高置信度。 预测正确时:
预测错误时:
反之,如果模型给某个答案的概率只有 10%。 预测错误时:
预测正确时:
这种设计的意图很清晰:对过度自信的错误给予严厉惩罚,同时对被模型低估却意外猜中的保守预测给予高额补偿。
单看这几次随机反馈,还无法说明模型如何学到整个分布。但当我们把视角拉高,对这个奖励取期望之后,事情变得很有意思。
回到刚才的分布。 真实概率:
模型预测:
如果模型选择 A。因为 A 在真实环境里的正确率是 60%,在海量的相同尝试中,它得到正确反馈的比例必然趋近于 0.6。 此时,选择 A 所带来的期望奖励变成了:
顺着这个逻辑推导下去: 如果选择 B:
如果选择 C:
把这些结果并列在一起:
[Interactive figure: 期望奖励切分对比:普通 RLVR vs. RLCD 双向纠偏]
展示减去预测概率 p_a 如何将普通 RLVR 的盲目正奖励转变为双向纠偏机制:高估项受到负向惩罚(向下压),低估项得到正向补偿(向上托),并在收敛态达到期望偏差归零。
模型明明在整个过程中都没有见过真实的条件概率 ,但它每次吃到的奖励,在期望意义上恰好反映了概率预测与真实概率之间的偏差。
被高估的 A 对应负的期望奖励,被低估的 B 和 C 对应正的期望奖励。 当模型最终学到 时,对于任意一个选项 ,都会有:
这意味着,当预测概率与真实条件概率一致时,这种奖励不再具有系统性的正负偏差。
这就是 Monte Carlo 直觉真正起作用的地方。你无法从一次孤立的随机反馈中得知自己错得有多离谱,哪怕这次运气好猜对了。但通过大量的随机尝试,这些偏差会逐渐显现在梯度的统计规律中,最终指引模型逼近真实的分布。
从奖励到 Brier Loss 的无偏梯度
这种期望层面上的规律,在具体训练中会通过策略梯度起作用。
用 表示模型在给定输入 时选择动作 的概率。训练时,模型根据这个分布抽样一个动作:
得到反馈 后,使用如下的策略梯度估计:
这里,奖励 被视为一个不参与反向传播的数值。对所有可能的动作和反馈取期望:
最后得到:
这个结果是 RLCD 体系里最核心的数学性质。
Brier Loss 是一种用于评估概率预测质量的经典损失函数:
它的期望可以写成:
由于式子后半部分与模型参数无关,于是我们有:
也就是说,模型仅仅依靠自己所选答案的对错反馈,就构造出了完整 Brier Loss 负梯度的无偏估计。它在没看过完整答案分布的情况下,依然能在期望意义上朝着“减小全局概率误差”的方向更新。
无偏当然不等于无损。单次反馈的信息量远小于完整标签,梯度估计依然存在方差,实际训练也需要依赖大量的样本和探索。但它确实验证了一件事:我们不一定需要直接观察到完整的学习目标,才能找到朝它靠近的方向。
RLCD 与普通 RLVR 到底优化了什么?
数学性质明确后,我们回头对比一下 RLCD 与普通正确性奖励(RLVR)在优化目标上的本质差异。
假设一个简单的二分类问题,A 和 B 的真实正确概率分别为:
模型当前的预测概率为:
如果使用 RLVR(即 ),模型的期望奖励是:
对 求导:
这个结果非常直白:导数永远是正的。无论模型给 A 预测了 0.4 还是 0.99,只要继续拉高 ,期望奖励就会增加。它最终会把概率推向极值:
这是一个非常合理的策略。既然 A 更有可能正确,为了追求绝对的胜率,模型理应放弃 B,把筹码全压在 A 上。
但对于 RLCD,情况变了。 前面证明过,它的期望更新方向对应 Brier Loss 的梯度。在这个二分类问题中:
RLCD 期望更新的梯度方向为:
当 时,梯度为正,模型会提高 A 的概率。 当 时,梯度为负,模型会压低 A 的概率。 当 时,期望更新停滞。
在这个理想化模型里,RLCD 最终收敛的概率分布是:
两套奖励机制最终刻画了完全不同的终局。 RLVR 寻求的是最高胜率的“行动策略”,所以它会变得极端自信。 RLCD 寻求的是与现实世界对齐的“条件概率”,所以当它的预测与事实吻合时,它就会停止系统性地施加推力。这种让模型表达出的确定程度与事实发生频率严格一致的约束,就是概率校准(Calibration)的意义所在。
(注:在开源项目 eve-rlcd 针对 Qwen3-0.6B 的对比实验中,也观察到了类似的结果。普通的 RLVR 基准把平均最高预测概率推到了 99.1%,ECE 校准误差为 0.213;而 RLCD 将最高预测概率维持在 83.0%,ECE 降到了 0.023。)
一个反例:准确的概率预测,等于好的决策吗?
既然 RLCD 能够如实反映真实世界的概率分布,那它是不是必然带来更高的决策准确率?
这是一个很容易想当然的陷阱。我们继续用刚才 的例子算一笔账。
训练结束后,两个模型分别交出了不同的概率分布: 模型一(RLVR):
模型二(RLCD):
假设模型一直接用它的分布做决策,它每次都会选 A。它实际选对的概率是:
再看模型二。如果系统老老实实地按照 RLCD 算出来的概率去“随机抽样”选答案,它选对的概率是多少?
矛盾出现了。RLCD 完美学到了真实的概率分布,但如果顺着这个分布去执行,它最终的决策准确率只有 58%,远低于 RLVR 的 70%。
这说明了一个需要在概念上严格切割的问题:准确地描述概率,与基于概率作出最优决策,是两件截然不同的事情。
RLCD 学到的 是对现实世界客观规律的刻画。如果我们唯一的目标就是“把题做对”,我们完全可以基于 RLCD 提供的这个概率分布,在外部套一层最简单的规则:永远选择概率最高的那一项,即 。
这样,我们就能同时保留两样东西:
模型可以对不同结果的真实分布保持充分的不确定性,但这并不妨碍我们利用这层不确定性,去执行一个极其确定的行动。反之,一个总能选出“最有可能正确答案”的模型,也并不代表它真正理解了那些未被选中的可能性。
当我们拥有概率以后,究竟该如何决策?
在前面的算账里,我们默认了所有的正确答案价值相同,所有错误的代价也相同。在那种理想状态下,选择概率最大的答案就是收益最高的做法。
但现实世界的决策往往伴随着极度不对等的代价。
假设一个系统需要判断某项操作是否存在致命漏洞。真实的风险概率只有 5%,但一旦发生就是毁灭性的。 如果一个模型只被训练去寻找“最可能正确的答案”,为了追求极致的准确率,它会直接掐灭这 5% 的不确定性,笃定地告诉你“没有风险”。 但作为真实的决策者,我们绝不能忽略那 5%。如果模型能如实表达这 5% 的风险概率,我们就可以在外部程序中拉响警报,强行阻断操作。
面对不对等的代价,我们实际上引入了一个效用函数:
其中 是采取的行动, 是发生的结果, 衡量我们对结果的评价。最佳行动的公式随之变成了:
这个简单的公式将复杂的决策问题清晰地劈成了两半: 一半是模型对客观规律的概率刻画 ; 另一半是我们基于自身立场对结果的价值衡量 。
继续操作
0.05 × 100.0 = 5.00
采取防护
固定成本 = 2.00
采取防护的期望成本更低——即使风险并不是最可能的结果
这正是 RLVR 与 RLCD 最核心的应用分野。 RLVR 直接把效用和行动合并,端到端地训练出一个替你做决定的“策略”。 而 RLCD 只负责交出客观的概率分布,把决策的标尺交还给外部规则。在不同错误对应不同代价的复杂场景里,保留了完整的概率分布,实际上就是保留了我们在后续决策中的主权和选择空间。
回到 Jev:模型提供概率,软件负责决断
理解了这层区分,Jev 作为结构化决策组件的定位就非常清晰了。
以往我们调用语言模型,通常是索要一段生成的文本。例如“请判断这封邮件归属哪个部门”,模型直接回答“我认为是 Billing”。
但 Jev 提供的接口(如 Choice、Noul、Score)返回的是概率分布 。
这种输出形态的变化,从工程角度来说非常有价值。它允许我们在同一个模型的基础上,根据不同的业务线挂载完全不同的处理逻辑: 如果分错部门的代价很低,直接取 ; 如果代价高昂,可以设定置信度必须大于 0.8 才能自动化,否则抛给人工介入; 如果目标是全局资源调度,我们可以直接聚合这些概率分布来分析趋势,而不需要强制模型去选一个确定答案。
模型提供概率,软件决定如何使用它。
当然,这种设计也明确了 Jev 的适用边界。
概率输出绝不等于客观真理。RLCD 能够优化概率的校准程度,但这依然依赖于数据的反馈和验证。一个在训练集上整体表现校准的模型,未必能在长尾样本中精准区分个体的风险。同时,Jev 接口返回的 confidence 值只代表分布的集中程度,并不直接等同于最高选项的正确率,在使用时需要明确区分。
这要求我们在应用这类模型时,必须想清楚:我们让模型预测的究竟是什么? 如果是结构化的判断(“这封邮件属于哪个部门”),有清晰的选项边界和可验证的反馈信号,这种概率预测机制就能极大地发挥威力。但如果是要求其对复杂的、长链路的未来事件进行因果预测,概率的意义就会大打折扣。
结语:目标塑造模型
从 RLVR 到 RLCD,底层逻辑的区别其实已经非常明确:不同的训练目标,必然让模型长出不同的能力倾向。
如果我们的诉求是在单一标准下尽可能多地答对,直接优化行动决策就是最高效的选择。如果我们需要了解未选之路的可能性,或者需要在一个多变的、代价敏感的系统中灵活游走,那么经过良好校准的概率预测才更具分量。
而回顾整个机制,最让我觉得精妙的依然是那个极其短小的结果:
在这个公式里,模型仿佛被蒙着眼睛投入真实世界。它无法俯瞰全局,看不见完整的真实概率 ,它仅仅通过一次次正确或错误的随机耳光,就捕捉到了那份偏差,并在期望的指引下,不可阻挡地朝着真实的概率分布靠拢。
我们在设计奖励函数时,本质上是在用数学的语言向模型下达指令。当我们明确了想要解决的核心困境,并把校准的约束写进公式,模型就会诚实地交出世界的底色,然后把最终决断的权力,留在我们自己手里。
评论