MAGICDEC: BREAKING THE LATENCY-THROUGHPUT TRADEOFF FOR LONG CONTEXT GENERATION WITH SPECULATIVE DECODING

作者/机构: Ranajoy Sadhukhan1∗, Jian Chen1∗, Zhuoming Chen1, Vashisth Tiwari1, Ruihang Lai1, Jinyuan Shi2, Ian En-Hsu Yen2, Avner May3, Tianqi Chen1, Beidi Chen1
1卡内基梅隆大学 2Moffett AI 3Together AI

A1 主要贡献

本文旨在解决在长上下文应用(如交互式聊天机器人、文档分析和智能体工作流)中,同时实现大型语言模型(LLM)服务的低延迟和高吞吐量这一挑战。

核心问题:
传统的推理优化技术面临一个固有的权衡:
1. 投机解码(Speculative Decoding, SD):通过使用一个较小的草稿模型预测多个 token,再由目标模型验证,可以无损地降低延迟。然而,现有观点认为,当批量大小(batch size)增加时,验证成本会急剧上升,导致 SD 效率低下,因此不适用于高吞吐量场景。
2. 批处理(Batching)技术:如 vLLM 等通过增大批量大小来提高吞吐量,但这通常以牺牲每个 token 的延迟为代价。
3. 模型压缩技术:如量化、剪枝等可以同时改善延迟和吞吐量,但通常会牺牲模型输出的质量。

基于这些挑战,本文提出了一个核心问题:我们能否在不牺牲准确性的前提下,同时提高长序列推理的吞吐量和延迟?

研究目标与创新点:
本文对上述问题给出了肯定的回答,并指出对于中长序列的大批量推理场景,投机解码(SD)可以被有效地用来同时改善吞吐量和延迟。这一结论基于以下几个关键洞察:

  1. KV Cache 成为大批量长上下文场景下的主要瓶颈:在长上下文和大批量推理中,KV Cache 的内存占用会超过模型参数,并随批量大小线性增长。尽管计算量也随之增加,但现代 GPU 极高的峰值 FLOPS 与内存带宽比导致 KV Cache 的加载时间增长远快于计算时间,使 LLM 推理变得更加受内存带宽限制(memory-bound)。

    图1:(a) LLaMA-3.1-8B 推理时间分解与批量大小的关系(输入长度=16384,硬件=8xH100s)。(b) 在32k提示长度下,自回归解码和基于StreamingLLM的自投机解码在LLaMA-3.1-8B上的吞吐量与每token延迟的关系。(c) LLaMA-3.1-70B的草稿token接受率比较。使用Top-k注意力进行自投机解码比其他草稿-目标对实现了更高的接受率,即使在内存比例更低的情况下也是如此。x轴表示草稿模型内存占用与目标模型内存占用的比率。
    图1:(a) LLaMA-3.1-8B 推理时间分解与批量大小的关系(输入长度=16384,硬件=8xH100s)。(b) 在32k提示长度下,自回归解码和基于StreamingLLM的自投机解码在LLaMA-3.1-8B上的吞吐量与每token延迟的关系。(c) LLaMA-3.1-70B的草稿token接受率比较。使用Top-k注意力进行自投机解码比其他草稿-目标对实现了更高的接受率,即使在内存比例更低的情况下也是如此。x轴表示草稿模型内存占用与目标模型内存占用的比率。

  2. SD 的有效性取决于一个“临界序列长度”:现有研究认为 SD 在大批量下效率低,但这只适用于短序列。当序列长度超过一个“临界长度”后,即使在非常大的批量下,KV Cache 的加载成本也会成为主导因素。此时,验证步骤的计算开销相对于 KV 加载成本变得不那么重要,使得 SD 再次变得高效。

  3. 压缩 KV Cache 是更有效的投机策略:为了在大批量处理中最小化昂贵的验证步骤,高 token 接受率至关重要。研究发现,相比压缩模型权重(使用更小的草稿模型),压缩草稿模型的 KV Cache 能在相似的内存约束下实现显著更高的接受率。如图 1c 所示,仅压缩模型权重难以达到 90% 的接受率,而 KV 压缩则可以轻松超过这一水平。

