跳转至

SPRINT: Enabling Interleaved Planning and Parallelized Execution in Reasoning Models

会议: NeurIPS 2025
arXiv: 2506.05745
代码: https://github.com/stanford-futuredata/Sprint
领域: LLM推理
关键词: 推理加速, 并行推理, 规划与执行, Chain-of-Thought, 推理模型

一句话总结

通过将长链式推理轨迹重组为交替的规划-并行执行阶段,Sprint 使推理模型在保持准确率的同时,将长推理链的顺序 token 数减少高达 39%(OOD 任务上最高 65%),实现推理过程的动态并行化。

研究背景与动机

  1. 领域现状:大型推理模型(LRM)如 DeepSeek-R1、OpenAI o1 通过生成长链的 Chain-of-Thought 来解决复杂推理任务,准确率很高但推理延迟极大——一道数学题可能需要生成数千个 token 才能得到答案。
  2. 现有痛点:现有加速方案要么缺乏协调(repeated sampling / self-consistency 生成多条独立轨迹但信息不共享)、要么依赖预定义的搜索结构(Tree-of-Thought / Graph-of-Thought 需要人工设置搜索模式)、要么不支持多步依赖推理(Skeleton-of-Thought 假设子任务语义独立,对数学推理这类后步依赖前步计算的任务效果差)。
  3. 核心矛盾:推理准确率要求长链顺序思考,但实际上许多推理步骤之间是相互独立的——比如同时尝试两种解法、独立计算一个复杂问题的不同子部分。现有方法没有让模型自己学会发现和利用这些并行机会。
  4. 本文要解决什么:如何让推理模型自主识别推理过程中的并行化机会,并在保持准确率的前提下减少顺序 token 生成数?
  5. 切入角度:仔细分析 R1 的推理轨迹发现,其中包含反思、任务分解、试错等步骤,很多步骤之间并无依赖关系。如果能把这些独立步骤识别出来并行执行,就能大幅缩短推理的"关键路径"。
  6. 核心 idea 一句话:通过数据管线将顺序推理轨迹重组为 DAG 结构的并行阶段,再用 SFT 教会模型在推理时自主进行交替规划和并行执行。

方法详解

整体框架

Sprint 包含两部分:(1)训练时的数据整理 pipeline,把普通的顺序推理轨迹转化为结构化的规划-并行执行格式;(2)推理时的 planner-executor 架构,模型交替扮演 planner(规划独立子任务)和 executor(并行执行子任务)角色。

输入是用户 query,planner 生成当前阶段的规划(可能包含多个独立子任务 prompt),多个 executor 并行执行各子任务,执行结果合并回累积上下文,planner 再做下一轮规划,如此迭代直到输出最终答案。

关键设计

  1. 数据整理 Pipeline(训练数据构造):
  2. 做什么:把 DeepSeek-R1 生成的原始顺序推理轨迹转化为可并行的阶段化格式
  3. 核心思路:分四步——(a) Step Extraction: 用 GPT-4o 将推理轨迹拆分为离散的推理步骤 \(S = \{S_1, S_2, ..., S_n\}\),每步进一步分为规划阶段 \(P_i\) 和执行阶段 \(E_i\);(b) DAG Creation: 用 GPT-4o-mini 判断步骤间的依赖关系,构建有向无环图 \(G=(S,D)\);(c) Packing: 将同一 DAG 深度的无依赖步骤打包到同一个 stage,特别优化了 plan-only 步骤——如果父节点是 plan-only,子节点可以合并到同一 stage;(d) Filtering: 只保留并行化比率(steps/stages)≥1.5 的轨迹
  4. 设计动机:直接从真实推理轨迹中挖掘并行结构,而非人工设计,保证了训练数据的自然性和多样性

  5. Planner-Executor 推理架构:

  6. 做什么:推理时让同一个微调后的模型交替扮演 planner 和 executor 两个角色
  7. 核心思路:在 stage \(i\),planner 接收完整累积上下文(query + 之前所有 plan 和 execution 结果),生成 <Plan_i> 标签内的规划文本,其中可能包含多个 <prompt_i.j> 子任务;每个子任务由独立的 executor 并行执行,结果封装在 <execution_i.j> 标签中同步回主上下文
  8. 设计动机:planner 每轮都能看到之前所有执行结果,避免了 SoT 等方法因单轮规划导致子任务之间缺乏协调的问题;executor 并行执行则直接减少了顺序 token 数

  9. Packing 优化(stage 分配策略):

  10. 做什么:最优化地将步骤分配到 stage,最大化并行度
  11. 核心思路:stage 编号的计算公式为 \(\sigma(S_i) = \max_{S_p \in \text{Parents}(S_i)} (\sigma(S_p) + \mathbb{1}(E_p \neq \emptyset))\),关键在于如果父节点 \(S_p\) 是 plan-only 步骤(\(E_p = \emptyset\)),子节点不需要等待其执行结果,可以归入同一 stage
  12. 设计动机:贪心地压缩 stage 数量,同时短执行(<3行)被合并为 plan-only,减少 executor 调用开销

