并行推理的算力不该平均分:ParaTempo 用一个"时序置信度"信号把延迟砍掉三成

你有没有遇到过这种情况——为了让大模型把一道数学竞赛题做对,你开 16 条推理链并行跑,然后干等。其中有几条链写到一半其实已经收敛了,答案早就不变了;还有几条链从头到尾都在几个答案之间反复横跳,明显没戏。但传统的 self-consistency 不管这些,16 条链必须全部跑完才能投票。你付的是 16 份满额的 token 账单。

上周刷到 ParaTempo 这篇论文(arXiv: 2608.16425),我的第一反应是:这个痛点抓得准。它做的事情用一句话概括——给每条并行推理分支装一个"心率监测仪",心跳稳了就提前下班,心律不齐就直接拔掉,省下来的算力再分叉给有前途的分支。整个系统免训练、异步执行,在 AIME/HMMT/GPQA 这些硬基准上把平均延迟降了 21.8%–32.2%、总 token 降了 18.1%–30.3%,准确率基本不掉。

先说我的总体判断:这不是底层突破,是一篇非常扎实的系统工程论文。它真正的贡献不在"控制"这个动作本身——DeepConf 去年就做过置信度早停了——而在于它论证了一件事:控制信号本身比控制策略更值得研究。token 级的置信度信号太抖、瞬时答案置信度太噪,真正能用来驱动分支级控制的,是一个带时间窗口的"答案空间收敛度"。这个洞察值钱。

论文信息

  • 标题:ParaTempo: Efficient Parallel Reasoning via Temporal Confidence
  • 作者:Xuteng Zhang, Wenhao Zeng, Xiaodong Gu, Chao Hu, Haotian Lin, Yuling Shi, Min Wang, Beijun Shen(通讯)
  • 机构:上海交通大学、宾夕法尼亚大学
  • 发表:2026 年 8 月 17 日(arXiv: 2608.16425)
  • 代码:https://github.com/ScottZhang812/ParaTempo

📖 问题动机:并行推理的账单为什么这么贵

先把背景说清楚。现在提升推理模型准确率的标配做法是 test-time scaling 里的并行路线:同一道题采样 K 条链(比如 K=16),每条独立推理,最后多数投票。这就是 self-consistency,简单有效,但成本是单条链的 K 倍。

问题在于,这 K 条链的"成色"差异巨大。有的链跑两千个 token 就锁定了正确答案,剩下的八千个 token 纯属冗余生成;有的链写到一半逻辑已经崩了,继续跑只会浪费算力还稀释投票。理想情况下,系统应该能识别出这些分支的状态,动态地把算力从"没救的"挪到"有戏的"上。

已经有人做过尝试,但信号源都有毛病:

现有信号 毛病
最终答案共识(self-consistency) 必须等所有链跑完,信号来得太晚,省不了任何算力
token 级置信度(DeepConf 一类) 单 token 的熵和困惑度抖动剧烈,而且跟"这条链最终选哪个答案"只有弱相关
瞬时答案置信度(单次 probe) 方向对了,但只看一个时间点的快照,容易被短期波动骗到

作者用一张图把这个矛盾画得很直观。

图1:分支级时序控制的动机

图 1:(a) 同步控制的痛点——所有分支被全局 barrier 卡在一起,已经稳定的分支(stabilized)被迫陪着没收敛的分支继续生成冗余 token;(b) ParaTempo 的做法——每条分支独立维护本地证据,稳定了就 RETIRE,发散了就 PRUNE,回收的算力通过 FORK 从稳定 donor 分叉出新分支。

图里 (a) 部分那个"waiting"的沙漏特别传神:stabilized 分支明明已经完事了,还得等 diffuse 分支磨到最后。这就是同步投票的结构性浪费。

🧠 核心洞察:什么信号才配驱动分支控制

在动手设计系统之前,作者先做了一个 preliminary study,回答一个前置问题:到底什么信号够格当"控制器的心跳"?

他们提出一个合格信号必须满足三条性质:答案空间对齐(信号得直接反映答案分布,而不是中间 token 的熵)、时序一致性(不能抖)、分支局部性(每条链自己算自己的,不依赖全局同步)。

然后拿 9000 万个推理 token 的实测数据(Qwen3.5-35B-A3B 和 GPT-OSS-20B,三个数学基准,K=16,每 500 token probe 一次)去检验三类候选信号:

