显存计算
每个“这能不能在我的卡上跑”的问题都是算术,不是玄学。总显存 = 权重 + KV 缓存 + 一块固定的激活和引擎开销。会用参数乘比特,你就能在花一分钱之前配好一台机器。本页给出公式、现成表格、和一个可以照抄到任何显卡的 16 GB 演练。
公式
total VRAM = weights + KV cache + overhead
weights (GB) = parameters (B) × bits per weight ÷ 8
KV cache = bytes per token × context length (见 [KV 缓存](/guide/kv-cache))
overhead ≈ 1–2 GB(激活、驱动上下文、缓冲、碎片)
常见 GGUF 量化的有效每权重比特:Q4_K_M ≈ 4.8、Q5_K_M ≈ 5.7、Q6_K ≈ 6.6、Q8_0 ≈ 8.5。参数乘上它再除以 8,就落在磁盘文件大小的几个百分点之内。
值得记住的经验值,按每十亿参数的 GB 计:
- Q4_K_M ≈ 0.6 GB——日常主力
- Q5_K_M ≈ 0.7 GB
- Q6_K ≈ 0.8 GB——对多数人的眼睛几乎无损
- Q8_0 ≈ 1.1 GB——透明,成本约为 Q4 两倍
- fp16/bf16 = 2.0 GB——训练和严肃微调的地界
现成算例
KV 缓存大小取决于架构。现代 GQA 模型在 8B–32B 级、fp16 KV 下大约每词元 128–256 KB,70B 级约 320 KB。精确公式在 KV 缓存;这里只把它加进来。开销按每行 1.5 GB 预算。
Q4_K_M(每权重约 4.8 比特):
| 模型 | 权重 | KV @ 8k | KV @ 32k | 总计 @ 8k | 总计 @ 32k |
|---|---|---|---|---|---|
| 8B | 4.8 GB | 1.0 GB | 4.2 GB | 7.3 GB | 10.5 GB |
| 14B | 8.4 GB | 1.6 GB | 6.4 GB | 11.5 GB | 16.3 GB |
| 32B | 19.2 GB | 2.1 GB | 8.4 GB | 22.8 GB | 29.1 GB |
| 70B | 42.0 GB | 2.6 GB | 10.5 GB | 46.1 GB | 54.0 GB |
Q6_K(每权重约 6.6 比特):
| 模型 | 权重 | KV @ 8k | KV @ 32k | 总计 @ 8k | 总计 @ 32k |
|---|---|---|---|---|---|
| 8B | 6.6 GB | 1.0 GB | 4.2 GB | 9.1 GB | 12.3 GB |
| 14B | 11.6 GB | 1.6 GB | 6.4 GB | 14.7 GB | 19.5 GB |
| 32B | 26.4 GB | 2.1 GB | 8.4 GB | 30.0 GB | 36.3 GB |
| 70B | 57.8 GB | 2.6 GB | 10.5 GB | 61.9 GB | 69.8 GB |
两个要内化的规律。Q6_K 比 Q4_K_M 贵 ~35–40%——常常正好是一个显卡档位的差距。而 32k 上下文的 KV 不是舍入误差:在小模型上它能与权重本身比肩。老的 MHA 设计(Llama-2 时代)的 KV 缓存大 4–8 倍,这就是为什么 32k 上下文过去需要特种硬件而 GQA 模型不需要。
加载时 OOM vs 生成中途 OOM
- 加载时:仅权重就超过空闲显存。引擎拒绝启动,或者把层换到 CPU 上爬行。诚实、即时、容易诊断。
- 生成中途:权重装得下,但 KV 缓存逐词元增长。新会话一切正常;四十轮之后、在一次 RAG 倾倒或粘贴文件之后,缓存吃掉你的余量、进程在回答中途死掉。这是阴险的那种——永远按你实际会到达的上下文配机,而不是第一条提示词。
现场看它发生:
watch -n1 nvidia-smi --query-gpu=memory.used,memory.total --format=csv
配机工作表:16 GB 演练
- 可用预算:16 GB × 0.85 ≈ 13.6 GB。桌面、浏览器和驱动已占 0.5–1 GB;留 10–20% 余量是铁律,不是可选项。
- 梦想:32B Q4_K_M——光权重就 19.2 GB。落地即死。
- 现实:8k 上下文的 14B Q4_K_M:8.4 + 1.6 + 1.5 = 11.5 GB。装下还剩 ~15% 余量。上。
- 现在想要 32k 上下文:8.4 + 6.4 + 1.5 = 16.3 GB。超预算。
- 三个修法——单选或组合:
- 把 KV 缓存量化到 q8_0:6.4 → 3.2 GB,总计 13.1 GB。进。
- 把权重降到 Q4_K_S 或 IQ4_XS,再省 ~0.5–1 GB。
- 降到 8B Q6_K:6.6 + 4.2 + 1.5 = 12.3 GB,宽裕。
同样的五步适用于 8 GB 卡、24 GB 卡或 48 GB 双卡机。预算、梦想、做减法、调整。
永远留余量
引擎按批槽分配 scratch 缓冲,碎片在长期运行的服务器上累积,并发让每个活跃请求的 KV 翻倍。一个一次性基准测试里“刚好装下”的配置会在生产中 OOM。留 10–20% 空闲是持续在线的税。各显卡档位实际装得下什么,见 GPU 档位;量化比特为什么是这些数,见 量化。