量化的核心目標很簡單:用少量精度損失,換取更小體積、更低顯存占用與更快推理速度。
對本地部署使用者來說,選對量化版本,通常比盲目追求大參數更重要。
什麼是量化
量化是指把模型參數從高精度格式(如 FP16)壓縮為更低位寬格式(如 Q8、Q4)。
可以把它理解為:
- 原始模型:像高精度照片,清晰但檔案大。
- 量化模型:像壓縮照片,細節略有損失但更輕更快。
常見量化版本對比
| 量化版本 | 精度/位寬 | 體積 | 品質損失 | 推薦場景 |
|---|---|---|---|---|
| FP16 | 16 位浮點 | 最大 | 幾乎無損 | 研究、評測、追求極致品質 |
| Q8_0 | 8 位整數 | 較大 | 幾乎無損 | 高配電腦,兼顧品質與效能 |
| Q5_K_M | 5 位混合 | 中等 | 輕微損失 | 日常主力,平衡方案 |
| Q4_K_M | 4 位混合 | 較小 | 可接受損失 | 通用預設,性價比高 |
| Q3_K_M | 3 位混合 | 很小 | 明顯損失 | 低配設備,先求能跑 |
| Q2_K | 2 位混合 | 最小 | 較大損失 | 極限資源場景,臨時可用 |
量化命名規則
以 gemma-4:4b-q4_k_m 為例:
gemma-4:4b:模型名稱與參數規模。q4:4 位量化。k:K-quants(改進的量化方法)。m:medium(中等級別,常見還有s/small、l/large)。
如何按顯存快速選型
| 內存/顯存 | 推薦量化 |
|---|---|
| 4 GB | Q3_K_M / Q2_K |
| 8 GB | Q4_K_M |
| 16 GB | Q5_K_M / Q8_0 |
| 32 GB+ | FP16 / Q8_0 |
建議先從能穩定跑起來的版本開始,再逐步提高精度,而不是一開始就追求最大模型。
實戰建議
- 預設從
Q4_K_M開始,先驗證真實任務效果。 - 如果答案品質不夠,再升到
Q5_K_M或Q8_0。 - 如果主要瓶頸是顯存或速度,再降到
Q3_K_M。 - 每次切換量化版本,都用同一批測試問題做對比。
用 llama-quantize 產生量化 GGUF
輸入應優先使用 FP16、BF16 或 F32 GGUF。不要把已經重度量化的檔案再次量化;--allow-requantize 可能進一步破壞品質。
|
|
Windows 通常使用:
|
|
量化前後記錄檔案大小和雜湊:
|
|
為什麼不能只按位元數估算顯存
權重之外還要為 KV cache、計算緩衝區、多模態 projector、桌面程式和後端開銷保留空間。因此,權重接近 8GB 不代表一定能完整裝入 8GB 顯示卡。建議預留約 10% 到 20%,再從後端日誌確認 GPU offload。
做一次可比較的驗收
使用相同模型、後端、上下文和提示詞測試不同版本:
|
|
| 項目 | 需要記錄的值 |
|---|---|
| 模型 | 完整檔名與雜湊 |
| 後端 | CUDA、ROCm、Metal、Vulkan 或 CPU |
| 上下文 | -c 與實際 prompt token |
| 記憶體 | 峰值 RAM、VRAM、是否部分 offload |
| 速度 | prompt processing 與 generation token/s |
| 品質 | 固定問題的錯誤、格式和遺漏 |
程式碼、數學、長上下文和結構化輸出對量化更敏感。不要用單次聊天就宣稱某種量化「幾乎無損」。
結論
- 品質優先:
FP16或Q8_0。 - 平衡優先:
Q5_K_M。 - 通用預設:
Q4_K_M。 - 低配兜底:
Q3_K_M或Q2_K。
選型的本質不是「越大越好」,而是「在你的硬體條件下,達到最穩定可用的效果」。