跳转至

SAPO: Self-Adaptive Process Optimization Makes Small Reasoners Stronger

会议: AAAI 2026
arXiv: 2601.20312
代码: 无
领域: 对齐RLHF / 过程监督与推理优化
关键词: process supervision, self-evolution, first error detection, small language models, reasoner-verifier gap

一句话总结

受神经科学中Error-Related Negativity启发,提出自适应过程优化方法SAPO,通过首错检测+局部后验估计替代低效的逐步蒙特卡洛rollout,在降低2-3倍计算成本的同时实现推理器-验证器协同优化,使小语言模型(≤2B)在数学和代码推理任务上超越多数自演化方法。

研究背景与动机

  1. 领域现状: 大语言模型推理能力强但计算成本高,小语言模型(SLM, ≤2B)是部署到移动端的可行方案。自演化方法通过推理器-验证器交互框架来提升SLM推理能力。
  2. 现有痛点:
  3. 大多数自演化方法仅使用outcome reward(结果反馈),忽略细粒度的步骤级反馈,容易产生reward hacking
  4. Monte Carlo过程监督虽然更精细,但计算极其昂贵(10k问题×8步×10轨迹 = 80万次rollout)
  5. 多轮迭代下,推理器与验证器之间的gap不断扩大(Figure 1),验证器评估质量下降
  6. 核心矛盾: 过程监督的精细度与计算效率之间的权衡——需要步骤级反馈来减小reasoner-verifier gap,但全量MC估计代价太高。
  7. 本文要解决什么? 如何在不显著增加监督成本的前提下,实现推理引擎与验证器的协同优化。
  8. 切入角度: 受Error-Related Negativity(ERN)启发——人类在做出错误决定后能快速定位错误位置并调整行为——只需定位首个错误就能提供有效过程监督。
  9. 核心idea一句话: 用验证器定位首错位置、推理器做局部后验验证替代逐步MC rollout,以最小成本引入过程监督信号。

方法详解

整体框架

SAPO采用迭代式探索-利用范式:每轮迭代中,验证器预打分→首错检测→推理器后验验证→验证器更新→构建偏好数据→推理器对齐。推理器和验证器协同进化。

关键设计

  1. 首错检测 (First Error Detection)
  2. 做什么:利用验证器 \(V\) 对轨迹中每步打分,找到分数下降最大的位置作为潜在首错位置
  3. 核心思路:计算相邻步骤的分数差 \(\Delta_j = \hat{c}_{j-1} - \hat{c}_j\),取最大差值处 \(\hat{t} = \arg\max_j \Delta_j\)
  4. 设计动机:首错位置足以提供有效的过程监督信号(Uesato et al. 2022),而不需要标注每一步

  5. 自验证 (Self-Verification)

  6. 做什么:用推理器对验证器预测的首错位置进行后验估计,修正预标注标签
  7. 核心思路:只需对 \(\hat{t}-1\)\(\hat{t}\) 两个位置做rollout验证,覆盖三种情况:
    • Case (a): \(c_{\hat{t}-1}=1, c_{\hat{t}}=0\) → 预测正确
    • Case (b): \(c_{\hat{t}-1}=1, c_{\hat{t}}=1\) → 首错在后面(\(\hat{t}<t\)),延伸正确标签
    • Case (c): \(c_{\hat{t}-1}=0, c_{\hat{t}}=0\) → 首错在前面(\(\hat{t}>t\)),提前错误标签
  8. 设计动机:仅2次rollout即可完成验证,vs MC需要全步骤逐个rollout

  9. 验证扩展 (Expansion)

  10. 做什么:利用rollout过程中产生的扩展轨迹来增强验证的泛化性
  11. 核心思路:若 \(c_{\hat{t}}=1\),则以 \(s_{(0:\hat{t})}\) 为前缀的正确轨迹每步都正确;若 \(c_{\hat{t}}=0\),则 \(s_{\hat{t}}\) 开始的所有后缀都标记为错误
  12. 设计动机:rollout自然产生多样样本,可复用来增强PRM训练数据

