SPPO:别再逼Critic逐token猜了——序列级建模一招解决长链推理信用分配
用PPO训推理模型,Critic跟瞎子一样——一条推理链动辄几千token,到头才给个0或1的奖励,Critic得从尾巴倒推每一步的"贡献",结果就是:该强化的没强化,该惩罚的没惩罚。GRPO倒是不用Critic了,但一个prompt得采样8条链来做基线估计,训练速度直接砍到1/8。ACL 2026这篇SPPO论文,把推理重新建模成序列级上下文赌博机,一个标量价值函数替代逐token打分,单样本就能跑,效果还比GRPO高1分。
核心摘要
SPPO将LLM推理从token级MDP重构为序列级上下文赌博机——整条推理链是一个原子动作,奖励是整体的对错,Critic只估计"这道题你有多大概率做对"这一个标量。优势函数 \(A = R - V(s_p)\) 直接把结果奖励减去基线期望,一把撒给链上所有token。1.5B Critic对齐7B Policy,内存省12.8%,AIME24从41.25拉到52.29,训练速度5.9倍于GRPO。思路简洁,效果扎实,但只适用于有可验证结果的任务。
PPO训推理的"尾部效应":信用分配彻底崩了
先说清楚标准PPO在长链推理上到底出了什么问题。
标准PPO的Critic对每个token位置估计一个价值 \(V(s_t)\),然后用GAE算出逐token的优势 \(\hat{A}_t\)。短文本没问题,但推理链一长,事情就变味了——论文管这叫 "尾部效应"。

看这张图就明白了:Critic在序列的前半段根本分不清哪条链最终会做对、哪条会做错,\(V(s_t)\) 在正确和错误轨迹上几乎重叠。只有到了尾部,Critic才恍然大悟——"哦,这条做对了"。但这时候GAE的折扣机制已经把优势信号衰减得差不多了。
更坑的是反过来的情况:错误轨迹的中间步骤,Critic也给很高的价值,因为这些步骤"看起来像对的"。结果就是:信用分配基于token位置而非语义贡献,该惩罚的中间错误步骤没被惩罚,该强化的关键推理步骤也没被强化。
PPO在7B模型上的表现就说明了这个问题——AIME24虽然从41.25涨到了45.20,但AMC23从79.38涨到85.31后就不稳定了,论文提到PPO基线在消融实验中500步就崩了。
GRPO的隐式赌博机:歪打正着
GRPO不用Critic,改为同一个prompt采样N条链,用组内均值做基线。DeepSeek-R1用的就是这招。看起来是省了Critic的内存,但论文发现了一件有意思的事:GRPO的优势函数天然在做上下文赌博机建模。

论文通过伯努利假设推导了GRPO的优势函数:
这里 \(\hat{p}(s_p)\) 是该prompt的估计通过率。看这张图:当题目很难(\(\hat{p}\) 很低),做对了给个大大的正优势,做错了只给个小惩罚;当题目简单(\(\hat{p}\) 很高),做错了给个大惩罚,做对了只给小奖励。这不就是上下文赌博机的难度自适应缩放嘛!
GRPO歪打正着地绕开了token级信用分配的问题——它压根不区分链内各token的贡献,所有token共享同一个序列级优势。但代价也很明显:你得采样8条链才能估计 \(\hat{p}(s_p)\),计算开销直接8倍。
SPPO:把隐式变显式,一个标量搞定
SPPO的思路直截了当:既然GRPO的成功暗示推理就是个上下文赌博机问题,那就别绕弯子了,直接显式建模。
序列级上下文赌博机
把推理从token级MDP重新定义为序列级上下文赌博机:
- 状态:只有静态提示 \(s_p\)
- 动作:整条推理链 \(a_{seq} = (y_1, \dots, y_T)\) 视为一个原子动作
- 奖励:\(R \in \{0, 1\}\),整条链对或错
- 时间视界:\(H=1\)
不再强迫Critic把稀疏结果分解成逐token的噪声信号,直接优化基于提示的条件期望序列奖励。