信号 波动率 ↓ Spearman 相关 ↑ AUC ↑
平均 token 熵 0.54 0.13 0.58
token 困惑度 0.56 0.12 0.57
瞬时答案置信度 0.26 0.41 0.71

表 1:三类候选信号的时序波动率和对未来答案稳定性的预测力(预测窗口 h=5)。

看到这张表我是有点意外的。token 级信号的预测力基本等于瞎猜——Spearman 相关只有 0.12–0.13,AUC 0.57–0.58,刚过随机水平。这直接给 DeepConf 那条"用 token 置信度做早停"的路线敲了警钟:不是说它不能 work(DeepConf 在 AIME 2025 上确实刷到了 99.9%),而是说它依赖的信号本身又抖又弱,阈值调参会很痛苦。瞬时答案置信度明显好一些,但 0.26 的波动率还是不够稳。

作者的答案是 temporal confidence——别急,下面讲方法时细说。先看它在这套评估协议下的表现。

图4:temporal confidence 的信号质量分析

图 4:(a) 五类信号的标准化波动率对比——token 熵(0.54)和 token 困惑度(0.56)抖得最厉害,temporal confidence 只有约 0.10,比瞬时答案置信度(0.26)还低一半多;(b) 信号分位数越高,未来 5 步内主导答案保持不变的比率越高,且是单调递增的——说明这个信号真的有预测力,不是噪声。

波动率从 0.26 压到 0.10 左右,靠的就是一个滑动窗口的时序平均。思路不复杂,但这个"先验证信号质量、再围绕信号设计系统"的论证顺序,比很多上来就堆 trick 的论文要诚实。


🏗️ 方法:一个信号驱动全部控制动作

ParaTempo 的整体框架长这样。

图2:ParaTempo 总体框架

图 2:16 个算力槽位(slot)各自异步执行。左侧是 warmup 阶段——前若干次 probe 只观察不干预,用收集到的置信度值校准出本题的剪枝阈值;右侧进入动态控制——每条分支持续被 probe,满足退休条件的 RETIRE(保留投票权),置信度跌破阈值的 PRUNE(释放算力),空出的槽位从稳定 donor 处 FORK 新分支;最后所有分支的证据进入置信度加权投票(Vote)。

整个系统围绕一个核心信号转:temporal confidence。拆开看就两步。

第一步:probe——定期问每条分支"你现在觉得答案是什么"。

每生成 500 个 token,往当前推理前缀后面强制拼一个答案后缀(比如 </think> Final answer:),让模型立刻吐出 top-L=20 个候选答案 token 的对数概率,归一化成答案分布:

\[p_{i,t}(v)=\frac{\exp(\ell_{i,t}(v))}{\sum_{u\in V_{i,t}}\exp(\ell_{i,t}(u))}\]

这个 probe 的巧妙之处在于:它不打断推理,只是"路过式"地看一眼答案空间。分支该推理继续推理,probe 是顺手做的。

第二步:时序聚合——别信单次快照,信最近一个窗口。

单次 probe 会抖,那就拿最近 W=7 次 probe 的答案分布做平均:

\[g_{i,t}(v)=\frac{1}{|\mathcal{J}_{i,t}|}\sum_{\tau\in\mathcal{J}_{i,t}}p_{i,\tau}(v)\]

然后 temporal confidence 定义为这个聚合分布的负熵指数:

\[C_{i,t}=\exp\big(-H(g_{i,t})\big)\in(0,1]\]

这个定义有个很漂亮的直觉解释:\(\exp(H(g_{i,t}))\) 就是聚合答案分布的 perplexity,所以 \(C_{i,t}\) 等于"有效竞争答案数量的倒数"。如果最近几次 probe 都死死锁定同一个答案,\(C_{i,t}\) 趋近 1;如果概率质量摊在好几个候选上,它就往下掉。一个标量,把"这条链收敛了没有"说清楚了。

