量化怎麼選:INT8、FP8 與 4-bit 的實際差異
量化能省記憶體也能加速,但不同精度的取捨很不一樣。這篇給選擇順序。
量化是把權重(有時也含啟動值)用更少的位元表示。省下的是記憶體與頻寬,而頻寬正是逐 token 生成的瓶頸。
常見選項
- FP8:新一代硬體原生支援,品質損失極小,是有硬體支援時的首選。
- INT8:相容性最好,品質損失小,加速明顯。
- 4-bit(NF4、AWQ、GPTQ):記憶體省最多,能在小卡上跑大模型;品質有可感知的損失,需實測。
選擇順序
- 記憶體塞得下就先不量化,用原生精度當品質基準。
- 塞不下或想省成本,先試 FP8 或 INT8。
- 仍然塞不下才用 4-bit,並且一定要跑評測比較。
只量化權重 vs 權重與啟動值都量化
只量化權重(weight-only)實作簡單、品質穩定,主要收益是記憶體;權重與啟動值都量化能得到更多算力加速,但校準不好時品質下滑明顯。線上服務通常從 weight-only 開始。
校準資料很重要
# AWQ/GPTQ 需要一小批校準資料,用你自己的真實輸入分布
calib = load_samples('prod_inputs.jsonl', n=256)用通用語料校準、卻拿去跑專業領域任務,是量化品質不如預期的常見原因。校準資料應該貼近實際流量。
量化後務必重跑結構化輸出的格式合法率。這個指標對量化特別敏感,常常在整體分數只掉一點時就先崩掉。