优势函数:一个公式说清楚
就这么简单。\(R\) 是二值奖励,\(V_\phi(s_p)\) 是Critic估计的"这道题你能做对的概率"。模型自信但做错了(\(V\) 高但 \(R=0\)),\(A\) 大负,狠狠惩罚;模型不确定但做对了(\(V \approx 0.5\),\(R=1\)),\(A\) 约0.5,温和强化。这比GRPO的优势缩放更直观——直接就是"超出期望多少"。
关键来了:这个标量优势均匀传播到序列中所有token。正确链的每一步同等强化,错误链的每一步同等惩罚。乍一看有点粗暴——凭什么中间某个错误步骤也要被强化?但反过来想,token级Critic在长链上根本分不清哪步对哪步错,强做区分只会引入更多噪声。不如承认"我们不知道哪步贡献大",用序列级信号至少保证方向是对的。
价值函数:BCE训练,不用GAE
Critic的训练也很简洁,直接用二元交叉熵:
不需要GAE、不需要时序差分、不需要长序列的折扣回报估计。Critic只需要学会一件事:这道题你大概能做对吗?标量可解性估计远比逐token推理简单,所以Critic可以用更小的模型。
解耦Critic:1.5B教7B做事
这大概是SPPO最反直觉的发现:1.5B的Critic配7B的Policy,效果反而最好。
在7B实验中,SPPO用7B Critic拿到58.11分,换成1.5B Critic反而涨到58.56。小Critic为什么更好?论文的解释是:标量可解性估计不需要推理链级别的细粒度建模,小模型够用了,而大Critic可能过拟合或引入不必要的噪声。内存方面,1.5B+7B的配置比7B+7B节省12.8%。
实验结果:单样本5.9倍速,效果还高一截
数学推理基准
1.5B模型的结果:
| 方法 | AIME24 | AIME25 | AMC23 | MATH | Minerva | Avg |
|---|---|---|---|---|---|---|
| Base Model | 27.50 | 21.67 | 71.56 | 83.73 | 20.35 | 44.96 |
| PPO | 27.50 | 20.83 | 70.63 | 81.38 | 19.89 | 44.06 |
| ReMax | 31.67 | 25.42 | 71.88 | 84.38 | 20.40 | 46.74 |
| RLOO | 30.42 | 21.67 | 72.81 | 84.10 | 21.73 | 46.15 |
| GRPO (N=8) | 30.00 | 26.25 | 73.13 | 83.88 | 22.15 | 47.08 |
| SPPO | 34.17 | 25.83 | 74.38 | 83.78 | 22.15 | 48.06 |
7B模型的结果更有说服力:
| 方法 | AIME24 | AIME25 | AMC23 | MATH | Minerva | Avg |
|---|---|---|---|---|---|---|
| Base Model | 41.25 | 26.67 | 79.38 | 87.20 | 27.94 | 52.49 |
| PPO | 45.20 | 35.42 | 85.31 | 88.48 | 27.80 | 56.44 |
| ReMax | 49.38 | 31.25 | 86.56 | 90.28 | 27.99 | 57.09 |
| RLOO | 46.67 | 32.50 | 86.88 | 90.35 | 28.72 | 57.02 |
| GRPO (N=8) | 47.08 | 35.00 | 86.25 | 90.15 | 28.74 | 57.44 |
| SPPO | 50.83 | 35.00 | 86.25 | 90.13 | 28.35 | 58.11 |
| SPPO + Small Critic | 52.29 | 34.58 | 87.19 | 89.88 | 28.86 | 58.56 |
几个值得注意的点:
- PPO在1.5B上竟然比Base Model还差(44.06 vs 44.96),直接证明token级信用分配在长链上确实是负优化
- SPPO在7B+Small Critic配置下AIME24达到52.29,比Base涨了11分
- MATH和Minerva上各方法差距不大,说明这些基准可能已经接近1.5B/7B模型的能力天花板
训练效率:5.9倍加速

