DeepSeek-V4.1-Flash 在 vLLM 上:5 倍智能服务吞吐量优化

vLLM 和 Inferact 已对 DeepSeek-V4.1-Flash 的服务进行了优化,在 150 TPS 约束下实现了 5.3 倍的吞吐量提升,并在低并发场景下实现了 1.9 倍的加速。这些提升得益于 SWA 有界重放的实现以及高性能内核(包括 MegaAttention、Mega-mHC 和 Mega-Gate)的集成。

用于预填充效率的 SWA 有界重放

SWA 有界重放通过以精确度换取效率,减少了预填充计算和内存开销,在 GSM8K 和 GPQA 基准测试中验证了对模型质量的影响微乎其微。

降低 KV 缓存和预填充成本

DeepSeek-V4.1-Flash 使用两个 KV 缓存:一个压缩的全局 KV(FP4,每标记约 890 字节)和一个未压缩的滑动窗口(SWA)KV(FP8,覆盖 40 层中的最后 128 个位置)。为避免在前缀缓存中 SWA KV 的高存储成本,以及在预填充期间第 21–39 层的冗余计算,vLLM 实现了 SWA 有界重放。该技术仅重放最后 128 个标记,并在重放开始处截断 SWA 窗口。

  • 编码器端重放: vLLM 仅缓存全局 KV。在长度为 H 的前缀命中时,它会重放标记 [H − 128, H) 以重建 SWA KV。
  • 解码器端重放: 在因果编码器-解码器(CED)架构中,vLLM 为每个标记运行第 20 层以生成全局 KV,但仅对每个请求的最后 128 个标记运行第 21–39 层,从而跳过几乎一半的模型,适用于长提示。

使用 CUDA 图加速裁剪层

由于裁剪后第 21–39 层在 GPU 上的计算量极小,内核启动开销可能占主导地位。vLLM 使用可中断的 PIECEWISE 图,将第 0–20 层在完整批次上捕获,第 21–39 层在裁剪后的批次上单独捕获。该优化将预填充计算时间减少了 30–40%,尤其在短提示场景下,此时启动开销是主要瓶颈。

内核级优化

vLLM 集成了 DeepSeek 的多个开源内核,以消除内存往返并融合操作。

专用 Mega 内核

  • Mega-mHC: 将 mHC 链(后步骤、延迟前步骤和 RMSNorm)融合为一个内核,在 NVIDIA GB200 上比之前的 TileLang 版本快 1.14–1.51 倍。
  • Mega-Gate: 将 MoE 路由器(门 GEMM、专家评分、偏置和 top-k 选择)融合,中等批次大小下内核速度提升 1.18–1.31 倍。
  • MegaAttention: 在一次启动中执行查询 RoPE、稀疏注意力、反 RoPE 和 FP8 转换。它利用一种新的 NVFP4 压缩 KV 格式,比 FP8 小 45%,将内核效率提升 1.45 倍。

延迟和内存优化

  • mHC 多流重叠: 在侧 CUDA 流中并行计算下一个 mHC 块的系数,与注意力和 FFN 同时进行,将 TP4 低延迟场景下的延迟降低约 4%。
  • 稀疏 MQA logits: 仅对候选位置进行评分,而非整个上下文。在 NVIDIA GB300 上,8K 标记时快 1.2 倍,512K 标记时快 14–23 倍,1M 上下文时预填充速度提升 2 倍。
  • 低延迟融合 WO-A 内核: 在 Blackwell 上,将反 RoPE、FP8 量化、WO-A 批量 GEMM 和 MXFP8 重新量化融合,适用于小解码批次,将标记间延迟降低 6–7%。
  • Engram 优化: 实现 CPU 离线 Engram 查找的异步预取,并支持透明大页(THP),可使预填充查找内核速度提升高达 10 倍。

智能服务性能

使用 SemiAnalysis AgentX 基准测试,vLLM 在其初始版本基础上实现了显著改进。

吞吐量与延迟权衡

  • 低延迟服务: 使用 TP4 和 FlashInfer 注意力,vLLM 实现了 1.9 倍加速。在此特定低并发、内存带宽受限场景中,FlashInfer 比 MegaAttention 更快。
  • 高吞吐量服务: 使用 DEP2 和 DP 注意力及 MegaAttention,vLLM 实现了 5 倍吞吐量提升。DP 注意力避免了跨 GPU 的 KV 缓存重复,NVFP4 压缩进一步提升了每 GPU 的并发性。

TTFT 改进

在约 10 万吞吐量下,首次标记时间(TTFT)减少了近 70%。这一减少是 SWA 有界重放(将预填充计算减半)、CUDA 图(最小化 CPU 启动开销)和通用内核加速共同作用的结果。

Sources