Speculate Deep and Accurate: Lossless and Training-Free Acceleration for Offloaded LLMs via Substitute Speculative Decoding

作者/机构: Pei-Shuo Wang1, Jian-Jia Chen1, Chun-Che Yang1, Chi-Chih Chang2, Ning-Chi Huang1, Mohamed S. Abdelfattah2, and Kai-Chiang Wu1
1 National Yang Ming Chiao Tung University 2 Cornell University

A1 主要贡献

大型语言模型(LLMs)的巨大模型尺寸对在显存有限的消费级GPU上的部署构成了挑战。虽然模型压缩和参数卸载是解决显存限制的常用策略,但压缩会降低模型质量,而卸载虽能保持质量却受困于缓慢的推理速度。推测解码(Speculative decoding)为加速参数卸覆提供了一个有前景的途径,它利用一个快速的草稿模型提出多个草稿词元(token),然后由目标LLM通过单次前向传播并行验证这些词元。这种方法减少了涉及卸载权重传输的前向传播中耗时的数据传输。现有方法通常依赖于同一家族的预训练权重,但对于定制训练的模型需要额外的训练来对齐。此外,涉及草稿模型训练的方法通常只能带来有限的加速效果,这是因为与目标模型的对齐不足,无法实现更长的词元接受长度。

为了应对这些挑战并实现更大的加速,本文提出了 SUBSPEC,一种即插即用、无损且无需训练的方法,旨在加速参数卸载。SubSpec 通过从目标LLM的卸载部分生成低比特量化的替代层来构建一个高度对齐的草稿模型。此外,该方法共享剩余的GPU驻留层和KV-Cache,进一步减少了显存开销并增强了对齐度。

以下是本文的主要贡献:
* 分析与发现:本文分析指出,在参数卸载场景中,与草稿模型的速度相比,其对齐度和草札深度(draft depth)的主导作用更为关键。
* 提出SUBSPEC方法:提出了一种即插即用且无需训练的方法(SUBSPEC),该方法通过使用共享组件和低比特替代层来构建高度对齐的草稿模型,从而最小化了VRAM开销。
* 草稿树构建优化:引入了对草稿树构建的改进,例如概率锐化(probability sharpening),以有效利用更深的树并提高接受长度。
* 高效系统实现与评估:开发了一个高效的系统来加速卸载。使用该系统,像Qwen2.5 7B这样的流行模型在单个消费级GPU上(8GB VRAM限制下)在不同基准测试中达到了每秒25个词元的生成速度,与基线卸载推理相比实现了超过10倍的加速。


图1: 草稿模型特性对推测解码性能的影响,测试于MT-Bench [46] 基准。左图:不同草稿模型实现的最大加速比随树状推测解码中的草稿深度变化。右图:在Qwen2.5 7B(8GB GPU显存限制)下,不同方法在最优草稿深度下的平均每词元推理延迟。SubSpec利用更高的草稿模型计算量来最小化目标模型参数的昂贵内存传输。

A3 背景知识

2.1 参数卸载

参数卸载的原理与瓶颈。参数卸载是推理框架【【索引编号14,ggerganov/llama.cpp: Port of facebook’s llama model in c/c++,2023,https: //http://github.com/ggerganov/llama.cpp face accelerate,2022,https://huggingface.co/docs/accelerate/ index】,【索引编号21,Efficient memory management for large language model serving with pagedattention,2023,Proceedings of the ACM SIGOPS 29th Symposium on Operating Systems Principles】】常用的一种技术,用于管理内存需求超过GPU容量的模型。该策略主要将模型参数存储在CPU内存中,仅在计算需要时才将其传输到GPU。当GPU完成特定层的计算后,其参数可能会被丢弃或被后续层所需的参数覆盖。通常,框架会旨在将尽可能多的模型层直接保留在GPU内存中,只卸载其余部分以最小化数据传输开销。

参数卸载的性能影响。这些在CPU和GPU内存之间频繁的参数传输会引入相当大的延迟,因为GPU操作常常需要等待数据。这种延迟显著影响了总推理时间,使得性能对PCIe带宽的限制高度敏感。

现有优化方法的局限性。虽然像Deepspeed-inference【【索引编号3,Deepspeedinference: enabling efficient inference of transformer models at unprecedented scale,2022,SC22: International Conference for High Performance Computing, Networking, Storage and Analysis】】和FlexGen【【索引编号34,Flexgen: High-throughput generative inference of large language models with a single gpu,2023,International Conference on Machine Learning】】这样的技术通过大批量处理提高了吞吐量,但这类方法不适用于延迟敏感的在线推理场景,因为在这些场景中小批量处理是标准做法。在这种情况下,每次前向传播仍然受到PCIe总线数据传输瓶颈的限制。