本文贡献总结:
基于以上洞察,本文提出了 MagicDec 框架,证明了与普遍认知相反,通过利用 KV 压缩,投机解码(SD)即使在大批量场景下也能实现显著的加速。

A3 背景知识/关键Observation/设计原则

本节介绍了对投机解码和 LLM 推理性能的理论分析。首先回顾投机解码加速的数学公式,并确定影响它的关键因素。其次,分析长上下文场景中的 LLM 推理,重点说明了使投机解码能够在大批量下实现加速的瓶颈转移。最后,论证了在长上下文、大批量的场景下,基于压缩 KV 的草稿模型是实现高加速比的必要条件。

3.1 投机解码加速分析

3.2 KV Cache 瓶颈使投机解码加速成为可能

本节分析了随着序列长度和批量大小的增加,推理瓶颈如何转移,以及这种转移如何影响第3.1节中讨论的因素。

3.3 压缩 KV Cache 实现更高效的投机

本节解释了为什么在长上下文、大批量场景下,KV 压缩比轻量级草稿模型更受青睐。主要有两个原因:

A2 方法细节

本节介绍了 MagicDec 为确定正确草稿策略而执行的权衡分析。在第3.3节中,我们已经阐述了在这种情况下采用基于压缩 KV 的草稿策略的原因。然而,要有效利用 KV 压缩,我们需要考虑三个不同因素:(a)草稿模型大小,(b)草稿 KV Cache 大小或草稿 KV 预算,以及(c)KV 压缩算法。所有这三个因素都必须被考虑,以在草稿成本和接受率之间达到完美的平衡。

4.1 基于压缩 KV 草稿的加速通用公式

4.2 草稿模型大小选择

4.3 草稿 KV 预算选择

4.4 KV 选择策略的比较研究

A4 实验环境

A4 实验结果

5.1 端到端加速

5.2 比较不同的 KV 压缩方法

5.3 消融研究

A5 结论

结论总结
优化 LLM 推理的吞吐量和延迟极具挑战性,尤其是在长上下文、大批量场景下。本文的分析揭示,与现有误解相反,投机解码在这种场景下是有益的,并且其效用会随着批量大小的增加而增强。在寻找有效的草稿策略时,我们发现,在相同的内存预算下,KV 压缩比模型压缩更容易实现更高的接受率,这一优势在大批量和长上下文长度的场景下更为显著。基于这些洞见,我们探索了不同的 KV 压缩算法作为草稿策略,并提出了一个感知瓶颈的通用框架,以根据任务、批量大小和序列长度选择合适的草稿策略。

局限性与未来工作
* 局限性:MagicDec 仅关注长上下文 LLM 服务的解码性能,而预填充(prefill)阶段在这些场景中也同样充满挑战。此外,MagicDec 在高端 GPU 上往往能取得更好的加速效果,因为它们具有更高的 FLOPS 与内存带宽比和更大的 HBM 容量。
* 未来工作
* 可以将 MagicDec 与专注于提升预填充性能的工作(如【2, Mnemosyne: Parallelization strategies for efficiently serving multi-million context length llm inference requests without approximations, 2024, arXiv】、【48, DistServe: Disaggregating Prefill and Decoding for Goodput-Optimized Large Language Model Serving, 2024, arXiv】)相结合,以同时改善预填充和解码性能。
* 可以探索在卸载(offloading)和分布式设置中采用投机解码,以减少通信开销,从而更好地利用普通设备的资源。

A6 附录

A.1 系统实现

A.2 在 A100 上的各种批量大小和上下文长度的结果

A.3 与 MLC-LLM 结果的比较

A.4 SnapKV 和 StreamingLLM 的进一步结果

A.5 Qwen 和 Mistral 模型的结果

A.6 TinyLLama1.1B-LLaMA2-7B-32K 结果