VSRM
Paper · arXiv 2025 · 2508.10293v2

VSRM:把「这一步有没有用」变成一次可验证的采样

RLVR 只用最终答案的对错发奖励,模型于是用更长的推理链换正确率。VSRM 把推理链按特殊词切成子轨迹,让每个中间状态各自答五次,用平均正确率的相邻差当步骤奖励;差太小就向未来看几步,按 γ 折扣把收益传回来。代价是训练时要为每条主轨迹额外采样大量答案。

Chuhuai Yue 等 · 数学推理 · 2025 arXiv 2508.10293v2 ↗
TL;DR · 30 秒抓住核心

RLVR 的二元结果奖励只看最后答案,模型学会了「宁可多写,不可写错」。论文把过度思考定位在推理链中段:大量步骤既不提高正确率,也不帮助模型走到正确答案。

VSRM 不训练 PRM。它用 however / thus / so / but / wait 等特殊词把主轨迹切成子轨迹,每个子轨迹补一个 </think> 后让模型再答 N=5 次,用平均正确率 Ai 代表这个中间状态的价值。

单步奖励取相邻 Ai 的差;差的绝对值 |d| 小于 ε 就向未来看最多 Lmax=4 步,用 γ=0.7 的折扣把未来收益传回来。最终得到一条与 response 等长的奖励向量,直接接 PPO / Reinforce++。

44.0%
AIME24 输出长度相对下降
12605 → 7065 · DS-Distill-1.5B
51.4%
OlympiadBench 长度相对下降
9249 → 4499 · 同设置
59.6%
过度思考样本相对减少
312/500 → 126/500(Table 1 / Table 4)
01

过度思考不是「写太长」,而是中段大量步骤不改变正确率

读完这节应知道:论文把 overthinking 定位在推理链中段的无效步骤,而不是单纯的长度。

RLVR 的常见做法是只看最终答案:答对给 1,答错给 0。论文认为这会塑造一种偏好——宁可多写,也不要写错。

“the binary reward function used in R1 encourages the model to over-generate content in the pursuit of correctness, fostering a preference for being overly redundant rather than potentially wrong.”§1 Introduction

论文在 MATH-500 上让 DeepScaleR 和 DS-Distill-1.5B 各生成 500 条回答,随机抽 10% 人工标注,论文发现推理过程可分为三个阶段:问题重述、逐步解答、答案总结。过度思考主要发生在「逐步解答」阶段。

“the reasoning process of LRMs can generally be divided into three stages: problem restatement, step-by-step answering, and answer summary. The overthinking issue mainly occurs during the step-by-step answering stage.”§3 Rethink the Essence

为了把个案变成统计,论文让 DeepSeek-R1 检测全部 500 条回答里的无效步骤,并与人工标注对照。R1 不能精确标出所有无效步骤,但被认为能识别过度思考现象,因此这些数字是粗粒度统计。

Table 1 转录:DeepSeek-R1 检测到的过度思考样本(每模型 500 条 MATH-500 回答)
模型检测到过度思考
DeepScaleR279/500
DS-Distill-1.5B312/500

两个模型都在超过一半的样本里出现明显无效步骤。论文由此把优化目标定为:鼓励提高正确率的中间步骤,惩罚不改变正确率的步骤。

关键区分

惩罚「无效」,不是惩罚「长」

论文的论点是:长度惩罚可能连带压掉必要的长步骤。VSRM 的奖励直接看「这一步之后,模型答对的估计概率有没有变」,因此长步骤只要有用就可以保留。

02

两条主流路线都要先猜长度,PRM 又要先训一个不稳定的裁判

前人不是没想到过程监督,而是过程监督要么依赖预估,要么依赖一个难训的奖励模型。

路线 A

预设 token budget

给任务设输出长度约束,模型在固定预算内作答。论文的论点是:预算要事先猜,猜错就会在简单题上分配过多计算,面对动态场景也缺乏灵活性。

路线 B

difficulty-adaptive reasoning

先判断题目难度,再分配推理模式或预算。看起来更合理,但论文指出它仍是隐式的 token budgeting,同样依赖对任务的预评估。

论文把这两类方法共同的问题总结为:需要预评估任务来确定输出目标,既依赖预估准确率,也缺乏对动态场景的灵活性。

过程监督

PRM:给每个阶段打分