训练策略

  • 从 MATH 训练集上 R1 生成的 6000 条轨迹中,经过答案正确性过滤和并行化比率过滤,得到约 1700 条训练样本
  • 对 DeepSeek-R1-Distill-Qwen-7B 做全量 SFT(LoRA 效果不好,模型无法遵循格式),5 epochs,学习率 \(1 \times 10^{-5}\)
  • 使用 ZeRO Stage 3 + 4-bit 量化在 8×A100 上训练

实验关键数据

主实验

数据集 方法 准确率 顺序Token数 总Token数
MATH-500 R1-Distill-7B 89.1% - -
MATH-500 RFT 91.0% 2880 2880
MATH-500 SoT-reasoning 90.8% 3836 11538
MATH-500 Self-consistency 80.5% 590 11645
MATH-500 Sprint 92.5% 2440 3622
Countdown RFT 84.9% 4917 -
Countdown Sprint 85.9% 2284 -
GPQA-Diamond RFT 50.5% 7103 -
GPQA-Diamond Sprint 51.0% 6336 -

效率分析(按推理长度分段)

RFT 顺序Token范围 Sprint 顺序Token减少比例
<2000 tokens +5%(轻微开销)
4000-6000 tokens ~20% 减少
>8000 tokens 39% 减少
Countdown 长轨迹 65% 减少
GPQA 长轨迹 45% 减少

关键发现

  • Sprint 在 MATH-500 上准确率 92.5% 超过 RFT 的 91.0%,可能是因为并行执行中独立的子任务不会相互干扰,减少了错误传播
  • 问题越难(需要的 token 越多),Sprint 的并行化收益越大——在 >8000 token 的问题上减少 39%
  • 简单问题上有约 5% 的开销(plan/execution 标签和额外 prompt 格式的代价),但整体仍有 15% 的平均顺序 token 减少
  • Sprint 在完全 OOD 的 Countdown 任务上减少 53.5% 顺序 token,说明模型学到了通用的并行化推理能力而非任务特定的模式
  • SoT-reasoning 虽然也尝试并行,但总 token 数是 Sprint 的 3 倍(11538 vs 3622),因为单轮规划导致子任务间冗余计算

亮点与洞察

  • 数据整理 pipeline 设计精巧:不是人工定义并行结构,而是从真实推理轨迹中用 LLM 自动提取依赖图——这意味着训练数据保留了原始推理的自然分布,只是重新组织了执行顺序
  • 只需 1700 条 SFT 数据:极少量的结构化数据就能解锁模型的并行推理能力,说明推理模型本身就具备并行推理的潜力,只需要被"提醒"怎么做
  • 准确率不降反升:Sprint 92.5% vs RFT 91.0%,并行执行带来了类似 ensemble 的效果——独立的子执行不会互相污染
  • 交替规划的设计:每轮规划都能看到上一轮所有执行结果,形成"规划-执行-同步-再规划"的闭环,避免了 SoT 那样一次性规划导致的子任务不协调问题

局限性 / 可改进方向

  • 未验证实际 wall-clock 加速:论文只报告了顺序 token 数减少,但实际推理加速需要专门的 KV-cache 优化和 GPU 并行执行框架,作者承认受限于计算资源未能实现
  • 训练数据构造依赖 GPT-4o:step extraction 和 DAG creation 都需要调用封闭模型,成本和可复现性有一定限制
  • LoRA 微调失败:只有全量 SFT 才能让模型遵循格式,限制了大模型上的应用
  • 并行度有上限:受限于 SFT 数据中观察到的并行模式,RL 训练(用延迟作为奖励信号)可能发现更激进的并行策略
  • 未扩展到工具调用场景:推理 + 工具调用的场景中,工具调用的延迟远大于 token 生成,并行化收益可能更大

相关工作与启发

  • vs SoT (Skeleton-of-Thought): SoT 只做一轮规划就并行执行所有子任务,不支持多步依赖推理;Sprint 通过多轮交替规划解决了这个问题,且总 token 数只有 SoT 的 1/3
  • vs PASTA: PASTA 也训练模型进行并行子任务分解,但不支持多步规划;Sprint 的交替规划-执行框架支持任意轮数的迭代并行
  • vs Repeated Sampling: 重复采样生成多条完全独立的推理路径,信息不共享导致冗余计算;Sprint 的 executor 共享累积上下文,协调更好
  • vs APR: APR 依赖符号化 solver 生成训练数据,限于 Countdown 等合成任务;Sprint 的 pipeline 从自然推理轨迹中提取并行结构,适用于通用推理

评分

  • 新颖性: ⭐⭐⭐⭐ 交替规划-并行执行的框架设计新颖,数据整理 pipeline 的 DAG 方法有创意,但并行推理这个方向同期有 PASTA、APR 等相似工作
  • 实验充分度: ⭐⭐⭐⭐ 三个基准(含 2 个 OOD)+ 多种 baseline + 按难度分析效率,但缺少实际 wall-clock 时间和更大模型的验证
  • 写作质量: ⭐⭐⭐⭐⭐ 论文结构清晰,图表设计精美,示例充分展示了方法的工作方式
  • 价值: ⭐⭐⭐⭐ 为推理模型加速提供了一个优雅的思路,1700 条数据就能解锁能力很有实践价值,但实际部署还需硬件端配合