SPPO大约22小时达到峰值性能(均值约58),而GRPO (N=8) 和RLOO因为多样本生成瓶颈收敛慢得多。5.9倍加速的来源很直接:GRPO要生成8条链才够估计基线,SPPO只要1条。
消融实验:不是BCE的功劳,是建模方式的功劳
这组消融设计得挺关键。论文做了"PPO + BCE"的对照——把BCE损失塞进标准token级PPO框架,想验证到底是BCE损失本身带来的提升,还是序列级建模带来的。

结果很清楚:PPO + BCE跟标准PPO一样不稳定,500步就崩了。SPPO的效果来自序列级上下文赌博机建模——统一优势信号 \(A = R - V(s_p)\) 传播到所有token——而不是BCE损失本身。
这其实说明一个更深层的问题:PPO的不稳定性不是价值函数训练方式的问题,而是token级MDP分解在这个场景下根本不合适。你换什么损失函数去训Critic,只要还在逐token做信用分配,长链推理就会出问题。
Critic校准:保守但够用

Critic预测和真实难度的Pearson相关0.642,Spearman秩相关0.664——说明Critic确实能区分难题和简单题。但有个有趣的特征:真实难度呈双峰分布(很多题要么几乎必对要么几乎必错),Critic预测却是准正态分布,集中在0.6-0.7——Critic倾向于保守预测,不愿意给出极端概率。这其实不影响SPPO的效果,因为优势函数 \(A = R - V(s_p)\) 在极端情况下信号更强(模型非常自信但错了,惩罚更大),Critic的保守反而让训练更稳定。
RLVR控制任务:不只数学
论文还在5个经典控制任务(CartPole, MountainCar, Hopper, LunarLander, Pendulum)上做了验证,用稀疏结果奖励(\(\gamma=1.0\))。

SPPO在Hopper和MountainCar上标准PPO直接崩了,SPPO稳定收敛;CartPole上SPPO样本效率更优。这说明序列级建模的优势不局限于语言推理——只要奖励是稀疏的、轨迹是长的,token级信用分配就会出问题。
偏差-方差权衡:SPPO找到了甜点
把三个方法放在一起看:
| 方法 | 偏差 | 方差 | 采样数 | 训练速度 |
|---|---|---|---|---|
| 标准PPO | 高(token级信用分配错误) | 低 | N=1 | 受限于Critic |
| GRPO | 低 | 高(蒙特卡洛结果噪声) | N=8 | 慢 |
| SPPO | 低(序列级建模) | 低(学习标量V) | N=1 | 5.9×加速 |
标准PPO的偏差来自token级信用分配的系统性错误——这不是估计噪声,是建模方式的根本问题。GRPO通过跳过token级分解消除了偏差,但组相对基线的方差很高,需要8条链平均才能压住。SPPO用学习的标量价值函数替代组均值,既有低偏差(序列级建模),又有低方差(学习的基线比蒙特卡洛估计稳定),还只要1条链。
说说局限
SPPO目前只适用于有可验证结果的任务——数学题、编程题这种能自动判对错的场景。对于开放式生成任务(比如写文章、对话),没有二值奖励信号,序列级赌博机建模就不好使了。
另外,"均匀传播优势到所有token"这个设计虽然在长链上比token级分配更稳,但确实是一种信息损失。如果未来能找到一种不依赖token级Critic但又能区分链内关键步骤的方法,可能会更进一步。
还有一个点值得琢磨:1.5B Critic比7B Critic效果更好,这到底是因为小模型更不容易过拟合标量估计任务,还是7B Critic和Policy之间的梯度干扰?论文没深入分析这个,但这对于实际部署选型很重要。
总结
SPPO的核心洞察其实就一句话:长链推理的信用分配问题,不是"怎么分"的问题,而是"不该分"的问题。token级Critic在稀疏奖励+长序列的设定下根本分不好,那就不分了——把整条链当原子动作,只估计prompt级别的成功概率。这个思路简洁、有效、省资源,5.9倍加速+最高平均分说明了一切。
代码已开源:https://github.com/sustech-nlp/SPPO
觉得有启发的话,欢迎点赞、在看、转发。跟进最新AI前沿,关注我