PRM 把推理链分解成阶段并逐步打分,在数学推理上有成功案例(Lightman et al. 2023)。但论文引用 DeepSeek-R1 的经验:PRM 难训练,可靠性无法保证。于是作者绕开 PRM,改用规则切分加子轨迹采样验证。

此外,还有一类做法是在奖励里加长度惩罚。Table 3 的对照显示,显式长度惩罚并没有带来更强的压缩:DS-Distill-1.5B 的 AIME24 长度是 7533,而 VSRM-PPO 是 7065;MATH-500 是 2615 对 2400。论文的推测是,复杂的结果奖励会干扰过程级奖励。

03

把「这一步值不值」变成一次可验证的采样

VSRM 用规则切分和子轨迹采样,把「这一步值不值」变成一个可计算的准确率差,再用折扣传播把稀疏信号变密;整条链路不需要额外的奖励模型。

第一步:用特殊词把主轨迹切成子轨迹

先从 response 中用正则取出 <think>…</think> 里的推理正文。跳过开头一段(Cmin=200)避免把问题重述切碎;然后用预定义的特殊词表匹配切点,例如 “however”“thus”“so”“but”“wait”。为了让每一步语义完整,论文加了两条规则:相邻切点至少间隔 Imin=100 个 token;切点对齐到包含该特殊词的完整句子的句首。

切分结果是切点集合 P={p1,…,pK}。Appendix D 的 Algorithm 1 给出了完整伪代码。

第二步:每个子轨迹各自答 N 次

对每个切点 pi,把「问题 + 从开头到 pi 的推理前缀」拼成新 prompt,末尾补一个 </think>,让当前策略生成 N=5 条候选答案(每条最多 768 token)。这个子轨迹的平均正确率就是 Ai:

Ai = (1/N) · Σj=1N I[ IsCorrect( LRM(Ti)j ) ]
Eq. 1 · N=5;I 是指示函数,答对为 1、答错为 0。原文 Eq.1 求和下标印作 j=i;按正文 N 条候选答案,页面按 j=1 呈现。

论文把 Ai 称为中间状态价值的 proxy:它不直接判断「这段推理写得好不好」,而是看「从这段推理出发,模型能不能答对」。

第三步:奖励取相邻两步的准确率差

如果直接把 Ai 当奖励,所有位置都非负,无法惩罚无效步骤。论文改用相邻差:

di−1 = Ai − Ai−1
Eq. 2 · 边界情况 rk 用 AT − Ak,AT 是完整主轨迹的平均准确率

一个步骤提高正确率就得到正奖励,不改变就得到 0,降低就得到负奖励。问题在于:真实推理里,正确率往往连续多步不变,相邻差大多是 0,奖励非常稀疏。

第四步:向未来看几步,按 γ 折扣传回来

当 |di−1| < ε 时,论文在最多 Lmax=4 步的窗口内找第一个超过阈值的变化 |di+q−1| ≥ ε。找到就把未来收益按 γq 贴现给当前步骤:

ri−1 = sgn(di+q−1) · |di+q−1| · γq
Eq. 3 · γ=0.7,Lmax=4,ε=10−5;窗口内找不到超过阈值的变化则 ri−1=0

如果一路看到序列末尾都没有超过阈值的变化,论文用 Eq. 4 把最终准确率与当前准确率的差按剩余步数贴现:

ri−1 = sgn(dk) · |dk| · γk−i+1
Eq. 4 · 序列末尾没有超过阈值的变化时的处理

这就是「衰减传播」:它把稀疏的 0 变成有方向、有折扣的密集信号。

第五步:和结果奖励拼成一条与 token 对齐的向量

最终奖励不是单个标量,而是一条与 response token 数等长的向量:各切点位置放步进奖励,最后一个位置额外加结果奖励 rresult 和格式奖励 rformat,其余位置为 0。

RT = [ …, r1, …, rt, …, rk, …, rTresult + rTformat ]
Eq. 5 · 向量长度与总 response 长度一致,直接交给 PPO / Reinforce++ 做 advantage 估计

自己动手:看传播怎么把稀疏的差变成密集奖励

下面用一条构造的准确率序列演示 Eq. 2 与 Eq. 3。序列不是论文数据;γ、Lmax、ε 取自 Appendix B。切换「只看相邻差」可以看到不做传播时奖励有多稀疏;Table 3 的 w/o decay 消融检验的正是这条机制。

