localaiforum
登录
指南 › 硬件

显存计算

每个“这能不能在我的卡上跑”的问题都是算术,不是玄学。总显存 = 权重 + 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 演练

  1. 可用预算:16 GB × 0.85 ≈ 13.6 GB。桌面、浏览器和驱动已占 0.5–1 GB;留 10–20% 余量是铁律,不是可选项。
  2. 梦想:32B Q4_K_M——光权重就 19.2 GB。落地即死。
  3. 现实:8k 上下文的 14B Q4_K_M:8.4 + 1.6 + 1.5 = 11.5 GB。装下还剩 ~15% 余量。上。
  4. 现在想要 32k 上下文:8.4 + 6.4 + 1.5 = 16.3 GB。超预算。
  5. 三个修法——单选或组合:
    • 把 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 档位;量化比特为什么是这些数,见 量化。

相关: 量化 · KV 缓存 · GPU 档位