2.2 推测解码

推测解码的基本原理。推测解码【【索引编号7,Accelerating large language model decoding with speculative sampling,2023,arXiv preprint arXiv:2302.01318】,【索引编号22,Fast inference from transformers via speculative decoding,2023,International Conference on Machine Learning】】通过在每次迭代中生成多个词元(而不是一个)来加速目标自回归LLM。在每次迭代中,一个更小、更快的草稿模型会快速生成一组草稿词元。然后,这些草稿词元由目标模型(即被加速的原始LLM)通过一次前向传播并行评估。被目标模型确认的词元随后被接受,从而减少了生成完整上下文所需的总前向传播次数。平均接受长度(τ)是每次迭代中接受的草稿词元的平均数量。

树状解码的进展。Miao等人通过树状解码进一步发展了这种方法。该方法在保持计算效率的同时,提高了每次迭代接受的词元数量。树状解码维护一个层次化的词元结构,而不是平行的束。多个分支的词元路径被展平并在一次前向传播中进行评估。位置编码和注意力掩码被修改以保留树结构的依赖关系。后续工作【【索引编号6,Medusa: Simple llm inference acceleration framework with multiple decoding heads,2024,arXiv preprint arXiv:2401.10774】,【索引编号10,Sequoia: Scalable and robust speculative decoding,2025,Advances in Neural Information Processing Systems】,【索引编号23,EAGLE: Speculative sampling requires rethinking feature uncertainty,2024,International Conference on Machine Learning】,【索引编号24,EAGLE-2: Faster inference of language models with dynamic draft trees,2024,Empirical Methods in Natural Language Processing】】在此基础上进行了构建。这些工作开发了先进的基于树的推测解码策略,在不需要卸载的情况下,报告的速度比标准自回归解码快2倍到4倍。

推测解码在卸载场景中的应用及局限。最近的方法展示了使用SD加速卸载场景的好处。SD通过减少目标模型所需的总前向传播次数,显著降低了数据传输开销,且不损失质量。例如,SpecExec【【索引编号35,Specexec: Massively parallel speculative decoding for interactive llm inference on consumer devices,2025,Advances in Neural Information Processing Systems】】表明,每次迭代使用更大的预算(从128到2048个草稿词元)进行推测和验证可以实现更高的平均接受长度和额外的加速。相比之下,Dovetail【【索引编号45,Dovetail: A cpu/gpu heterogeneous speculative decoding for llm inference,2024,arXiv preprint arXiv:2412.18934】】专注于在异构设备上加速较小的LLM,通过将Llama-2 7B的部分计算卸载到CPU来运行。Dovetail的作者还训练了一个比EAGLE【【索引编号23,EAGLE: Speculative sampling requires rethinking feature uncertainty,2024,International Conference on Machine Learning】】更大的草稿模型以实现更好的对齐。这些技术展示了显著的加速效果。这种加速来自于选择中等规模、准确的草稿模型并推测更深的词元树。然而,这些方法要么假设能够获取到同一系列中兼容的较小模型,要么需要进行微调来对齐草稿和目标分布。

A3 关键Observation与设计原则

3.1 理论加速分析

自回归解码与推测解码的时间消耗。本小节推导了推测解码(SD)相对于自回归解码(AR)的理论加速比,旨在阐明影响SD性能的因素,并突出标准(模型完全驻留GPU)与参数卸载推理场景所带来的不同优化挑战。首先,我们确定基于AR的目标LLM生成词元所需的时间。使用自回归解码生成N个词元所需的总时间$T_{AR}^N$与词元数量成正比,因为每个词元都需要目标模型进行一次前向传播:

$$T_{AR}^{\mathcal{N}} = \mathcal{N} \cdot t_{Target},$$

其中$t_{Target}$代表目标模型单次前向传播的延迟。

推测解码的时间消耗公式。相比之下,使用推测解码(SD)生成N个词元所需的总时间$T_{SD}^N$由以下公式给出:

$$T_{SD}^{\mathcal{N}} = \mathcal{N} \cdot \frac{\mathcal{D} \cdot t_{Draft} + \gamma \cdot t_{Target}}{\tau}, \quad 1 \leq \tau \leq \mathcal{D} + 1,$$

其中,$t_{Draft}$是草稿模型单次前向传播的延迟,D是草稿深度。在每次迭代中,草稿模型运行D次前向传播以生成深度为D的草稿词元序列或树(即“推测”)。然后,目标模型对所有草稿词元执行一次前向传播,检查其正确性(即“验证”)。因子$\gamma$反映了这次并行验证相对于正常AR前向传播$t_{Target}$的相对成本(通常在$1 \le \gamma \le 2$之间)。术语$\tau$被称为平均接受长度,表示每次迭代接受的词元平均数(可能包括从最后一个接受的词元派生的一个奖励词元,因此$1 \le \tau \le D + 1$)。