示例序列 · 当前参数
加载中…
这个模拟覆盖了什么、没覆盖什么简化模拟,不是原文复现

覆盖:Eq. 2 的相邻差;Eq. 3 的 |d|<ε 判定、最多 Lmax 步前看、γq 折扣、找不到则置 0;边界步按 AT−Ak 处理(序列最后一项当作 AT)。

未覆盖:Eq. 4 的序列末尾特例(本模拟在最后一步无超过阈值的变化时直接置 0);子轨迹的真实采样与 Ai 估计;结果奖励与格式奖励;PPO / Reinforce++ 的 advantage 计算。准确率序列是构造值,不是论文数据。

因此这个模拟只用来观察「传播如何改变奖励稀疏度」,不能用来复现论文的训练结果。

手算对照:两组参数下每一步的奖励与页面模拟输出逐位一致

示例准确率序列 A = [0.20, 0.20, 0.20, 0.20, 0.60, 0.60, 0.60, 0.60],最后一项 A7 视为主轨迹终点的平均准确率。相邻差 d = [0, 0, 0, 0.40, 0, 0, 0](0.60−0.20=0.40)。这不是论文数据,是为看清传播规则构造的序列。

参数组 1:γ=0.7,L_max=4。 r0=0.4×0.73=0.1372;r1=0.4×0.72=0.196;r2=0.4×0.7=0.28;r3=0.4;r4..6=0(窗口内无超过阈值的变化)。合计 1.0132。

参数组 2:γ=0.5,L_max=2。 r0=0(两步窗口内无超过阈值的变化);r1=0.4×0.52=0.1;r2=0.4×0.5=0.2;r3=0.4;r4..6=0。合计 0.7。

本模拟不涉及标准差;Ai 是 N=5 条候选答案的平均正确率,不做 ÷N 或 ÷(N−1) 的方差估计。

04

奖励向量能接 PPO,但采样开销是真的

工程上它不需要改 RL 算法,只需要能接收逐 token 奖励;代价在 rollout 阶段。

实现基于 VeRL。VSRM 输出的奖励向量长度与 response 一致,因此可以直接接支持 stepwise reward 的 PPO 和 Reinforce++,不需要额外的奖励模型。下文的 VSRM-R++ 指 VSRM 接 Reinforce++。

训练数据来自 DeepScaleR 数据集:1984–2023 年历史 AIME、2023 年前的 AMC、Omni-MATH 与 Still。

Appendix B 部分转录:训练与实现超参数
训练 batch512
max prompt / max response768 / 8192
PPO mini-batch256
epochs3
n_sub(每个子轨迹候选答案数)5
max_tokens_sub768
每条主轨迹的子轨迹数10–20
C_min / I_min200 / 100
γ / L_max / ε0.7 / 4 / 10−5
硬件 / 每训练步耗时8×A100 / ≈20 min(逐步下降)

每条主轨迹平均包含 10–20 个子轨迹;每个子轨迹采 5 条候选答案,每条最多 768 token。按 10×5 到 20×5 算,一条主轨迹要额外生成 50–100 条候选答案。

评测时最大生成长度设为 20000 token,temperature 0.6,top-p 0.95;MATH-500 和 OlympiadBench 的 pass@1 取 16 次运行的平均,其余基准取 32 次。

为什么能直接接

奖励不是标量,而是逐 token 的向量

论文称 VSRM 与支持 stepwise reward 的 PPO / Reinforce++ 兼容;逐 token 奖励向量可直接进入这些实现的 advantage 估计。标准 PPO 也可用标量结果奖励,页面不声称 PPO 本身必然要求逐 token 奖励。

代价也在这里:每个训练样本要额外跑 10–20 次子轨迹生成,每次 5 条答案。论文报告 8×A100 上每个训练步约 20 分钟,并说明 “as training progresses, the time required for each step gradually decreases”。

05

奖励落在切点,末位才加结果与格式分

流程分两段:先把轨迹切碎并采样出 A_i,再把 A_i 的差传播成奖励向量。

