引言

大语言模型(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的综合应用。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部