DeepConf 是 Meta AI 与 UCSD 团队 2025 年 8 月提出的并行思考方法,原论文《Deep Think with Confidence》口径抢眼:AIME 2025 上最高 99.9% 准确率,相比完整并行思考最多省下 84.7% 的生成 token,无需额外训练或调超参,可接进 vLLM。(DeepConf 原论文)
核心机制是一个叫 token confidence 的量:模型每一步输出词表上的概率分布,取前 20 个候选概率的平均负对数得到该 token 的置信度;再用 2048 token 的滑动窗口取平均,取整条链上这个平滑序列的最小值作为该链的「最低组置信度」。低分链在投票前被丢掉,分数跌破阈值就提前停掉。
把置信度当成信号来量
10 月 27 日提交的一篇审计论文(arXiv:2610.36709,作者 Pragna Mallappa,Keshav Memorial Institute of Technology)换了个视角:token 置信度既然是逐 token 记下的序列,那就把它当成音频或无线电意义上的离散信号,再用信号处理的标准工具去体检。(审计论文全文)
转换很直接。滑动窗口平均就是一个箱式滤波器,属于低通滤波器:保留慢变化、压制快波动;取最小值则是一个检测器。DeepConf 由此被拆成「滤波 + 检测」两个可单独检验的部件。论文还指出,2048 这个窗口长度并非从对信号的测量中得来,只是滤波器空间里的一个点。
长度效应有多强
实验规模不小:DeepSeek-R1-Distill-Qwen-1.5B,一个 15 亿参数的蒸馏推理模型;MATH500 前 200 题加 GSM8K 前 300 题,每题采 16 条链,温度 0.6、top-p 0.95、最多 8192 个生成 token,vLLM 跑在单张 RTX 4090 上,两次运行共生成 2200 万 token、耗时 84 分钟,共 8000 条链。
关键对比是 AUROC(组内比较,衡量一个分数把好链排在坏链前面的能力):DeepConf 的 2048 箱式滤波器在 MATH500 上是 0.585,而单纯按链长排序是 0.715,前者被反超 0.130(区间 0.019 到 0.257);GSM8K 上长度排序 0.636,与 DeepConf 的 0.625 持平。
再把长度的影响直接扣掉:论文对每道题的分数和链长对数各减去组内均值,拟合一个全局斜率,再算斜率解释不了的残差 AUROC。最低组置信度在 MATH500 上掉到 0.486(区间 0.372 到 0.607),GSM8K 上是 0.520(区间 0.463 到 0.575),两个基准都落在随机水平。
机制:谱是 1/f 的,取最小值必然偏向长链
为什么长度会混进来?论文测了置信度信号的功率谱。正确链与错误链的谱斜率在 MATH500 上是 -0.80 和 -0.76,GSM8K 上是 -0.70 和 -0.68,都接近 1/f 过程的 -1,意味着方差主要堆在慢漂移里。低通滤波器几乎削不掉这种方差,于是链越长,平滑后取最小值越容易碰到低点,下限随长度下走。
论文用「同一条链内部的前缀」把链间差异消掉:前缀从 2048 增长到 6144 token 时,MATH500 上最低组置信度下降 0.74(0.65 到 0.84),GSM8K 下降 0.40(0.33 到 0.48);把同一条链的 token 打乱(值不变、谱变平),降幅缩到 0.15;只把傅里叶相位随机化(谱完全保留),降幅是 1.10 和 0.75。对照白噪声:平均 w 个样本会让标准差缩到约 1/√w,w=2048 时约 45 倍,最小值几乎不动;1/f 信号不同,慢漂移能穿过滤波。
谱里还剩一点信号,但带不动投票
有一条残余信号是长度解释不了的:错误链的谱更平,快波动占比更高——两者斜率之差在 MATH500 上是 0.041(区间 0.018 到 0.064),GSM8K 上是 0.020(0.007 到 0.032)。约 0.06 cycles/token(周期约 18 个 token)的频带在正确链上功率更高,AUROC 0.64(0.53 到 0.74)和 0.57(0.52 到 0.62);周期两三 token 的最快频带则在错误链上更强,AUROC 0.38(0.27 到 0.49)和 0.39(0.34 到 0.44)。论文说这可能意味着正确链的节奏更稳,但也明说未经进一步验证。
论文还测了「反思词」的响应:模型写出 Wait 时置信度骤降约 1.3 个标准差(MATH500)、1.0(GSM8K),约 50 个 token 后恢复;错误链的反思词更多,每千 token 6.7 对 5.8、7.7 对 6.9。
问题是残余信号太弱。高频能量检测器(不需要训练)在 MATH500 上保住 0.554、GSM8K 上 0.549;学出来的滤波器组在 GSM8K 上 0.601、MATH500 上只有 0.509。把高频分和长度分等权相加,AUROC 没有一个基准能超过单用长度分。
早停也没赢过「少采几条链」
论文把提前停止改写成变化检测:用几条热身链定出置信度的基线均值和标准差,再用经典的 CUSUM 累积和检测器盯着标准化后的置信度,跌破阈值就停。结论在 MATH500 上很清楚——花一半的钱,直接少采样几条链拿到 90.0%,检测器这边只有 88.4%;花七成钱时,少采样 90.8%,CUSUM 89.4%,箱式滤波器 88.7%。GSM8K 上从 40% 到 70% 成本区间内,所有方法差距不超过 0.6 个百分点。固定 token 上限明显更差,它砍掉的正是那些本该投出正确答案的长链。
这篇论文没说什么
得说清楚边界。作者用的是 15 亿参数的蒸馏模型和两个数学基准,MATH500 上好链坏链混杂的题只有 31 道,区间因此偏宽。DeepConf 原文的收益来自大得多的模型和更难的竞赛题,那里链更长、长度与正确率的关系也可能不同。论文的原话是:它并不显示置信度筛选在那种设定下失效,只显示在自己的数据上这个分数没有超出长度的贡献。它也只用一个温度、一个 k 值。
所以呢
这篇论文的价值不在于推翻谁,在于它把一条被广泛复用的工程惯例拆开验了一遍:一个看起来在测「模型有多确信」的分数,可能只是在测「这条链有多长」。论文的建议很具体——以后做置信度链选择,应把链长作为基线一并报告,并给出剔除长度后的 AUROC,否则长度效应会冒充成置信度效应。
对做推理服务的人,这也意味着一个更朴素的降本思路值得先试:与其部署一套复杂的置信度调度,不如先少采样几条链,看钱省在哪儿。