大模型推理为什么需要大量显存?KV Cache占用怎么算
大模型推理占显存的两大块是模型权重(固定不变)和KV Cache(随并发数、上下文长度增长)。权重决定"装不装得下模型",KV Cache决定"能接多少并发"。并发一高显存就爆,多半是KV Cache没算够。

一、核心答案
- 模型权重:参数量×每个参数字节数。70B模型FP16约140GB,这块是固定的。
- KV Cache:每个并发请求在推理过程中都要缓存中间计算结果,随上下文长度和并发数线性增长。
- 规划原则:显存总量 = 权重 + KV Cache(按峰值并发计算) + 10%~20%运行时余量。
二、KV Cache为什么这么占显存
大模型生成回答是一个token接一个token生成,每生成一个token,注意力计算都要用到前面所有token的Key和Value矩阵。为了不重复计算,推理框架会把它们缓存下来,这就是KV Cache。请求越长、并发越多,缓存越多。
所以同一个模型,别人能跑100并发,你跑50就OOM,问题很可能不是卡不行,而是KV Cache规划没做好。
三、具体怎么算
以70B模型(约80层)为例:单请求4K上下文约1GB级,8K约2GB级;100并发×8K上下文就是200GB级别,这就是为什么高并发推理要配大显存卡或多卡。
注:以上为理论计算值,实际受模型结构、量化方式、推理框架影响。
- 优化手段1:用vLLM这类框架,KV Cache按需分配(PagedAttention),显存利用率大幅提高。
- 优化手段2:限制max_seq_len,别让用户无限拉长上下文。
- 优化手段3:KV Cache量化(INT8/INT4),占用减半再减半。
四、不同场景怎么规划
低并发(<10):权重+KV Cache余量,按上文公式算,通常2×80G或1×H20 96G够用。
中并发(10~50):重点算KV Cache,用vLLM优化,按并发量倒推显存,可能需要2~4张大显存卡。
高并发(50+):直接按"权重+峰值并发KV Cache"规划,大概率要4卡以上或多机集群。
五、常见问题
1. KV Cache必须全部放显存吗?
是,KV Cache访问频繁,放显存才能保证速度。框架会在显存不足时牺牲批量大小,而不是把它挪到内存。
2. 为什么模型一样,我的平台比我同事的慢?
大概率是推理框架不同。vLLM等框架的KV Cache管理优化明显,同样硬件并发能力差几倍。
3. 上下文越长显存越多吗?
是,KV Cache和上下文长度成正比。支持128K上下文和8K上下文的显存需求能差十几倍。
4. 推理显存和训练显存哪个大?
同模型训练显存更大(要多存梯度和优化器状态)。但推理的KV Cache随并发膨胀,并发大时也不容小觑。
六、相关阅读
数据来源与说明
- KV Cache公式与示例为理论计算值,实际受模型结构和框架影响。
- 并发规划建议为行业经验值。