一次搞懂 GGUF、GPTQ、AWQ 三大量化格式的核心差異、硬體相容性、4-bit 品質表現與部署工具鏈,依據你的裝置與場景做出最佳選擇。
核心差異一覽
| 維度 | GGUF | GPTQ | AWQ |
|---|---|---|---|
| 全名 | GPT-Generated Unified Format | GPT Quantization | Activation-aware Weight Quantization |
| 本質 | 可攜檔案格式+多種量化方案 | 後訓練權重量化演算法(Hessian 近似) | 後訓練、以 activation 保護關鍵權重 |
| 發源 | llama.cpp (Georgi Gerganov) | IST-DASLab (2022–2023) | MIT HAN Lab (2023–2024) |
| 主流位元 | 2–8 bit (K-quants、IQ 系列) | 2/3/4/8 bit (實務以 4-bit 為主) | W4A16 (權重 4-bit、activation 16-bit) |
| CPU 支援 | |||
| Apple Silicon | |||
| NVIDIA GPU | |||
| 校準資料 | 多數不需或極輕 | 需要 (128–512 samples) | 需要 (通常較少 samples) |
| 檔案型態 | .gguf (權重+metadata) |
safetensors/bin + config | safetensors + config |
| 典型工具 | Ollama、llama.cpp、LM Studio、Jan | vLLM、TGI、text-generation-webui、Transformers | vLLM、TGI、Transformers、AutoAWQ |
| 4-bit 品質 (相對 FP16) | Q4_K_M 約 95–98% | 約 94–96% | 約 96–98% |
| GPU 吞吐 | 良好 (相容性優先) | 快 (ExLlama/Marlin) | 通常最快或並列最快 |
GGUF:跨平台可攜格式,本地部署首選
GGUF 是 二進位容器格式,同時存放 tensor 與標準化 metadata,支援快速載入與跨執行器使用。量化層面提供多級 type:
- K-quants 系列:Q4_K、Q5_K、Q6_K、Q8_0 — 以 super-block 與不同 scale/min 配置,對重要層給予較多有效位元
- IQ 系列:較新的混合精度方案
- MXFP4 等新興格式
適合場景
- Ollama、LM Studio、Jan、llama.cpp 原生環境
- 僅有 CPU、Apple Silicon (Mac),或需 CPU+GPU 混合 offload
- 追求「下載單一
.gguf即可執行」的最簡流程
實務建議
- 7B 級模型常用 Q4_K_M (約數 GB),品質相對 FP16 約 95–98%
- 需更高品質可升級 Q5_K_M、Q6_K
GPTQ:Hessian 近似的 GPU 量化經典
GPTQ 採 one-shot 後訓練量化,利用校準集與近似二階 (Hessian) 資訊,逐層最小化量化誤差,將大模型壓縮至 3–4 bit 並保持可用精度。
特性摘要
- 需校準資料與 GPU 進行量化,7B 級模型可能耗時數小時
- 推論端依賴 CUDA 最佳化 kernel (ExLlama、Marlin)
- 位元寬選擇成熟 (2/3/4/8 bit),Hugging Face 上預訓練權重庫歷史悠久
- 4-bit 品質通常略低於同條件 AWQ
適合場景
- text-generation-webui 等長期支援 GPTQ 的工具
- 需要 2/3-bit 極低位元,或沿用既有 TheBloke 等 GPTQ 權重
- 已有 NVIDIA GPU、走 Transformers/vLLM 的 GPTQ 路徑
AWQ:Activation-aware 保護關鍵權重
AWQ 核心觀點:權重重要性不均。約 1% 對應高 magnitude activation 的 channel 對輸出影響最大。AWQ 先依 activation 找出這些 salient channel,量化前放大再吸收 scale,降低 rounding 對關鍵方向的傷害。
實務特徵
- 主流為 W4A16 (權重 INT4、activation 維持較高精度)
- 校準通常比 GPTQ 快,無需 backprop
- 同 4-bit 下 perplexity/下游任務常優於或持平 GPTQ (約 96–98% FP16 品質)
- 搭配 vLLM + Marlin kernel 時吞吐常領先
適合場景
- vLLM/TGI 等 GPU 生產環境服務
- 指令跟隨、推理、程式碼等對品質敏感的 4-bit 部署
- 有 NVIDIA GPU、追求吞吐與精度平衡
原理差異精簡
| 維度 | GGUF | GPTQ | AWQ |
|---|---|---|---|
| 核心任務 | 定義「怎麼存」+內建多種 block/K/IQ 量化 | 用二階資訊最小化權重量化誤差 | 用 activation 找重要 channel 再 scale 保護 |
| 是否需校準 | 多數常見 quant 較輕或不綁重校準 | 是 | 是 (通常較輕) |
| 混合精度策略 | K-quants:層/block 級不同有效 bit | 多為均勻 bit-width + group size | 全 4-bit 儲存,但 salient 方向誤差較小 |
| 硬體假設 | CPU/Metal/CUDA/ROCm 廣相容 | CUDA GPU 推論 | CUDA GPU 推論 |
關鍵洞察:GGUF 的 Q4_K_M 與 AWQ 4-bit 品質常接近——前者靠 mixed-precision K-quants,後者靠 activation-aware 保護;兩者通常都優於「均勻」的 GPTQ 4-bit。
效能與記憶體實務量級 (以 7B–8B、4-bit 為例)
- VRAM/檔案大小:相對 FP16 可壓至約 1/3–1/4 (例:8B FP16 ~16 GB → 4-bit ~5 GB)
- GPU tokens/s:同顯卡下 AWQ/GPTQ 因專用 CUDA kernel 常高於 GGUF;GGUF 優勢在跨硬體與 offload,非純 NVIDIA 峰值吞吐
- 任務敏感度:一般 QA/摘要三者差異小;多步推理、程式碼、長文連貫性上,AWQ 與較高 bit GGUF (Q5_K_M/Q6_K) 通常較穩
選型決策表
| 你的條件 | 建議選擇 |
|---|---|
| Ollama/LM Studio、僅 CPU 或 Mac | GGUF (預設 Q4_K_M;要品質再 Q5_K_M/Q6_K) |
| NVIDIA 上跑 vLLM/TGI production | AWQ |
| 既有 GPTQ 權重、text-gen-webui、要 2/3-bit | GPTQ |
| 只要「下載就能跑、跨裝置」 | GGUF |
| 只要「同 4-bit 最高品質+GPU 吞吐」 | AWQ |
常見誤解釐清
-
GGUF ≠ 單一演算法
GGUF 是「格式+llama.cpp 一組 quant type」;GPU 上的 GPTQ/AWQ 權重通常以 safetensors 等形式存在。 -
「4-bit 一定差很多」錯誤
主流 4-bit (GGUF Q4_K_M、AWQ、GPTQ) 多仍保留約 94–98% 相對品質,差異多在難任務與長輸出。 -
格式間不能直接改副檔名互換
需從 FP16/BF16 重新 quantize,或使用各生態提供的轉換工具。
2026 實務建議總結
- 個人本地/筆電/Mac → GGUF + Ollama/llama.cpp,預設 Q4_K_M
- 單卡 NVIDIA 服務 API → AWQ + vLLM
- 研究或比對舊模型庫 → GPTQ 仍常見,但新部署若只看 4-bit 品質與吞吐,優先試 AWQ
- 品質仍不足 → 先升 GGUF bit (Q5/Q6) 或改用 AWQ,再考慮更大參數或 FP8 等硬體路徑,而非在 2-bit 硬撐
結論
- 要跨 CPU/GPU/Apple、工具最簡 → GGUF
- 要 NVIDIA 上 4-bit 品質與服務吞吐 → AWQ
- 要既有生態、更多 bit 選項或特定 webui 路徑 → GPTQ
三者都是權重壓縮手段,真正差異在 格式角色、硬體假設、校準方式與工具鏈,而非單純「誰比較新」。依據你的部署環境與品質需求,對號入座即可快速落地。