VRAM 用量計算
每一個「我的卡跑不跑得動」的問題都是算術,不是玄學。VRAM 總量=權重+KV 快取+一塊固定的啟動值與引擎開銷。只要你會把參數乘上位元數,就能在花任何錢之前算好機器。這一頁提供公式、現成表格,以及可以套用到任何顯示卡的 16 GB 試算。
公式
VRAM 總量 = 權重 + KV 快取 + 開銷
權重 (GB) = 參數量 (B) × 每權重位元數 ÷ 8
KV 快取 = 每 token 位元組數 × 上下文長度 (見 [KV 快取](/guide/kv-cache))
開銷 ≈ 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 下,大約每 token 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%——常常就是一個 GPU 等級與下一個等級的差別。而 32k 上下文的 KV 不是捨入誤差:在小模型上它足以與權重本身匹敵。舊式 MHA 設計(Llama-2 時代)的 KV 快取大 4–8 倍,這就是為什麼 32k 上下文以前需要特殊硬體,而 GQA 模型不用。
載入時 OOM vs 生成中 OOM
- 載入時:光權重就超過可用 VRAM。引擎拒絕啟動,或把層換到 CPU 上龜行。誠實、立即、好診斷。
- 生成中:權重裝得下,但 KV 快取逐 token 增長。全新連線一切正常;四十輪之後、在一次 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。直接出局。
- 現實:14B Q4_K_M、8k 上下文: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 雙卡機。編預算、做夢、相減、調整。
永遠保留餘裕
引擎會為每個批次插槽配置暫存緩衝區、長時間運作的伺服器會累積碎片、並行則讓每個活躍請求的 KV 倍增。在一次性基準測試中「剛好塞下」的設定,上了正式環境就會 OOM。留 10–20% 空閒是持續運轉的稅。各等級顯示卡實際裝得下什麼,見 GPU 等級;量化位元數為何是這些數字,見 量化。