理论加速比公式。理论加速比即为$T_{AR}^N/T_{SD}^N$。结合公式(1)和(2)可得:

$$ \frac{T_{A R}^{\mathcal{N}}}{T_{S D}^{\mathcal{N}}}=\frac{\tau \cdot t_{Target}}{\mathcal{D} \cdot t_{Draft}+\gamma \cdot t_{Target}}=\frac{\tau}{\frac{\mathcal{D} \cdot t_{Draft}}{t_{Target}}+\gamma}, \quad 1 \leq \tau \leq \mathcal{D}+1. $$

不同场景下的性能权衡。公式(3)揭示了在选择草稿模型及其草稿深度(D)时的一个关键权衡。在标准设置中,目标延迟$t_{Target}$和推测开销$D \cdot t_{Draft}$都会影响分母。因此,增加草稿深度(D)以提高$\tau$必须与推测开销的线性增长相平衡。这种平衡通常倾向于选择更小、更快的草稿模型($t_{Draft} < t_{Target}$)和适度的D,尽管这类模型通常与目标的对齐度较低,可能会限制可达到的$\tau$。相反,在参数卸载场景中,由于数据传输显著增加了$t_{Target}$,这种优化格局发生了巨大变化。此时,推测延迟($D \cdot t_{Draft}$)相对于目标验证成本($\gamma \cdot t_{Target}$)的影响减小。因此,最大化平均接受长度($\tau$)以最小化昂贵的目标模型前向传播频率变得至关重要。这一优先级有利于选择与目标对齐度更高、上下文质量更好的草稿模型,即使它们的$t_{Draft}$更大,因为减少对昂贵目标模型的调用会带来更大的整体加速。

3.2 经验验证与高效草稿模型生成的动机

实验验证理论分析。为了通过经验证明推测解码(SD)在标准与参数卸载场景下的这些不同动态,我们以Qwen2.5 7B为目标模型进行了一项说明性评估。图2展示了两种代表性的现有草稿模型类型的性能:EAGLE-Qwen2.5*【【索引编号23,EAGLE: Speculative sampling requires rethinking feature uncertainty,2024,International Conference on Machine Learning】】,一个更小、通常更快的草稿模型;以及Qwen2.5 1.5B【【索引编号43,Qwen2.5-1m technical report,2025,https://arxiv.org/abs/2501.15383】】,一个来自同一家族的中等规模模型,可能提供更好的内在对齐度。图2也初步展示了我们提出的方法SubSpec,该方法将在下一节详细介绍 。


图2: 不同草稿方法在不同草稿深度下使用SD加速Qwen2.5 7B的性能比较,测试于MT-Bench基准。

实验结果与挑战。图2中呈现的结果证实了我们的理论加速分析(公式3):更快的EAGLE-Qwen2.5草稿模型在标准设置中表现最佳,因其开销低;而在卸载设置中,对齐度更好的Qwen2.5 1.5B模型通过获得更高的平均接受长度($\tau$)实现了更优的加速,此时巨大的$t_{Target}$占主导地位。这些经验发现突显了一个关键挑战:在卸载场景中最大化SD的益处需要高度对齐的草稿模型。这就给我们提出了一个实际问题:我们如何能高效地获得这样高度对齐的草稿模型,特别是对于定制或微调的LLM?

现有方案的局限性。虽然一些开源模型家族提供了不同规模的预训练模型,允许较小版本作为潜在高效且对齐的草稿模型,但对于定制训练或微调的LLM,这一选项通常不可用。为这类定制模型创建一个足够对齐的草稿模型通常需要额外的训练或蒸馏。这些过程会引入进一步的成本(计算、内存、数据和时间),阻碍了SD在许多实际部署中的广泛应用。

本文方法的动机。为了弥补这一差距,我们提出了一个实用且高效的替代方案:利用目标LLM本身的低比特量化版本作为草稿模型,并使其完全驻留在GPU中。这种方法利用了高效的无数据量化技术,无需训练数据集和资源密集型的训练运行。如后续第4节所述,我们的方法还结合了权重和KV-Cache共享,显著减少了VRAM开销,同时增强了草稿模型的对齐度。

A2 方法细节

4 Substitute Speculative Decoding (SubSpec)

SubSpec方法概述。我们介绍替代推测解码(Substitute Speculative Decoding,简称SubSpec),这是一种新颖的方法,能够在消费级GPU上实现高效的LLM推理,特别是当模型权重超过可用GPU内存时。SubSpec通过构建高度对齐、完全驻留在GPU上的草稿模型,并执行带有优化的树状推测解码来构建深层草稿树来实现这一目标。

