显存速查:16G / 24G / 48G 分别能跑什么

一个粗略但够用的对照表。前提:推理框架用 vLLM 或 llama.cpp,量化优先。

显存怎么算

权重显存 ≈ 参数量 × 每参数字节数
   FP16  ≈ 2 字节/参数
  INT8   ≈ 1 字节/参数
  INT4   ≈ 0.5~0.6 字节/参数

KV Cache ≈ 层数 × 2 × 隐藏维度 × 序列长度 × 字节数 × batch

大头经常是 KV Cache,不是权重。 长上下文场景尤为明显。

实用对照

显存 可跑(INT4/INT8) 现实评价
8G 7B~8B INT4 能跑,上下文短,别指望并发
16G 14B INT4 / 8B FP16 单机开发够用
24G (4090) 32B INT4 / 14B FP16 性价比甜点
48G 70B INT4 要调 max-model-len
80G (A100) 70B FP16 生产起点

注意:上表是单卡。多卡要考虑张量并行的通信开销。

几个省显存的实操开关

  • --max-model-len:默认可能开很大,直接吃满 KV Cache。按实际需求砍。
  • --gpu-memory-utilization:vLLM 默认 0.9,留点余量更稳。
  • --kv-cache-dtype fp8:长上下文场景能省一半 KV 显存,质量损失可接受。
  • llama.cpp 的 -ngl:层数卸载,显存不够就少卸几层,用 CPU 顶。
  • 量化选 AWQ / GPTQ,比 GGUF 在 GPU 上快。

一句话建议

先量你的实际上下文长度,再选模型。 大多数人按 128K 买卡,实际业务只用到 4K。


你现在的卡和模型组合是什么?跑起来多少 tok/s?贴出来给后来人参考。