KV 缓存精度可调
KV 缓存可以单独调低精度,用更少的字节存同样的上下文,从而抬高并发上限或拉长可用窗口。vLLM 提供 --kv-cache-dtype fp8(还有平台相关的变体)。对长上下文场景收益直接,但需要硬件与推理栈同时支持,且必须评估对输出质量的影响。
基本信息
| 参数 | --kv-cache-dtype fp8 |
|---|---|
| 收益 | KV 字节数减少,并发或窗口上升 |
| 前提 | 硬件与推理栈同时支持 |
| 验证方式 | 看 KV 水位与并发上限是否真的变化 |
| 风险 | 输出质量需评测确认 |
典型使用场景
- 长上下文服务并发上不去,先看 KV 这一栏能不能省
- 窗口要求不变但想提高并发,比直接加卡更划算
- 成本敏感场景用更少的资源撑同样的流量
- 容量规划时对比降精度前后的两套账
- 同机多实例时逐实例确认是否生效,避免只有一部分实例真正用上
启用与验证
启用与验证
vllm serve <模型路径> --kv-cache-dtype fp8
# 取值与可用性随硬件与版本变化,以版本文档为准
# 验证三步:对比 KV 水位 → 同窗口压测最大并发 → 固定评测集做质量对比三件事要逐项确认
| 检查项 | 怎么确认 | 说明 |
|---|---|---|
| 参数是否生效 | 对比开启前后的 KV 水位 | 未生效时水位基本不变 |
| 并发上限 | 同窗口下压测 | 生效后应明显上升 |
| 质量影响 | 固定评测集对比 | 长文任务更敏感 |
并非所有硬件组合都生效:验证方式是看 KV 水位与并发上限是否真实变化,再做小流量质量对比,而不是看启动日志没有报错就认定成功。
KV 降精度与权重降精度是两笔独立的账:一个省缓存、一个省权重,叠加时收益分别成立,规划时要分开估算。
文档里给的收益是理论值,实际能提多少并发还受调度与内存带宽限制:容量表要按自己的压测结果填,不要照抄比例。