主轨迹 T policy rollout 取 <think> 正文 StepSep 特殊词 + 句首对齐 C_min=200 / I_min=100 子轨迹 T_pi 问题 + 前缀 + </think> 每个切点一条 N=5 次采样 每条最多 768 token 平均正确率 A_i 相邻差 d_(i−1) = A_i − A_(i−1) 边界用 A_T − A_k 衰减传播 γ=0.7 / L_max=4 |d|<ε 时向未来看 奖励向量 R_T 与 response 对齐 末位加 result + format PPO / R++ advantage 策略更新 观测 子轨迹采样 奖励构造 RL 更新
本页流程图(非原文插图):VSRM 的数据流。青灰=观测,紫色=子轨迹采样,红=奖励构造,绿=RL 更新。

上半段是「测量」:切分、子轨迹采样、平均正确率。下半段是「记账」:相邻差、折扣传播、拼奖励向量。两段之间没有额外的奖励模型,步进奖励的裁判是答案正确性。

切分规则

规则化,可解释

特殊词表、C_min、I_min、句首对齐都是显式规则;不需要另一个模型来识别步骤边界。

奖励位置

与 token 对齐

步进奖励落在切点对应的 token 位置,结果与格式奖励只落在末位;其他位置为 0。

06

长度普遍下降;AIME24 / MATH-500 上 7B 与 DeepScaleR 出现准确率下降

先看完整表的三个设置,再看过度思考检测与消融。

Table 2 覆盖六个数学基准、三个基座(DeepScaleR 是 1.5B 且已做 RL 训练的模型)。下表只转录 base、VSRM-PPO、VSRM-R++ 三种设置;LC-R1、ThinkPrune、AdaptThink、Efficient Reasoning、GRPO-LEAD 等方法行未转录。

Table 2 部分转录:每格为 pass@1(%)/ 平均输出长度(token);只列三种设置
模型 / 方法AIME24AIME25MATH-500AMC23MinervaOlympiadBench
DS-Distill-1.5B
base28.8
12605
22.8
12444
82.4
4960
62.9
8577
34.2
6929
43.1
9249
VSRM-PPO29.2
7065
23.0
6621
82.2
2400
64.9
4153
34.4
2273
43.2
4499
VSRM-R++29.5
6958
22.9
6892
81.7
2597
64.7
4119
34.6
2172
43.1
4544
DS-Distill-7B
base53.1
10529
36.0
10909
90.6
3796
79.1
6884
46.1
5195
55.9
7602
VSRM-PPO51.8
6675
36.2
6920
89.6
2024
81.0
3759
45.5
2002
55.3
4168
VSRM-R++52.2
6773
36.4
6953
89.8
2044
80.9
3704
45.8
2068
55.6
4103
DeepScaleR(1.5B,已 RL)
base40.7
8515
31.3
8029
86.5
3105
73.6
5487
38.9
5102
50.0
5647
VSRM-PPO39.2
6744
31.3
6133
85.5
2391
73.5
4074
39.5
2231
50.1
4414
VSRM-R++39.3
6668
30.9
6103
85.8
2275
74.7
4082
38.4
2319
49.4
4389

P=pass@1(%),L=平均输出长度(token);每格上行为 P、下行为 L。数字逐字来自 Table 2。

三个可以直接从表里读出的现象

“our method consistently reduces redundant output and mitigates the overthinking problem for models of various sizes and types, while preserving the original reasoning capability.”§4 Main Results

换个基准看:长度与 pass@1 一起变

切换基准,比较三个基座的 base 与 VSRM-PPO。柱高是平均输出长度,读数区给出同一基准的 pass@1。

base 长度 VSRM-PPO 长度
手算对照:两个模型在 AIME24 上的压缩率与页面柱状图同一组数

口径:相对下降 = (base − VSRM-PPO) / base × 100。本探索器不涉及标准差。

DS-Distill-1.5B:base 12605,VSRM-PPO 7065;差值 5540;相对下降 5540 / 12605 × 100 = 44.0%。

DS-Distill-7B:base 10529,VSRM-PPO 6675;差值 3854;相对下降 3854 / 10529 × 100 = 36.6%。

过度思考检测:两个基座的样本数都下降

Table 4 用同一个 R1 检测器,对 VSRM-PPO 训练后的模型重新检测 500 条 MATH-500 回答。

Table 4 转录:VSRM-PPO 训练后模型被检测到的过度思考样本(每模型 500 条)
模型检测到过度思考
VSRM-PPO(DeepScaleR)132/500
VSRM-PPO(DS-Distill-1.5B)126/500

