SpecQuant用同模型多档量化做投机解码,Qwen2.5-7B加速35–43%精度几乎不掉

SpecQuant: Speculative Decoding with Multi-Parent Quantization for Adaptive LLM Inference

Harish KB, Jagadeeswaran M, Pradheep P, Yuvanesh S, Sivakumar T

cs.LG

2026-09-18

从同一份Qwen2.5-7B切出INT4/FP8/FP16,按提示长度和句法路由,低精度当草稿做投机解码。相对常规解码加速35.2%到42.6%,准确率只掉0.1到0.2点。

这篇在解决什么

本地跑 7B 级模型,消费级机器经常同时卡两件事:显存装不下 FP16,以及逐 token 自回归太慢。量化把权重压到 INT4 或 FP8,投机解码(speculative decoding)用一份更便宜的草稿一次猜多个 token、再让大模型并行核验。两条路各自能用,叠在一起就别扭:量化要选精度,投机解码通常要另训或另备一份 draft,两套权重对不齐,接受率一掉,加速就吐回去。

自适应推理里的 early exit、layer skipping 能按输入难度少算层,但多数要改结构或再训练。VIT 这篇短会论文想走更省事的路径:不训练、不另找 draft 架构,从同一份 Qwen2.5 切出多档量化,按提示表面难度选档,再用低精度草稿给父模型做核验。

方法

底座是 Qwen2.5-7B-Instruct 的 FP16 权重,经训练后量化(post-training quantization)得到三档所谓「父模型」:

路由发生在真正解码之前,用三个表面特征估复杂度:输入 token 数、句法树深度、命名实体密度。短、句法浅的进 Q4,中等进 Q8,长或结构绕的进 Q16。高复杂度那一档跳过投机,Q16 按常规自回归生成;只有低、中复杂度进入草稿-核验循环。

核验公式是标准 Leviathan 式:草稿先吐一段候选,父模型一次核对,整段一致就收下,从第一个分歧处由父模型改写再开下一轮。关键设计选择是草稿和父模型来自同一套基权重,只差量化精度。作者赌的是分布更近,接受率会高于另训的小模型,也就不必维护独立 draft。这个形状接近 Zhang 等人 2023 年的 Draft & Verify 自投机,只是草稿换成了量化副本,外加一层提示路由。

硬件侧有放置策略:VRAM 够就把草稿和父模型都放 GPU;VRAM 紧则父模型留 GPU、草稿放到 CPU 出候选;没 GPU 就全 CPU。这是部署胶水。附录指向 GitHub 仓库 HyperKuvid-Labs/SpecQuant。

结果

评测只报了 Qwen2.5-7B-Instruct,对照是「正常解码」(未量化、未投机)。三套任务如下。

任务基线时延SpecQuant加速基线准确率SpecQuant接受率
MMLU4.07s3.01s35.2%72.5%72.3%66.1%
Alpaca Eval 子集6.42s4.50s42.6%75.0%74.9%60.9%
GSM8K8.83s6.43s37.3%70.0%69.9%57.9%

平均时延降 38.4%,准确率掉 0.1 到 0.2 点,比摘要里写的「不超过 2%」松得多。token 接受率落在 57.9% 到 66.1%。路由统计按三套基准平均:约 28% 低复杂度走 Q4,52% 中复杂度走 Q8,20% 高复杂度走 Q16,合计约 80% 的提示没用满精度。

论文没有和 EAGLE、Medusa、Draft & Verify 对照,也没有「只量化、不投机」的消融。GPU 型号、batch size、生成长度都没写。Table I 的 35.2% 和 42.6% 在后文又被写成低/中复杂度档的加速,同一组数字承担了两套解释。

为什么重要

对要在消费级机器上跑 7B 的人,这条路的门槛确实低:一份权重、PTQ 出多档、启发式路由、量化副本当草稿。不需要训 draft,也不改网络结构。相对朴素解码,35% 到 43% 的加速能感觉到;和成熟投机解码常见的约 2 倍不在一个量级。

这是把量化、路由、自投机叠在一起的渐进组合,发在 IEEE ICPC2T(电力、控制与计算会议)上,五页学生短文。能当一个可复现的本地部署配方去试,别把它读成新的解码算法。

局限与存疑

作者几乎没单列局限。读下来站不住的地方比正文愿意承认的多。

对照太弱。加速是相对常规解码,不是相对已经量化的 INT4,也不是相对已经投机的 EAGLE。多出来的那三成时延,有多少来自量化本身、多少来自投机、多少来自把难题直接丢给 FP16,拆不开。

路由没有消融。长度、句法、实体密度怎么加权、阈值怎么定,论文没给。高复杂度约 20% 完全不做投机,这一档的端到端加速被平均吃掉了。

数字互相打架。同一组 35.2/42.6 既是三个 benchmark 的加速,又是低/中复杂度档的加速。Qwen2.5-7B-Instruct 在 GSM8K 上的公开数字远高于 70%,这里的 70.0% 更像子集或偏弱的评测协议。Alpaca Eval 写的是 subset,没写对哪个参考模型、是不是 win rate。

内存账也对不严。三档量化如果同时驻留,和「一份共享权重」对不上;如果按路由换入换出,第一次切换的加载开销没报。草稿究竟是更低一档量化,还是同档的另一份副本,正文两处说法拧着。

术语

原文与代码

社区讨论

相关论文

全部论文解读