引言

随着大语言模型从研究走向生产部署,推理效率成为决定服务成本的关键因素。一个 70B 参数的模型在 FP16 下仅需 140GB 显存,而生成一个 token 的计算涉及对整个模型权重的访问。如何在有限 GPU 资源上实现低延迟、高吞吐的推理服务,是现代 AI 基础设施的核心挑战。

一、Transformer 推理的计算特征

理解优化技术的前提是理解推理的两个阶段:

  • Prefill(预填充):并行处理输入 prompt,计算所有 token 的 KV 对,计算密集度高,GPU 利用率好
  • Decode(解码):逐 token 生成,每步只计算新 token 的 attention,属于 memory-bound 操作,GPU 算力利用率低

这两个阶段的截然不同的计算特性决定了优化策略的差异。Prefill 需要优化矩阵乘法的计算效率,而 Decode 需要优化内存带宽利用率。

二、KV Cache 与分页管理

K(Key)和 V(Value)矩阵是 Transformer Attention 机制中的中间产物。由于自回归生成时前面 token 的 KV 不会改变,可以缓存起来避免重复计算。但随着序列增长,KV Cache 的内存占用线性膨胀。

vLLM 的 PagedAttention 是这一领域的突破性工作。借鉴操作系统虚拟内存的分页思想:

# 传统方式:为每个序列预留最大长度的连续空间
# PagedAttention:将 KV Cache 分成固定大小的 block,按需分配
block_size = 16  # 每个 block 存 16 个 token 的 KV

# 逻辑块 → 物理块的映射表(类似页表)
block_table = {
    "request_0": [block_3, block_7, block_1],
    "request_1": [block_2, block_5],
}

优势:消除内存碎片、支持动态长度、实现内存共享(并行采样场景下共享 prefix KV)。实践中可节省 60-80% 的 KV Cache 内存。

三、Flash Attention:IO 感知的精确 Attention

标准 Attention 需要将完整的 Q、K、V 矩阵加载到 SRAM(快速但小)计算后再写回 HBM(慢但大)。Flash Attention 通过 tiling(分块)和 softmax 在线归一化,在不近似的前提下将 HBM 访问次数从 O(N²) 降低到 O(N²/d),其中 d 是 SRAM 大小。

Flash Attention 2 进一步优化了 Warp 级别的并行和序列长度的划分,在 A100 上实现接近理论峰值 FLOPS 的 Attention 计算。

四、模型量化:用精度换效率

量化是降低模型内存占用和加速推理的关键技术:

  • GPTQ:后训练量化,逐通道优化 per-channel scale/zero-point,4-bit 量化下精度损失极小
  • AWQ(Activation-aware Weight Quantization):识别并保护重要权重通道(由激活分布决定),在保护精度同时实现高效 4-bit 推理
  • GGUF/GGML:面向 CPU 推理的量化格式,支持 K-quant(Q4_K_M, Q6_K 等),在消费级硬件上运行 70B 模型成为可能

量化对推理性能的影响:

精度7B模型显存70B模型显存吞吐倍数
FP1614 GB140 GB1x
INT87 GB70 GB1.5x
INT43.5 GB35 GB2x

五、推测解码(Speculative Decoding)

推测解码是一个巧妙的优化:用一个小型、快速的 "draft model" 一次性生成 K 个候选 token,再用大模型并行验证。由于验证是并行的(与计算一个 token 的解码时间相同),如果 K 个 token 中有 M 个被接受,则单步时间从 "生成 K 个 token" 降低到 "生成 M/K 个有效 token / 1 步验证"。

在实践中,使用 7B 模型作为 70B 的 draft model,可实现 2-3 倍 的吞吐提升,且输出分布与原始大模型完全一致(无精度损失)。

六、Continuous Batching 与调度优化

传统的 Static Batching 会等待一批请求全部完成后才处理新请求。vLLM 和 TensorRT-LLM 采用 Continuous Batching(也叫 iteration-level scheduling),在每个 decode step 都可以插入新请求或移出已完成请求,显著提升 GPU 利用率。

七、部署实践:vLLM vs TensorRT-LLM

  • vLLM:基于 PagedAttention,生态丰富,支持大部分 HuggingFace 模型,部署简单
  • TensorRT-LLM:NVIDIA 官方方案,深度优化 kernel,性能极致,但编译部署复杂
  • SGLang:新兴方案,采用 RadixAttention 支持 prefix caching 和结构化输出

八、总结与展望

LLM 推理优化是一个系统工程,需要从内存管理(PagedAttention)、计算效率(Flash Attention)、模型压缩(量化)和并行策略(推测解码、continuous batching)多维度协同优化。随着模型规模持续增长,这些优化技术将在降低推理成本、使大模型普惠化方面发挥越来越关键的作用。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部