SOAR 周冠军笔记 05 | 智算一队:NVFP4 KV Cache 与混合精度实践
编者按·低比特与混合精度
本周,SOAR 大赛半决赛,“智算一队”再次展现了他们在推理优化上的精细工程能力,成功夺得冠军。他们通过 NVFP4(FP4 E2M1)KV Cache 探索,显著降低了 decode 阶段的存储与带宽消耗,实现了长序列推理的加速。单纯 FP4 精度不足,团队通过逐层敏感性分析,保留关键层 FP8,其余层使用 NVFP4,实现接近纯 FP4 的带宽收益,同时保持模型精度。
这一实践凸显了低比特量化的工程智慧:速度与精度之间需要精细权衡,而混合精度与离线校准成为达成平衡的关键手段。本篇复盘为关注 LLM 推理优化的开发者提供了务实参考,也展示了智算一队夺冠的工程策略。
作者介绍:李晓辰:在校学生,专注大语言模型推理系统优化,熟悉vLLM/SGLang 等主流推理框架,曾在某大厂实习,在模型精度量化、KV Cache 压缩策略等方面有丰富实战经验。:队友:刘某,目前在某公司负责 GPU 算子优化,熟悉 Hopper、Blackwell 架构,具有英伟达高端 GPU 的 GEMM、Attention 优化工程经验。:以下是作者分享原文。
SORA 2026 半决赛
很高兴能和队友一起拿下半决赛冠军。这篇文章回顾一下半决赛阶段我们在 KV Cache 压缩方向上的探索。
01 背景:在之前的工作中阶段,我们已经完成了 W4A16 GPTQ+Marlin 权重量化和 FP8 KV Cache 等基础优化工作。半决赛阶段,我们希望继续挖掘 KV Cache 的压缩潜力,进一步降低 decode 阶段的显存带宽瓶颈,因此把目光投向了更低比特的 NVFP4 KV Cache 方案。:02 NVFP4 KV Cache:NVFP4 采用 FP4 E2M1 格式(1 位符号 + 2 位指数 + 1 位尾数),两个 FP4 值打包存储在一个 uint8 字节中,相比 FP8 KV Cache 再减少一半的存储与带宽开销。每个量化 block 配一个 scale factor,反量化时乘以 scale 即可恢复数值。:这种格式非常适合 decode 阶段的 memory-bound 特性:KV Cache 的读取量直接减半,对于长序列场景收益尤为明显。我们在 SGLang 框架中适配了完整的 NVFP4 KV Cache 链路,包括 FP4 内存池管理、注意力后端适配以及量化写入与反量化读取路径的打通。:启用后速度确实有提升,但随之而来的问题是精度下降明显,相比 FP8 KV Cache 约 80% 的正确率,纯 NVFP4 KV Cache 的正确率掉到了约 75%,已经低于可接受的阈值。:03 混合精度 KV Cache:纯 FP4 精度不够,纯 FP8 速度不够,我们很自然地想到用混合精度,评估每一层 K/V 值对最终输出精度的敏感程度,对精度敏感的层保留 FP8 KV Cache,对精度不敏感的层使用 NVFP4 KV Cache。具体做法是逐层做消融实验,依次将某一层的 KV Cache 从 FP8 降为 FP4,观察模型输出精度的变化幅度,以此判断该层的重要性。:实验发现,模型首层和末尾几层对量化精度最为敏感,中间层则表现出较强的鲁棒性。最终我们将少数关键层保留为 FP8,其余层全部使用 NVFP4,在几乎损失精度较小的前提下,获得了接近纯 FP4 的带宽收益。:04 总结:NVFP4 KV Cache 的探索让我们深刻体会到,低比特量化并不是简单的"打开开关",而是需要在速度和精度之间找到平衡。混合精度策略和离线校准是我们最终达成这一平衡的关键手段。:致谢:感谢 SOAR 2026 组委会搭建的比赛平台和持续的技术支持,也感谢 SGLang 团队的开源工作。半决赛的竞争非常激烈,感谢队友的通力协作。比赛中积累的经验让我们对推理优化有了更深入的理解,希望能在未来继续做出更多有意义的工作。
🌟 OpenBMB 社区的小伙伴们:SOAR 2026 稀疏算子加速大奖赛正火热进行中,每周都有新挑战,实时榜单虚位以待 。如果你想在模型推理加速、算子级优化、量化技术上展示你的技术实力 ,我们诚挚邀请你入场参赛,与曹议及更多优秀的小伙伴同台竞技,共同挑战 MiniCPM-SALA 的推理极限!点击下图或访问大赛官网 *https://soar.openbmb.cn/*了解更多。