然后,所有控制动作都由这一个信号驱动:

  • 剪枝(Prune):warmup 阶段(前 15 次 probe)只收集数据不干预,然后用这些置信度值的分位数自动定出本题的阈值 \(\theta_{\mathrm{prune}}=\operatorname{Quantile}_{1-q_{\mathrm{prune}}}(\mathcal{S}_{\mathrm{warm}})\)。之后 \(C_{i,t}\) 跌破阈值的分支直接砍掉。这个按题目自适应定阈值的设计挺聪明——难题的置信度整体偏低,用全局固定阈值会误杀。
  • 退休(Retire):如果一条分支连续 X=9 次 probe 的主导答案概率都高于 \(\theta_{\mathrm{retire}}=0.90\),说明它早就想清楚了,停止生成。但注意——退休不等于弃权,它的预测答案和置信度仍然保留,参与最终投票。
  • 分叉(Fork):剪枝空出来的算力槽位不闲着,从当前置信度最高的合格 donor 复制推理前缀,换个采样种子继续生成。相当于把浪费在"没救分支"上的预算,转投给"有戏分支"的探索。
  • 全局早停:每轮检查加权投票 \(V_{t}(a)=\sum_{i\in\mathcal{B}_{t}}c_{i,t}\mathbf{1}\{\hat{y}_{i,t}=a\}\),一旦最大得票超过 \(\gamma_{\mathrm{ES}}=0.50\) 乘以分支数,全体收工。

四个动作,一个信号源。这个"single signal drives everything"的设计我很欣赏——工程上少一个信号就少一组要调的阈值,出 bug 的概率也小。

还有个细节值得点出:全程无同步。每条分支的退休、剪枝、分叉都是本地决策,不需要等别的分支对齐。这对实际 serving 系统很友好,毕竟 vLLM 里各请求的生成本来就是异步调度的。

🧪 实验:数据说话

主实验在四个基准上跑:AIME 2026、HMMT November 2025、HMMT February 2026、GPQA-Diamond。两个模型:Qwen3.5-35B-A3B 和 GPT-OSS-20B,都是长 CoT 推理模型。基线包括 Zero-shot、self-consistency(SC@16)、ESC@16、SAC@16、DeepConf-high/low@16、Parallel-Probe@16。硬件是单张 A100 80GB,vLLM 推理,所有结果跑 4 次取平均。

核心结果(Qwen3.5-35B-A3B,每个单元格为 准确率 / 延迟秒 / 总 token / 关键路径 token):

方法 AIME26 HMMT25 HMMT26 GPQA
Zero-shot 72.3 / 92.2 / 12.6k 64.2 / 90.6 / 12.4k 42.4 / 94.7 / 13.0k 82.2 / 69.0 / 9.4k
SC@16 87.5 / 250.6 / 229.7k 69.2 / 257.8 / 236.8k 45.5 / 254.8 / 237.4k 86.4 / 225.0 / 196.7k
DeepConf-high@16 68.3 / 451.4 / 101.3k 60.0 / 433.1 / 99.6k 34.8 / 460.6 / 102.5k 82.3 / 271.8 / 79.2k
Parallel-Probe@16 76.7 / 223.1 / 164.0k 65.0 / 218.1 / 161.2k 42.4 / 220.3 / 161.9k 84.6 / 203.5 / 153.7k
ParaTempo@16 83.3 / 198.4 / 161.9k 73.3 / 205.7 / 166.6k 42.4 / 208.0 / 168.9k 85.4 / 161.1 / 130.4k

表 2 节选:Qwen3.5-35B-A3B 上的主实验结果。完整表格还包含 ESC、SAC、DeepConf-low 等基线,以及 GPT-OSS-20B 的全部结果。

几个值得细嚼的点:

对 SC 的账算得清楚。 ParaTempo 平均准确率 71.1%,比 SC 的 72.2% 低 1.1 个点,换来延迟降 21.8%–32.2%、token 降 18.1%–30.3%。这个 trade-off 划不划算?看你场景。线上服务按延迟和成本计费的话,1 个点换三成成本,多数情况是值的。

对 Parallel-Probe 是全面压制。 平均准确率高出 3.8–3.9 个点,延迟还更低。这条对比最能说明问题——Parallel-Probe 也用 probe 做中间控制,但用的是瞬时信号,ParaTempo 赢的那几个点,基本可以归因到 temporal confidence 这个信号的质量差异上。论证闭环了。

DeepConf 在这张表里有点惨。 AIME26 上 DeepConf-high 准确率 68.3%,还不如 zero-shot 的 72.3%,延迟却高达 451 秒——比 SC 还慢 80%。我的理解是,DeepConf 的在线早停依赖逐 token 检查置信度,开销本身不小;而且 token 级信号在这种超长 CoT 上误杀率高。当然公平地说,DeepConf 论文主战场是 offline 模式和更大规模的模型,这里的实现口径未必是它最强的形态。但至少说明:那套信号搬到"分支级动态控制"这个任务上,确实不够使。

Pareto 前沿也赢了。 图 3 是不同算力预算下的延迟–准确率曲线。