损失函数 / 训练策略

  • 验证器训练: 使用MSE损失的分类PRM — \(\mathcal{L}_{PRM} = \frac{1}{n}\sum_i\sum_j(f(s_{(0:j)}^i;q) - c^k)^2\)
  • 推理器对齐: 使用ORPO算法构建偏好对 — \(\mathcal{L}_{ORPO} = \mathbb{E}[\mathcal{L}_{SFT}(q,\tau^w) - \beta\log\sigma(\frac{\text{odds}(\tau^w|q)}{\text{odds}(\tau^l|q)})]\)
  • 偏好数据构建: 设阈值 \(\eta\),当 \(r(\tau_i^w) - r(\tau_i^l) \geq \eta\) 时构建正负样本对
  • 迭代策略: 3轮迭代,每轮更新验证器后再优化推理器

实验关键数据

主实验 - 数学推理与代码生成

方法 Qwen-2.5-0.5B GSM8K Qwen-2.5-0.5B MATH(OOD) Llama-3.2-1B GSM8K Gemma-2-2B GSM8K
CoT 28.51 25.97 5.31 19.86
SFT 34.19 24.84 22.14 39.12
RFT 37.83 27.35 26.31 45.34
Online-RFT 40.79 28.85 29.03 48.67
SFT+GRPO 46.24 34.53 26.46 44.65
SAPO-iter3 41.62 31.72 34.19 49.73
方法 Qwen-2.5-0.5B MBPP Llama-3.2-1B MBPP Gemma-2-2B MBPP
SFT+GRPO 35.20 25.55 33.40
SAPO-iter3 36.67 28.92 35.43

消融实验 - GSM8K

方法 Qwen-2.5-0.5B Llama-3.2-1B
SAPO (完整) 41.62 34.19
w/o 过程反馈 (PF) 39.65 32.37
w/o 检测验证 (DV) 40.86 31.69
w/o 奖励模型 (RM) 40.71 32.75
w/o 扩展 (EP) 40.33 33.73

关键发现

  • GRPO的模型依赖性: Qwen-2.5-0.5B上GRPO最强,但在Llama和Gemma上表现不如SAPO,说明GRPO效果高度依赖于基础模型能力
  • 代码任务优势: SAPO在代码生成任务上始终优于GRPO,说明过程监督在结构化推理中更有效
  • 效率提升: 相比Shepherd(逐步rollout),SAPO在FLOPs和时间消耗上降低2-3倍
  • 验证器性能提升: SAPRM在迭代过程中持续提升过程验证性能,且在代码验证上尤其优于Online ORM
  • 同步对齐的重要性: 同轮次的推理器-验证器对(如V3-R3)错误率最低,跨轮次配对错误率更高

亮点与洞察

  • 神经科学启发: ERN的类比直觉优雅——人类不需要检查每一步,只需快速定位首个错误就能做出调整
  • 自适应效率: 巧妙利用首错定位将O(n)的MC估计降为O(1)的局部验证,在精度和效率间取得平衡
  • 两个新benchmark: 引入GSM_Process(3,786)和MBPP_Process(1,499)用于评估过程验证器,填补了步骤级验证评估的空白
  • 迭代收敛分析: 通过自验证错误率实验(Table 2)直接度量了推理器-验证器gap的变化

局限性 / 可改进方向

  • 在Qwen-2.5-0.5B的数学任务上仍不如SFT+GRPO(41.62 vs 46.24),说明GRPO在部分场景下更有效
  • 仅测试了≤2B模型,未验证对更大模型的适用性
  • 首错检测依赖验证器质量,初始验证器弱时可能导致级联错误
  • 扩展策略假设首错位置之前全部正确、之后全部错误,但实际中可能存在部分正确的后续步骤

相关工作与启发

  • GRPO (Shao et al. 2024): 基于组相对策略优化,适用于大模型但SLM上不一定最优 → SAPO为SLM提供了更稳定的选择
  • V-STaR (Hosseini et al. 2024): 用验证器内化对齐信号 → SAPO进一步推进了推理器-验证器协同
  • OmegaPRM (Luo et al. 2024): 用二分估计定位首错 → SAPO的detect+verify策略更全面

评分

  • 新颖性: ⭐⭐⭐⭐ ERN启发的首错检测+自验证机制新颖,效率优化思路优雅
  • 实验充分度: ⭐⭐⭐⭐ 三个backbone×两个任务类型×多个baseline,消融和效率分析全面
  • 写作质量: ⭐⭐⭐⭐ 动机清晰,从problem→method→experiment逻辑完整
  • 价值: ⭐⭐⭐⭐ 对SLM自演化和过程监督效率化有明确的实用贡献