引言

随着大语言模型(LLM)从研究走向生产部署,推理效率已成为决定产品成败的核心瓶颈。一个7B参数的FP16模型推理时仅KV Cache就需数GB显存,而生成式自回归解码的串行特性使得GPU利用率极低。本文深入剖析LLM推理优化的四大核心方向——KV Cache优化、Continuous Batching、Speculative Decoding和量化部署,从原理到实战全面覆盖工业界最前沿的工程实践。

一、推理瓶颈的本质分析

LLM推理分为两个截然不同的阶段:

  • Prefill阶段:并行处理全部输入Token,相当于一次前向传播,属于计算密集(Compute-bound)。
  • Decode阶段:逐Token自回归生成,每次只计算一个新Token,属于访存带宽密集(Memory-bandwidth-bound)。

在实际Prefill-Decode交错的场景下,两个阶段的混合使得资源调度变得异常复杂。

1.1 显存墙问题

以Llama-2-7B为例,模型权重约14GB(FP16),而每个Token的KV Cache约需80KB。当序列长度达到8K时,仅KV Cache就消耗约500MB/请求;128K上下文时更是达到7.8GB/请求。显存不足直接限制了批处理能力与服务吞吐。

1.2 计算利用率问题

Decode阶段的算术强度(Arithmetic Intensity)极低——每个Token的矩阵-向量乘只产生少量计算但需要读取全部权重。当Batch Size=8时,A100 GPU的算力利用率通常不到15%,大量GPU计算单元处于空闲等待状态。

二、KV Cache优化——核心显存瓶颈的破解

KV Cache是解码过程中注意力机制的关键缓存,存储每个Token对应的Key和Value向量。优化KV Cache是提升吞吐的首要任务。

2.1 PagedAttention:虚拟内存管理KV Cache

vLLM引入的PagedAttention将KV Cache组织为非连续的物理块(类似操作系统虚拟内存分页),逻辑块号到物理块号的映射表维护在每个序列上。

核心优势:

  • 零碎片:物理块按需动态分配,消除传统连续分配导致的内外碎片。
  • 共享复用:Beam Search和System Prompt的KV Cache可在多个序列间共享,节省50-86%显存。
  • 按需分配:无需为最大序列长度预留空间,支持超长上下文。

vLLM实测结果显示,PagedAttention使吞吐量提升2-4倍,同时几乎消除内存浪费。

2.2 GQA/MQA对KV Cache的压缩

分组查询注意力(GQA)和多查询注意力(MQA)通过减少注意力头数量来压缩KV Cache:

  • MHA→MQA:KV Cache缩小8倍(8个头共享1组KV),但可能影响生成质量。
  • MHA→GQA:折中方案,Llama-2-70B采用GQA=8,Cache缩小4倍同时保持质量。

2.3 跨层KV Cache共享(Cross-Layer Sharing)

Google DeepMind提出的Cross-Layer Attention让相邻层共享同一组KV Cache,可将总KV Cache占用减少2-3倍。实验表明在短序列上质量损失极小,长序列需权衡。

三、Continuous Batching——吞吐量的革命性飞跃

传统静态批处理(Static Batching)要求同一批次中所有序列同步关闭,长序列等待短序列完成时GPU空转严重。Continuous Batching(也称迭代级调度)解决了这一根本问题。

3.1 迭代级调度机制

Orلأول提出的Continuous Batching在每个Decode迭代结束时动态调整批次组成:

  • 完成的请求立即移出批次,释放GPU显存。
  • 等待队列中的请求立即插入空缺位置,在下一迭代立即参与计算。
  • 批大小在整个推理过程中持续变化,GPU始终处于接近满载状态。

实测显示,在vLLM上Continuous Batching相比静态批处理可提升23倍吞吐。

3.2 与PagedAttention的协同

Continuous Batching需要高效管理不断进出批次的序列,PagedAttention的非连续物理块管理恰好提供了这一能力。两者结合实现了:动态批管理(Continuous Batching) 零碎片内存管理(PagedAttention)的完整解决方案。

3.3 Chunked Prefill优化

最新进展将Prefill和Decode在时间片上交错执行:长Prefill被切分为Chunk,与Decode迭代交错进行,避免GPU被长Prefill独占导致Decode延迟抖动。这确保了服务水平目标(SLO)的Tail Latency可控。

四、Speculative Decoding——用小模型加速大模型

Speculative Decoding(投机解码)是唯一能在算法层面突破串行解码瓶颈的技术,由Leviathan等人于2022年在Google提出。

4.1 核心思想

利用小型Draft Model快速生成Γ个候选Token(耗时τ),然后用大型Target Model一次性并行验证(耗时与验证单个Token相当)。这Γ 1个Token仅需约1个Token时间的计算量,实现Γ倍的加速上界。

关键在于验证阶段使用特殊的拒绝采样策略:当Draft Token的置信度不满足标准时,从纠正后的分布中重新采样一个Token。这保证了输出分布与原模型一致——这是Speculative Decoding区别于其他近似方法的核心保证。

4.2 接受率分析

接受率 α = 1 − KL( p ∥ q ),其中p是真实分布,q是Draft分布。当Draft Model与Target Model高度相关时,α可达0.8-0.9。实际加速比为:

Speedup = Γ × α / (1 τ × Γ)

当τ

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部