图3:延迟-准确率 scaling 曲线

图 3:AIME26 和 HMMT25 上 ParaTempo(蓝)与 Parallel-Probe(橙)的延迟–准确率曲线,星号是 SC@16。ParaTempo 的曲线在整个延迟区间都压在 Parallel-Probe 上方——同样的延迟预算,准确率更高;最高预算配置能摸到甚至超过 SC@16 的准确率,同时延迟低约 20%。

消融实验(Table 3,HMMT25)把三个动作的账目分开了:

变体 准确率 ↑ 延迟 ↓ 总 token ↓
ParaTempo 完整版 73.3 205.7 166.6k
去掉剪枝 71.7 233.0 179.1k
去掉退休 66.7 224.6 175.4k
去掉分叉 70.0 195.7 145.5k

最有意思的是"去掉退休"那一行:准确率直接掉 6.6 个点。为什么砍掉一个"提前停止"的机制会伤准确率?我的推测是——不退休的话,那些早已收敛的分支会继续生成,而后续生成有概率把答案带偏(长 CoT 的漂移问题),或者它们持续占用槽位挤压了 fork 的空间。无论哪种解释,都说明"让想清楚了的分支早点闭嘴"不只是省钱,还护住了投票质量。这个发现比效率数字本身更有意思。

"去掉分叉"则是另一个极端:成本最低(145.5k token),但准确率掉 3.3 个点。省下来的算力不 reinvest,等于白白浪费了探索机会。

📊 我的判断

这篇论文最值钱的地方,我觉得是把"并行推理控制"这件事的瓶颈从"控制策略"重新定位到了"控制信号"。之前大家卷的是怎么剪、怎么停、怎么投票,ParaTempo 说:等一下,你们用的信号本身就又抖又弱,策略再好也是垃圾进垃圾出。然后它用 9000 万 token 的实测把这句话坐实了。这种"先把测量搞对"的研究品味,比刷点重要。

工程上也有直接的借鉴价值。免训练、vLLM 可接入、异步无同步、阈值按题目自适应——这几个属性凑齐,离生产系统就不远了。如果你在做推理服务的成本优化,这套"probe + 时序聚合置信度 + 分支级控制"的范式值得抄。probe 每 500 token 一次的间隔、W=7 的窗口这些超参都有现成答案。

但问题也得说。

单卡单模型规模的实验,说服力有上限。 全部实验在单张 A100 上跑 K=16,延迟数字很大程度反映的是这个特定并发设置下的调度效果。换到更大的 batch、多卡 serving 场景,probe 引入的额外前向开销占比会不会变?文中没有展开。

probe 本身的成本被低估了吗? 每次 probe 要拼接后缀做一次短生成,K=16 条分支每 500 token 一次。论文把 probe 成本计入了总 token(Tok 列应该包含了),但 probe 对 KV cache 和调度的影响没细聊。我在这块不是特别确定,需要看开源代码的实际实现。

和 DeepConf 的对比口径。 如前所说,DeepConf 在这张表里的表现和原论文的报告差距很大,直接拿来做"信号质量优劣"的佐证有点讨巧。更公平的对比应该是同信号不同策略、同策略不同信号的交叉消融——论文做了 preliminary study 的信号对比,算是部分回应了,但主表里的端到端对比还是容易让读者产生"DeepConf 不行"的过度推论。

还有一个更本质的问题没解决:temporal confidence 度量的是"答案空间的收敛",但收敛不等于正确。一条链可以很自信地锁定一个错误答案——temporal confidence 对这种情况是无能为力的,它只能保证"这条链不会再改主意了",不能保证"它的主意是对的"。退休机制保护了投票不被漂移污染,但如果多数分支早早收敛到同一个错误答案,加权投票会错得更自信。这道题,恐怕得留给过程奖励模型或者验证器来解。

收尾

如果你正在跑 self-consistency 之类的并行推理,这篇论文给出的是一个可直接落地的优化路径:别等所有链跑完再投票,给每条链装个时序置信度监测,稳的早退、散的早砍、省下来的算力继续分叉。三成延迟的降幅,1 个点左右的准确率代价,多数生产场景会愿意换。

更长远一点看,我觉得"probe 答案空间"这个动作本身可能会成为推理系统的标准组件——它开销小、信息量大,除了做控制,还能做监控、做路由、做级联。ParaTempo 只是开了个头。

觉得有启发的话,欢迎点赞、在看、转发。跟进最新AI前沿,关注我