SubSpec的核心设计。SubSpec通过为目标模型的卸载部分使用量化的“替代”层来构建草稿模型,同时草稿模型与目标模型共享GPU驻留的层和KV-Cache。这种设计创造了一个与目标模型高度对齐的草稿模型。通过使用这样的模型构建深层草稿词元树,它能获得极高的平均接受长度($\tau$),从而显著减少昂贵的数据传输,提升整体推理吞吐量。后续章节将详细介绍草稿模型的构建(4.1节)、对草稿树构建的适应性调整(4.2节),以及补充性的性能优化(4.3节)。

4.1 草稿模型构建

草稿模型驻留GPU的三大策略。SubSpec采用三种协同策略来确保草稿模型完全驻留在GPU上。这些策略包括使用替代权重、共享GPU驻留层以及采用共享的KV-Cache,如图3所示。


图3: 左图:SubSpec的草稿模型架构。SubSpec维护额外的低比特替代权重以将完整的草稿模型保留在GPU上。右图:SubSpec的共享KV-Cache生成流程。草稿模型重用目标模型的KV-Cache以实现更好的对齐度和内存效率。此图示为简单的顺序演示,实际中我们为树状解码维护一个扁平化的词元树。

用于卸载层的量化替代权重。SubSpec的一个核心原则是用轻量级的低比特“替代”层来替换目标模型的卸载层,这些替代层位于草稿模型中。这些替代层完全驻留在GPU上,并近似其对应目标层的功能。例如,在图3左侧,目标模型的第2层和第3层被卸载,而GPU驻留的草稿模型则使用了这些目标层的相应低比特替代层。我们使用快速、无数据的量化方法(例如,HQQ【【索引编号5,Half-quadratic quantization of large machine learning models,2023,https://mobiusml.github.io/hqq_blog/】】,HIGGS【【索引编号28 ,Pushing the limits of large language model quantization via the linearity theorem,2024,arXiv preprint arXiv:2411.17525】】)来生成这些替代层,这些方法需要极少的处理时间(在单个消费级GPU上,对于7B到70B参数的模型,处理时间在几分钟以内)。在推理过程中,这些量化层通过高度优化的低比特GEMM核【【索引编号5,Half-quadratic quantization of large machine learning models,2023,https://mobiusml.github.io/hqq_blog/】】,【索引编号16 ,Fast matrix multiplications for lookup table-quantized llms,2024,Findings of the Association for Computational Linguistics: EMNLP 2024】】实现了快速执行。

GPU驻留层的共享。草稿模型会重用那些保留在GPU内存中的目标模型层。例如,在图3左侧,第一层的权重是GPU驻留的,并由目标模型和我们的草稿模型共享。这种共享策略最大化了GPU资源的利用率,并且由于这些共享层使用了相同的权重,从本质上提高了草稿模型和目标模型之间的对齐度。

共享KV-Cache的优势。SubSpec的草稿模型与目标模型在结构上的相似性允许使用统一的KV-Cache。这种共享方法带来了显著的优势:与使用独立的缓存相比,它将KV-Cache的内存占用减少了一半,并通过确保两个模型在相同的上下文历史记录上操作来增强对齐。此外,共享KV-Cache消除了为草稿模型进行单独预填充阶段的需要,直接有助于加快整体推理速度。这个流程的演示如图3右侧所示。草稿模型在推测时扩展新的KV-Cache值,而目标模型在验证期间会覆盖这些值,以确保结果的一致性。

4.2 优化的草稿树构建

构建深度的上下文感知动态草稿树。SubSpec草稿模型的高对齐度(详见4.1节)使得探索更深的草稿树以实现更高的平均接受长度($\tau$)成为可能。因此,我们的采样方法扩展了已有的上下文感知动态草稿树方法,如EAGLE-2【【索引编号24,EAGLE-2: Faster inference of language models with dynamic draft trees,2024,Empirical Methods in Natural Language Processing】】和SpecExec【【索引编号35,Specexec: Massively parallel speculative decoding for interactive llm inference on consumer devices,2025,Advances in Neural Information Processing Systems】】,以支持这些更大的深度。

动态草稿树的构建过程。上下文感知的动态草稿树是通过在未来的D个时间步上用草稿模型迭代生成草稿词元来构建的。在这D次前向传播的每一步中,所有叶节点都被输入到草稿模型,每个叶节点都会产生潜在下一个词元的概率分布。每个潜在下一个词元的分数是其条件生成概率(来自草稿模型)与其父路径分数的累积乘积。得分最高的top-k个词元被选中,形成下一个时间步的k个新叶节点。这个迭代过程产生一个深度为D的草稿树,为目标模型验证提供k×D个草稿词元(不包括根词元)。


图4: 假阳性路径问题的演示(为简化,k=2)。正确的草稿词元可能因累积概率得分较低而被丢弃。每个词元括号中的数字表示累积概率得分。

解决累积概率散度问题。虽然探索比先前工作中通常使用的(通常$D \le 7$)更深的草稿树有望增加$\tau$,但在贪婪解码(目标温度=0)的构建过程中揭示了一个微妙的问题。我们观察到,由概率较低的词元发起的路径可能会通过后续的高概率选择累积出一个错误的高整体似然。这种现象可能导致“假阳性”路径的累积概率高于真正最优的路径(如图4所示)。这种散度在贪婪解码中是有问题的,因为它可能误导路径选择,可能导致正确序列的提前终止,从而限制了可实现的$\tau$。

草稿概率锐化。为了在贪婪解码下抵消这种散度,我们采用了草稿概率锐化技术。该技术包括在计算用于树采样的累积概率之前,对草稿模型的输出分布应用一个低温(= 0.2)。这种锐化使概率分布更加尖锐,减少了分配给初始概率较低的词元的概率质量。进一步的分析见附录D。

4.3 补充性性能优化

集成补充优化技术。除了用于草稿构建和采样的核心SubSpec框架外,我们还集成了两种补充技术以进一步提升性能和效率:

异步数据传输。我们通过将计算与数据移动重叠来减轻目标层的计算成本。当GPU处理当前层时,下一个所需卸载层的参数会从CPU内存中并发预取。与某些仅限于同一解码器块内相邻层的预取策略不同,我们的实现跨解码器层操作,最大化了潜在的计算隐藏。此外,这些预取的层被加载到相同的重用内存区域,以避免增加峰值内存使用。这种异步数据传输技术有效地隐藏了在对大型草稿树进行前向传播时,SD验证步骤的计算时间。

针对长上下文的分块预填充。预填充长的输入提示可能导致巨大的峰值GPU内存使用,因为中间激活的大小随上下文长度扩展,这限制了可以驻留在GPU上的目标模型层数。为了解决这个问题,我们采用了分块预填充,其中输入被分割成固定长度的块(例如,256个词元),并且KV-Cache是增量构建的。这种方法显著降低了预填充阶段的峰值内存。虽然Sarathi-Serve【【索引编号2,Taming throughput-latency tradeoff in llm inference with sarathi-serve,2024,18th USENIX Symposium on Operating Systems Design and Implementation (OSDI 24)】】主要引入此方法以最小化词元服务中的流水线气泡,但我们的改编特别关注于削减长上下文预填充阶段的峰值内存,以最大化目标模型层的GPU驻留率,从而进一步提高整体推理效率。

A4 实验环境

  • 评估基准:实验涵盖了五个不同的生成任务,与EAGLE【23】和Spec-Bench【41】的基准保持一致。这些任务包括:

    • 多轮对话(MT-Bench【46】)
    • 代码生成(HumanEval【9】)
    • 数学推理(GSM8K【11】)
    • 指令遵循(Alpaca【36】)
    • 摘要(CNN/Daily Mail【31】)
  • 硬件配置

    • GPU:RTX 4090
    • CPU:Intel i7-13700K
    • 总线:PCIe-4.0 x16
    • 内存:128GB DDR5 RAM
  • 模拟环境:为了模拟不同的消费级设备环境,实验中的GPU显存使用被程序化地限制在8GB、12GB和24GB。

  • 模型与软件配置

    • 对比方法:将SubSpec的端到端加速效果与EAGLE-2†以及Qwen2.5(7B, 14B, 32B)和Llama3.1(8B)家族的聊天模型进行了比较。
    • 评估参数:批量大小为1,在贪婪生成(目标温度=0)和随机生成(目标温度=0.6)两种模式下进行评估。
    • 公平性保证:所有方法均使用相同的上下文感知动态草稿树算法,不使用额外的树剪枝技术。在VRAM限制内,一部分目标模型的解码器层保留在GPU上。
    • 采样:所有SD方法均在每个数据集随机选择的20个相同样本上进行评估。由于基线(无SD的卸载)运行时间显著较长,仅使用前5个样本。
    • 关键参数配置

      • SubSpec: 低比特替代层使用HQQ量化到4位,组大小为64。
      • EAGLE-2: 使用其发布的默认参数(k = 10, D = 6)。
      • SubSpec & 预训练草稿模型: 树构建的top-k值设为k = 6。最优草稿深度(D)通过网格搜索确定(如图2所示),SubSpec为D=48,预训练模型为D=32。
    • 其他配置

      • 应用了分块预填充以防止内存溢出(OOM)并最大化GPU上的解码器层数。
      • 所有草稿模型都使用torch.compilemax-autotune配置执行。
      • 所有方法统一使用上下文长度为2048个词元的静态KV-Cache。

A4 实验结果

端到端性能

实验结果(见表1)展示了SubSpec的有效性和鲁棒性。SubSpec在各项任务中始终能达到接近30的平均接受长度($\tau$),并提供了最高的平均吞吐量。这一性能转化为在不同模型尺寸上10倍至12.5倍的加速,凸显了SubSpec的广泛适用性和显著的性能提升。

表1: 使用不同草稿模型的吞吐量和平均接受长度τ。L31代表Llama-3.1-Instruct,L32代表Llama-3.2-Instruct,Q代表Qwen-2.5-Instruct。None代表使用原始的自回归解码。目标模型名称下括号中的数字表示限制的VRAM大小。

SubSpec的效率进一步体现在,与使用目标模型同系列的小型草稿模型相比,它在无需任何额外训练的情况下,实现了额外的30%到50%的加速。这一优势强调了SubSpec增强的草稿对齐度在加速卸载场景中的关键作用。在随机设置(目标温度=0.6)下,所有SD方法的性能都有所下降。对SubSpec而言,这意味着加速比下降了约60%。尽管如此,SubSpec仍然保持了5.8倍到7.8倍的可观加速,显示了其即使在不太有利的生成条件下也具有的韧性和持续的有效性。在MT-Bench基准测试上对SubSpec进行五次独立运行,我们获得了0.101 tokens/sec的低标准差。此外,我们还在附录G中评估了推理模型在其他推理基准上的性能。

消融研究

我们对MT-Bench在8GB VRAM限制下进行了消融研究,以评估SubSpec各个组件的影响。结果详见表2。一个仅实现SubSpec核心概念(一个量化的、GPU驻留的草稿模型,仅对卸载部分使用“替代”层,并共享GPU驻留的目标模型层)的基线配置,实现了7.05倍的加速(19.54 tokens/s)。

表2: SubSpec组件对加速Qwen2.5 7B目标模型在MT-Bench上贪婪解码(8GB VRAM限制)的贡献的消融研究。性能以累积添加组件的方式展示。最后一行代表完整的SubSpec系统。

依次集成共享KV-Cache、草稿概率锐化和异步数据传输等额外增强功能后,性能得到了进一步提升。这些组件中的每一个都为吞吐量贡献了约7%到13%的增长。包含所有优化的完整SubSpec系统最终实现了9.15倍的加速和25.35 tokens/s的吞吐量。这些结果证实了SubSpec各组件的个体和集体效能。

A5 结论

本文解决了在内存受限的消费级GPU上使用参数卸载高效进行大型语言模型推理的挑战。我们的分析证实,一个高度对齐的草稿模型对于推测解码有效加速参数卸载至关重要。基于这一洞察,我们引入了SubSpec,一种新颖的无损且无需训练的技术。SubSpec通过为目标LLM的卸载部分利用低比特替代层,同时共享GPU驻留的组件,来构建一个对齐的草稿模型。评估表明,SubSpec在现实的内存限制下,对各种模型大小和基准都表现出鲁棒性,与基线卸载推理相比,实现了10倍到12.5倍的大幅平均加速。这些结果显著提升了在广泛可用的消费级硬件上本地部署大型、高质量LLM的可行性。

A6 附录

A 局限性

最低GPU内存要求。SubSpec具有更高的最低GPU内存要求。推测解码有效工作的一个普遍前提是整个草稿模型必须驻留在GPU上。SubSpec架构需要为卸载的目标模型层维护低比特替代品。对于Qwen2.5 7B,需要大约7.1GB的最低GPU内存,因此与某些替代的推测解码方法相比,能够驻留在GPU上的目标模型层数更少。尽管如此,SubSpec在所有基准测试中都表现出卓越的吞吐量。

量化粒度。我们的研究仅试验了用于替代层的4位量化。虽然这可能会影响草稿模型的对齐度,但更激进的方法(例如,2位或3位量化)可以进一步减少VRAM需求。这种VRAM节省可以允许战略性的内存重新分配,例如,将关键的草稿或目标模型层以完整的GPU精度保留。对草稿质量、VRAM使用和性能之间的这些权衡进行彻底探索,是未来研究的一个重要方向。

对模型架构的适用性。SubSpec主要适用于密集的LLM架构。将SubSpec应用于替代架构,如专家混合(MoE)模型,需要进一步的调整和研究。

B 扩展讨论

B.1 与独立量化模型的比较

质量与速度的权衡。虽然一个独立的4位量化模型可能完全适应GPU并消除卸载瓶颈,但这种方法不可避免地会改变输出并降低模型质量。相比之下,SubSpec完全避免了这种准确性上的权衡。

表3: Llama3.1 8B模型在MT-Bench(8GB VRAM)上各种量化方法的吞吐量比较。

SubSpec的定位。SubSpec使参数卸载变得实用。如表3所示,该方法将原始卸载从不可用的2.4 tokens/sec加速到在消费级硬件上可接受的24 tokens/sec以进行交互式使用。因此,我们将SubSpec定位为为那些不愿在模型质量上妥协的用户提供的简单、无需训练的解决方案。

B.2 为何选择基于树的推测解码

基于树的推测解码的优势。本研究专注于基于树的推测解码(SD),因为基于树的SD通常比顺序或自推测方法【【索引编号23,EAGLE: Speculative sampling requires rethinking feature uncertainty,2024,International Conference on Machine Learning】,【索引编号30,Specinfer: Accelerating generative large language model serving with tree-based speculative inference and verification,2023,arXiv preprint arXiv:2305.09781】,【索引编号41,Unlocking efficiency in large language model inference: A comprehensive survey of speculative decoding,2024,arXiv preprint arXiv:2401.07851】】能实现更高的平均接受长度($\tau$)。此外,高$\tau$值对于最小化目标模型的昂贵前向传播至关重要,尤其是在涉及显著数据传输开销的卸载场景中。

B.3 未来展望与技术进步

硬件与软件的协同发展。即将到来的互连技术进步(例如,PCIe 5.0和6.0),以及模型压缩方法和内核优化的持续进展,预计将进一步提升推理性能。每一代PCIe大致将原始带宽翻倍,从而将昂贵的目标模型数据传输时间减半。虽然更快的PCIe会降低目标模型的延迟,可能增加推测迭代的相对成本,但并行的GPU计算和内核效率的提高预计将按比例加速推测过程。因此,预计SubSpec将保持其相对于标准自回归解码的相对加速优势。这些技术趋势的结合预示着卸载与非卸载LLM推理之间的性能差距将逐步缩小。

C 相关工作

SpecExec。SpecExec【【索引编号35,Specexec: Massively parallel speculative decoding for interactive llm inference on consumer devices,2025,Advances in Neural Information Processing Systems】】是一种推测解码方法,它在树构建过程中引入了剪枝策略和早退机制以减少推测时间。然而,这些特性增加了计算复杂性,并由于剪枝产生的动态形状而阻碍了torch.compile的应用。我们在MT-Bench基准上对SpecExec进行了参数扫描,结果见表4。虽然SpecExec超过了8GB的VRAM限制,但SubSpec在不需要额外草稿模型的情况下实现了76%的加速。

表4: SpecExec使用Llama3.1 8B作为目标模型和Llama3.2 1B作为草稿模型在MT-Bench(贪婪解码)上的性能。“Budget”表示同时验证的词元数,“VRAM”表示峰值GPU内存。

Dovetail。Dovetail【【索引编号45,Dovetail: A cpu/gpu heterogeneous speculative decoding for llm inference,2024,arXiv preprint arXiv:2412.18934】】是一种推测解码方法,通过将目标计算的部分卸载到CPU,而草稿模型在GPU上,来加速消费级设备上的LLM推理。与GPU处理不同,CPU用于验证的计算量与草稿词元的数量成线性关系。这一特性通常限制了每次迭代可验证的草稿词元数量,以保持最佳加速效果。例如,Dovetail仅使用16个草稿词元进行验证,而我们提出的SubSpec并行验证了288个草稿词元。

自推测解码。自推测解码通过重用目标模型中的层来构建草稿模型,以减少参数开销并提高对齐度。虽然许多方法增加了新参数并需要额外训练【【索引编号6,Medusa: Simple llm inference acceleration framework with multiple decoding heads,2024,arXiv preprint arXiv:2401.10774】,【索引编号24,EAGLE-2: Faster inference of language models with dynamic draft trees,2024,Empirical Methods in Natural Language Processing】,【索引编号27,Kangaroo: Lossless self-speculative decoding for accelerating llms via double early exiting,2024,Advances in Neural Information Processing Systems】,【索引编号44,Generation meets verification: Accelerating large language model inference with smart parallel auto-correct decoding,2024,arXiv preprint arXiv:2402.11809】】,但最近的工作提出了无需训练的层跳过方法【【索引编号8,Clasp: In-context layer skip for self-speculative decoding,2025,arXiv preprint arXiv:2505.24196】,【索引编号29,Draft on the fly: Adaptive self-speculative decoding using cosine similarity,2024,arXiv preprint arXiv:2410.01028】,【索引编号40,Swift: On-the-fly selfspeculative decoding for llm inference acceleration,2024,arXiv preprint arXiv:2410.06916】】。这种区别为混合解决方案提供了机会。未来的工作可以探索将SubSpec与层跳过相结合,以产生一个具有更低VRAM需求和更快推理速度的草稿模型。

D 草稿概率锐化分析

不同草稿模型下的温度调整效果。表5讨论了在不同草稿模型类型中改变草稿温度的结果。第一个结果(第二行中表示为Self)是使用目标模型本身(即Qwen2.5 7B)作为草稿模型进行推测解码。虽然这种设置从内存和加速的角度来看没有实际意义,但该实验清楚地展示了4.2节中提到的累积概率散度问题,即即使是相同的模型,在使用默认的草稿树方法时也无法正确预测所有词元。

表5: 在Qwen2.5 7B目标模型上,不同草稿模型和温度在MT-Bench(贪婪解码)上的平均接受长度(τ),其中草稿温度1.0代表没有草稿概率锐化的基线。

锐化对不同对齐度模型的影响。通过降低草稿温度,平均接受长度($\tau$)从27.79增加到34.50,表明这种激进的锐化有效对抗了“假阳性”路径问题。对于SubSpec,$\tau$也从23.92增加到27.08。由于预训练模型和EAGLE-2的对齐度较低,该方法未能带来更好的$\tau$。

E 带异步数据传输的验证流水线

不同解码策略的执行时间线。图5展示了在普通自回归解码、推测解码以及带异步数据传输的推测解码中,验证步骤的执行时间线。底部图(c)说明了异步数据传输的工作原理。该方法将GPU计算(Q, K)与后续层的数据传输(将K, V权重加载到GPU)重叠,以隐藏推测解码中较高的验证计算时间。


图5: 不同解码策略的验证步骤执行时间线

F 时间分析:推测 vs. 验证

推测与验证阶段的时间平衡。在推测解码的每次迭代中,草稿模型运行D次前向传播以生成深度为D的草稿树(推测)。然后,目标模型对所有草稿词元执行一次前向传播,检查其正确性(验证)。我们比较了这两个阶段的平均执行时间,以及实际获得的吞吐量,如图6所示。SubSpec的最优吞吐量出现在D = 48时,此时推测和验证时间几乎相等。


图6: SubSpec在8GB VRAM限制下加速Qwen2.5 7B的执行时间分解(推测 vs. 验证)和平均接受长度(τ)。

G 推理模型的性能评估

SubSpec在推理任务上的鲁棒性。为了进一步证明无损且无需训练的方法SubSpec的鲁棒性,我们还评估了它在推理模型(DeepSeek-R1蒸馏变体【【索引编号12,Deepseek-r1: Incentivizing reasoning capability in llms via reinforcement learning,2025,https://arxiv.org/abs/2501.12948】】,QWQ【【索引编号38 ,Qwq-32b: Embracing the power of reinforcement learning,2025,https://qwenlm.github.io/blog/qwq-32b/】】)上的性能。该评估使用了领域内广泛使用的基准 :AIME 2024【【索引编号32,Aime,2024,https:// http://artofproblemsolving.com/wiki/index.php/AIME_Problems_and_Solutions/ 500【【索引编号17,Measuring mathematical problem solving with the math dataset,2021,https://arxiv.org/abs/2103.03874】】 ,GPQA Diamond【【索引编号33,Gpqa: A graduate-level google-proof q&a benchmark,2023,https://arxiv.org/abs/2311.12022】】和LiveCodeBench【【索引编号19 ,Livecodebench: Holistic and contamination free evaluation of large language models for code,2024,https://arxiv.org/abs/ 2403.07974】】。如表6所示,SubSpec在所有基准上都展示了超过10倍加速的有希望的结果。

表6: SubSpec与基线(None)在推理模型上贪婪解码的加速比和平均接受长度(τ)。DSL代表DeepSeek-R1-Distill-Llama,DSQ代表DeepSeek-R1-Distill-Qwen。目标模型名称下括号中的数字表示限制的VRAM大小。

H 补充评估配置

GPU驻留策略。我们尽可能多地将目标模型层直接保留在GPU内存中,以减少昂贵的数据传输开销。草稿模型和KV-Cache默认驻留在GPU上。

不同方法下的GPU驻留层数。以下详细说明了在VRAM限制内,各种方法下目标模型的GPU驻留层数。嵌入层和头部层默认驻留在GPU上:

  • Vanilla (基线卸载): 7B/8B目标模型有11层,14B目标模型有15层,32B目标模型有20层。
  • EAGLE-2: 7B/8B目标模型有7层。
  • 使用中等尺寸预训练草稿模型(1B/1.5B)的SD: 7B/8B目标模型有3层,14B目标模型有7层,32B目标模型有16层。
  • 使用大尺寸预训练草稿模型(7B)的SD: 32B目标模型有3层。
  • SubSpec: 目标模型的所有解码器层都被卸载,其4位量化替代品保留在GPU上。