DS-Distill-1.5B 从 312/500 降到 126/500(相对下降 59.6%);DeepScaleR 从 279/500 降到 132/500(相对下降 52.7%)。这是粗粒度检测,不是逐步精确标注。

消融:去掉传播衰减,长度压缩明显变弱

Table 3 在 DS-Distill-1.5B 上逐项加回组件;原文注明 “All experiments are trained for the same number of steps to ensure fairness”。页面只涉及 AIME24 与 MATH-500 两列的长度与 pass@1;下表只列长度,pass@1 列未转录;其他基准未转录。

Table 3 部分转录(DS-Distill-1.5B;只列 AIME24 / MATH-500 的长度;base 行与 pass@1 列未转录)
设置AIME24 长度MATH-500 长度
Original PPO111113968
VSRM-PPO w/ penalty75332615
VSRM-PPO w/o decay86382990
VSRM-PPO70652400

完整版 VSRM-PPO 在 AIME24 是 7065、MATH-500 是 2400;去掉传播衰减后分别是 8638 和 2990。论文还对比了长度惩罚版本,AIME24 7533、MATH-500 2615,压缩不如 VSRM-PPO。论文的推测是复杂的结果奖励会干扰过程级奖励。

探索能力:pass@k 没有被压掉

Figure 4 比较 DS-Distill-1.5B 与 VSRM-PPO 在 AIME24、AIME25、Minerva、OlympiadBench 上的 pass@k 随 k 增长。论文的结论是两者都稳定增长,VSRM 的趋势与 base 一致,部分设置更高。Figure 4 未转录(正文未列具体点值)。

“VSRM does not hinder the model's ability to explore valuable reasoning paths; on the contrary, it encourages the exploration of effective steps.”§4 Analysis on Reasoning Behavior
07

数学域外,VSRM 仍依赖一个可判定的答案

VSRM 的奖励建立在「答案可以被判定对错」上;这既是它的可验证性,也是它的边界。

边界一

实验范围只有数学

Table 2 的实验覆盖六个数学基准:MATH-500、AIME24、AIME25、AMC23、Minerva、OlympiadBench。摘要与引言说的是 mathematical reasoning;本页所读版本没有代码、法律、创意写作等答案不易自动判定任务的实验。

边界二

切分依赖特殊词表

正文只给出 however / thus / so / but / wait 等示例;Appendix D 的 Algorithm 1 把特殊词匹配模式 H_p 作为输入,本页所读 v2 没有展开完整词表,也没有给出词表选取依据或跨语言消融。模型表达风格变化时,切分点会跟着变 推断(依据:切分完全由特殊词表与句首对齐规则决定)。

边界三

训练开销与部分基准上的准确率下降

每条主轨迹 10–20 个子轨迹、每个子轨迹 5 条答案,合计 50–100 条候选答案;8×A100 上每步约 20 分钟,论文说明 “as training progresses, the time required for each step gradually decreases”。按 1.5B → 7B → DeepScaleR 的顺序,AIME24 压缩幅度依次为 44.0%、36.6%、20.8%;但这三个基座并非准确率单调变强:7B 在六个基准上的 pass@1 都高于 DeepScaleR,不能把压缩率排序当成准确率强度排序。DeepScaleR(1.5B,已 RL)的 AIME24 pass@1 从 40.7 降到 39.2(−1.5 个百分点;原文 Table 2 该格标 ↓1.4,按表中数值相减为 1.5,页面按算术值呈现,同一注见第 06 节)。

边界四

代理指标可能被优化

论文明确把子轨迹答案正确率称为中间状态的 proxy。推断(依据:proxy 只看子轨迹最终答案是否正确,不检查中间推理是否真实有效):模型可能学会生成「更容易被答对」的子轨迹,而不一定是更好的推理。本页所读版本没有报告针对这一点的压力测试。

一句话:VSRM 的前提是答案可自动判定;在 Table 2 里,压缩幅度按 1.5B → 7B → DeepScaleR 的顺序缩小,DeepScaleR 的 AIME24 出现准确率下降(原文标 ↓1.4,页面按算术值呈现),但 AMC23 / Minerva 上也有上升,不能当成普遍规律。任务没有可靠判定器时,Eq. 1 的平均正确率无法计算。