💡一句話定義
生活比喻:量尺上原本刻到 0.001 公分,改成只刻到 0.5 公分。量一般東西還是夠用,量到很精密的零件就會出錯。
🤔為什麼要量化?因為模型「太胖」了
模型的體積=參數數量 × 每個參數占的位元數。參數數量通常不能動(那是模型的能力),所以要瘦身只能從「每個參數占幾位元」下手。
模型要整個載進 GPU/手機記憶體才能跑。70 億參數 FP32 要 28 GB,一張 24 GB 的消費級顯卡都裝不下。
LLM 推論大多卡在「搬資料」而不是「算」。位元數減半,搬的資料量就減半,回應更快。
整數運算比浮點運算省電得多,手機與 IoT 裝置撐得住續航。
手機、車機、攝影機、工業控制器沒有雲端那種算力,要在本地跑 AI 幾乎一定得量化。
精度階梯:以 70 億參數模型為例
📏核心概念:scale 與 zero-point(數線圖解)
量化本質上就是把一段實數區間,對應到有限個整數刻度。兩個參數決定這個對應:
一格整數刻度代表多大的實數。區間越寬、位元越少,s 越大,刻度越粗、誤差越大。
實數的 0 對應到哪一個整數。對稱量化 z = 0;非對稱量化 z 可以不為 0,用來把「偏一邊」的區間對準。
對稱 vs 非對稱:同一組權重、3 位元(8 個刻度)
🎮互動:量化實驗台
拉滑桿選位元數(2–16),切換對稱/非對稱,看一組真實大小的權重被量化後變成什麼、誤差多大、模型縮小幾倍,以及示意的準確率曲線在哪裡「跳水」。
| 權重 | 原值 x | 整數 q | 還原 x̂ | 誤差 |
|---|
🔁什麼時候做量化?PTQ vs QAT
| 面向 | PTQ 訓練後量化 Post-Training Quantization | QAT 量化感知訓練 Quantization-Aware Training |
|---|---|---|
| 做法 | 模型訓練完,直接把權重換成低位元;通常用少量校正資料估計 s、z | 訓練(或微調)過程中就「模擬」量化的捨入誤差,讓模型學會適應粗刻度 |
| 需要重訓? | 不用(或只要幾百筆校正資料) | 要,需要訓練資料與 GPU 時間 |
| 成本 | 低、快,幾分鐘到幾小時 | 高,接近一次微調 |
| 精度 | INT8 通常夠好;INT4 以下可能明顯掉準 | 低位元(INT4、甚至更低)仍能維持較高準確率 |
| 適用 | 大多數部署場景的第一選擇,LLM 幾乎都用 PTQ | 精度要求高又必須極低位元的場景(如手機上的視覺模型) |
GPTQ:逐層量化,利用二階資訊(Hessian)補償捨入誤差,INT4 也能保持不錯的品質。
AWQ(Activation-aware Weight Quantization):觀察啟動值,找出「少數特別重要的權重通道」先保護起來,再量化其他部分。
GGUF:不是演算法而是檔案格式(llama.cpp 生態),裡面放的是量化後的權重,常見 Q4_K_M、Q8_0 這類名稱,讓模型能在 CPU/筆電上跑。
🆚量化 vs 剪枝 vs 知識蒸餾:三種「模型瘦身」差在哪
這三個名詞考試最愛放在一起考。記住一句話:量化=降精度、剪枝=砍權重、蒸餾=教小模型。
| 面向 | 量化 Quantization | 剪枝 Pruning | 知識蒸餾 Knowledge Distillation |
|---|---|---|---|
| 做了什麼 | 每個參數用更少位元表示 | 把不重要的權重/神經元/注意力頭直接刪掉(設為 0 或移除) | 用大模型(老師)的輸出當目標,訓練一個小模型(學生) |
| 參數數量 | 不變 | 變少(稀疏化或結構縮小) | 變少(學生本來就是小架構) |
| 模型架構 | 不變 | 非結構化剪枝不變、結構化剪枝會變 | 完全不同,可自由設計 |
| 需要重訓? | PTQ 不用;QAT 要 | 通常要微調恢復精度 | 要,整個學生要從頭或半途訓練 |
| 成本 | 最低 | 中 | 最高 |
| 生活比喻 | 照片從 RAW 存成 JPEG | 把書裡的廢話刪掉 | 老師把一門課濃縮講給學生聽 |
| 能否疊加 | 可以。常見組合:先蒸餾出小模型 → 剪枝 → 最後量化部署。 | ||
想看蒸餾的「軟標籤」怎麼教學生,去 知識蒸餾互動動畫。
⚠️常見誤區與風險
錯。量化後參數數量完全一樣,只是每個參數占的位元變少。參數變少的是剪枝與蒸餾。
位元數與準確率不是線性關係:INT8 幾乎無感,INT4 開始有感,2–3 位元常常崩掉。而且硬體要真的支援該位元的整數運算才會變快(INT8 普遍支援;INT4 在部分硬體上要靠額外解壓,速度反而未必快)。
權重量化(weight-only)最常見,但推論中間的啟動值(activation)也可以量化(W8A8 代表權重 8 位元、啟動 8 位元)。啟動值裡常有少數「離群大值」(outlier),是量化掉準的主因之一,AWQ、SmoothQuant 等方法就是在處理這件事。
✅自我檢測
每題單選,點選後立刻顯示對錯與解釋。
🎯重點整理
- 定義:量化=用更少位元(FP16/INT8/INT4)表示權重或啟動值;參數數量不變、體積與延遲下降、精度略損。
- 為什麼:記憶體裝不下、延遲卡在搬資料、能耗、邊緣裝置沒算力。
- 怎麼對應:scale 決定一格多大、zero-point 決定 0 對到哪;對稱 z = 0、非對稱貼合 min–max;粒度越細誤差越小。
- 何時做:PTQ 訓練後直接量化(便宜、INT8 夠用);QAT 訓練時模擬量化(貴、低位元仍準)。
- LLM 常見:GPTQ、AWQ 是 INT4 PTQ 方法;GGUF 是存量化模型的檔案格式。
- 三兄弟辨析:量化=降精度、剪枝=砍權重、蒸餾=教小模型;可以疊加。
- 風險:4 位元以下明顯掉準;硬體要支援才真的變快;量化後務必重測。