引言
大语言模型(LLM)的推理效率是部署落地的关键瓶颈。一个70B参数的模型在纯fp16推理下需要约140GB内存,而生成一个token的延迟可达数十毫秒。
一、KV Cache
在Transformer的Autoregressive生成过程中,每个token都需要与所有历史token进行Attention计算。KV Cache通过缓存已计算的Key和Value矢量,将复杂度从O(n·d)降至O(d)。
KV Cache Size = 2 × n_layers × n_heads × head_dim × seq_len × precision
以LLaMA-2-70B为例(80层,64头,head_dim=128,bf16),单文最长4096 token,KV Cache高达约60GB。
二、PagedAttention
vLLM提出的PagedAttention照效操作系统的虚拟内存机制,将KV Cache分为固定大小的block(16个token),通过block table映射实现存储管理。内存利用率从约40%提升到接近100%,throughput提升2~4倍。
三、Continuous Batching
传统Static Batching要求同一批次无前通用token才能生成,导致丢失计算。Continuous Batching(Iteration-Level Scheduling)允许decode时动态提及新请求,一旦某个请求的生成完成,新请求立即被插入批处理,减少GPU闲置。
四、Speculative Decoding
Speculative Decoding概念是借助小模型(Draft Model)预测大量token,然后用大模型一次性验证。算法流程:(1)Draft模型生成γ个token;(2)Target模型同时验证γ+1个token;(3)逆序通过target probability评估接受。
每step平均接受的token数:
[accepted] = (1-α^(γ+1))/(1-α)
当α=0.8,γ=5时,每step平均接受3.36个token,速度提升约3x。生成质量与Greedy生成完全相同(target model精确验证)。
五、量化技术栈
GPTQ:基于Optimal Brain Surgeon理论的遗传矩阵解析折每个权重i,4-bit量化同减小4x内存,速度提升1.5x。
AWQ:Activation-Aware,认为显著channel的重要性不同,保留salient weights精度实现更佳的3-bit/4-bit量化。
bitsandbytes NF4:Normal Float 4-bit,与QLoRA配合使低比特精度训练成为可能。
六、Flash Attention
Flash Attention通过IO-aware Tiling将Attention计算分到SRAM,避免中间鏡像寫入HBM,HBM access数从O(n²·d/M)。效果:速度提升2~4x,内存削减约8x。
七、推理框架对比
vLLM:PagedAttention内存管理,throughput高,但只支持单机推理。
TensorRT-LLM:in-flight batching + TensorRT离线优化,单GPU速度最佳,0.3-3.8x提升。
Triton LLM Engine:Tensor Parallelism + Pipeline Parallelism夜间支持,业界对架较难。
八、实战建议
- 单机推理:vLLM + AWQ 4-bit + Speculative Decoding
- 多机高并发:TensorRT-LLM
- 低延迟:TensorRT-LLM + FP8 + Flash Attention-2
- 灵活部署:llama.cpp + GGUF量化
九、总结
当前LLM推理优化从量化侧、内存管理侧、计算算子侧、批处理调度侧的技术都在急剧进步。最终收的提升是全链路效率的非线性提升。经典方案:量化(4-bit)+KV Cache+Flash Attention-2+Speculative Decoding的综合应用。

发表评论 取消回复