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

文章15配图.png

一、核心答案

  • 模型权重:参数量×每个参数字节数。70B模型FP16约140GB,这块是固定的。
  • KV Cache:每个并发请求在推理过程中都要缓存中间计算结果,随上下文长度和并发数线性增长。
  • 规划原则:显存总量 = 权重 + KV Cache(按峰值并发计算) + 10%~20%运行时余量。

二、KV Cache为什么这么占显存

大模型生成回答是一个token接一个token生成,每生成一个token,注意力计算都要用到前面所有token的Key和Value矩阵。为了不重复计算,推理框架会把它们缓存下来,这就是KV Cache。请求越长、并发越多,缓存越多。

所以同一个模型,别人能跑100并发,你跑50就OOM,问题很可能不是卡不行,而是KV Cache规划没做好。

三、具体怎么算

单请求KV Cache(FP16)≈ 2 × 层数 × KV头数 × 头维度 × 上下文长度 × 2字节。
以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卡以上或多机集群。

推理服务需要按并发规划显存,可以在 JYGPU 选择大显存型号(H20 96G、H100 80G)并按需扩展实例数量。

五、常见问题

1. KV Cache必须全部放显存吗?

是,KV Cache访问频繁,放显存才能保证速度。框架会在显存不足时牺牲批量大小,而不是把它挪到内存。

2. 为什么模型一样,我的平台比我同事的慢?

大概率是推理框架不同。vLLM等框架的KV Cache管理优化明显,同样硬件并发能力差几倍。

3. 上下文越长显存越多吗?

是,KV Cache和上下文长度成正比。支持128K上下文和8K上下文的显存需求能差十几倍。

4. 推理显存和训练显存哪个大?

同模型训练显存更大(要多存梯度和优化器状态)。但推理的KV Cache随并发膨胀,并发大时也不容小觑。

六、相关阅读

数据来源与说明

  • KV Cache公式与示例为理论计算值,实际受模型结构和框架影响。
  • 并发规划建议为行业经验值。