跳转至

DISC: Dynamic Decomposition Improves LLM Inference Scaling

会议: NeurIPS 2025
arXiv: 2502.16706
代码: disc-search.github.io
领域: LLM推理
关键词: 推理时计算, 动态分解, 搜索算法, 测试时缩放, 推理效率

一句话总结

DISC 提出了一种动态分解算法,在推理时根据每一步的 z-score(采样奖励的标准化最大值)自动、递归地调整推理步骤的粒度——困难步骤分更细、简单步骤一步跨过——可以即插即用地与贪心搜索、Beam Search、MCTS 结合,在 APPS、MATH、LiveCodeBench 上以更少的 token 预算达到更高的 pass@k。

研究背景与动机

  1. 领域现状:推理时计算(test-time compute)已成为提升 LLM 推理能力的主流范式。现有方法通常将问题分解为步骤,然后对每步进行采样和选择(如 Best-of-N、Tree of Thoughts、MCTS)。
  2. 现有痛点:问题分解的粒度通常是静态预设的——要么按 token(太细,搜索太慢)、要么按换行/句子(太粗,可能跳过关键决策点)、要么整条生成(无法利用中间步骤信息)。这些静态策略无法自适应地分配计算资源:把计算浪费在对 LLM 来说简单的步骤上,而在困难步骤上采样不足。
  3. 核心矛盾:粗粒度步骤搜索速度快但可能错过最优解;细粒度步骤精确但搜索极慢。人工设计的分解规则缺乏通用性,而且对自回归 LLM 来说关键的决策点(如 "which"、"therefore" 等转折词)往往不是人类直觉能预判的。
  4. 本文要解决什么? 如何在推理时自动、动态地确定步骤粒度,在不需要人工设计、领域知识或过程奖励模型的情况下高效分配推理计算?
  5. 切入角度:利用 LLM 自身的采样统计信息——如果从某个前缀继续采样时,奖励分布的 z-score 较低(即有更大的概率采到更好的结果),就说明这个前缀有潜力,应该接受并继续;否则就缩小步骤粒度(收缩到更短的前缀)让搜索更精细。
  6. 核心idea一句话:用 z-score 比较不同前缀的采样奖励分布,动态决定接受(前进大步)还是拒绝(收缩小步),实现自适应的推理步骤分解。

方法详解

整体框架

给定问题 \(x\),DISC 维护一个"基础前缀" \(p_b\)(初始为 \(x\)),在每轮迭代中:(1) 从 \(p_b\) 采样多个完整解,计算奖励和 z-score;(2) 取最佳后缀的前 \(\alpha\) 比例作为候选前缀 \(p_c = p_b \cdot \text{split}(s^*, \alpha)\);(3) 从 \(p_c\) 也采样计算 z-score;(4) 如果 \(z_c < z_b\)(候选比基础更有潜力),接受候选作为新的基础前缀并重置 \(\alpha\);否则缩小 \(\alpha \leftarrow \alpha \cdot \alpha_0\)(步骤更细)。反复进行直到预算耗尽或找到正确解。

关键设计

  1. Z-score 驱动的前缀接受/拒绝:
  2. 做什么:决定是否应该将候选前缀提交为新的基础前缀
  3. 核心思路:假设奖励分布属于位置-尺度族(如高斯),z-score \(z = \frac{r_{\max} - \mu}{\sigma}\) 越低意味着尾部概率越高(即有更大概率采到更好的结果)。比较 \(z_c\)\(z_b\)\(z_c < z_b\) 则接受候选
  4. 设计动机:z-score 同时考虑了均值和方差,比只看均值(DISC-Q)更鲁棒。消融实验证实 z-score 效果最佳

  5. 递归收缩机制:

  6. 做什么:当候选被拒绝时,缩小步长重试
  7. 核心思路:每次拒绝时 \(\alpha \leftarrow \alpha \cdot \alpha_0\)(默认 \(\alpha_0 = 0.15\)),使候选前缀越来越短。这实现了一种二分搜索式的递归细化——自动在困难的决策点处停下来更精细地采样
  8. 设计动机:避免了在困难步骤上盲目前进(过粗),也避免了在简单步骤上过度分割(过细)

  9. Negative Binomial 采样策略:

  10. 做什么:控制每个前缀采样多少次
  11. 核心思路:持续采样直到累计奖励达到阈值 \(\sigma\)\(M = \min\{m : \sum_{i=1}^m R(y_i) \geq \sigma\}\)。这样在容易的前缀(很快就能采到正确解)上少花样本,在困难的前缀上多花样本
  12. 设计动机:自适应地平衡样本数量和质量,比固定采样数更高效

损失函数 / 训练策略

DISC 是一个纯推理时方法,不涉及任何训练。它只需要一个标量奖励模型(可以是真值验证器、ORM、或自生成的测试用例)来引导搜索,即插即用于现有 LLM。

实验关键数据

主实验

使用 gpt-4o-mini 作为主要 LLM,默认 \(\alpha_0 = 0.15\)\(\sigma = 1.0\),温度 \(\tau = 0.2\)

基准 指标 DISC 最强基线 相对错误率降低
APPS (竞赛级) pass@10 error 0.475 0.50 (BoN) 5.0%
MATH500 pass@10 error 0.14 0.15 (LineSplit) 6.7%
LiveCodeBench pass@10 error 0.51 0.57 (BoN) 10.5%

在 DeepSeek-R1 推理模型上:pass@10 相对基础模型提升 85%,即使在与单次采样相同的 token 预算下仍提升 33%。

消融实验

配置 APPS pass@10 说明
DISC-Z (z-score) 最佳 标准化奖励最大值
DISC-Q (均值比较) 次佳 不考虑方差
DISC-R (随机接受) 中等 无信息引导
DISC-negZ (逆 z-score) 最差 选择最差前缀
\(\alpha_0 = 0.15\) 最佳范围 保守步长
\(\alpha_0 = 0.50\) 较差 步长过大

关键发现

  • DISC 偏好低温度:与 BoN 最优温度在 0.6-0.8 不同,DISC 在 \(\tau = 0.2\) 时效果最佳。原因是低温度降低采样方差,使 z-score 估计更准确
  • DISC 通常只需 1-5 个实际提交的步骤就能找到好解,而 LineSplit/TokenSplit 需要更多步骤——DISC 更高效地识别关键前缀
  • 分解越深(提交步骤越多),平均奖励线性增长、奖励方差线性降低
  • 计算开销可忽略:>90% 运行时间仍是 LLM token 生成,DISC 的辅助计算占比与 BoN 相当
  • 在 LLaMA、Mistral、Qwen 等开源模型上同样有效:LLaMA pass@10 从 0.01 提升到 0.04(300% 相对提升)

亮点与洞察

  • "转折词"是 LLM 的关键决策点:DISC 经常在 "which"、"therefore" 等对人类看似无关紧要的 token 处分配大量计算。这揭示了自回归模型中关键决策点与人类直觉不同,自动发现这些点比人工设计规则更有效
  • 递归收缩的二分搜索思想非常优雅:被拒绝就缩小步长,直到找到合适的粒度。这种简单机制在理论上保证了最终收敛到最优解
  • 低温度最优这一反直觉发现很有价值:揭示了分解搜索方法与采样搜索方法在最优温度上的本质差异——前者需要准确估计,后者需要多样性

局限性 / 可改进方向

  • 依赖标量奖励模型:对于没有明确验证器的开放式任务(如创意写作),需要额外构建奖励信号
  • 贪心搜索变体中接受的前缀不可撤回,错误的早期决策无法修正(MCTS 变体可部分缓解)
  • 目前仅支持单轮生成,不支持多轮交互式推理
  • 对于简单或非组合结构的任务,分解带来的增益有限

相关工作与启发

  • vs Best-of-N (BoN): BoN 将整条生成视为一个步骤,每次采样的成功概率恒定。DISC 通过提交前缀使成功概率单调递增(Lemma 1),理论上收敛更快
  • vs s1 (Simple Test-Time Scaling): s1 也关注测试时计算但侧重于控制思考预算长度,DISC 关注步骤粒度的动态调整,两者互补
  • vs Tree of Thoughts / MCTS: ToT/MCTS 也做步骤分解+搜索,但步骤粒度通常是固定的(按换行或人工设计)。DISC 的核心贡献在于自动化粒度选择,可以作为这些方法的即插即用模块

评分

  • 新颖性: ⭐⭐⭐⭐ 动态粒度分解的思路新颖,z-score 驱动的接受/拒绝机制设计精巧
  • 实验充分度: ⭐⭐⭐⭐⭐ 3 个基准 × 多模型 × 多搜索方法 + 丰富消融 + 理论分析 + 计算开销分析
  • 写作质量: ⭐⭐⭐⭐⭐ 图示清晰,直觉解释到位,理论和实验完美互补
  • 价值: ⭐⭐⭐⭐⭐ 即插即用的通用推理时方法,无需训练,可以直接提升现有 LLM 的推理效果