詳細解釋
訓練後量化(Post-Training Quantization, PTQ)是將已訓練的FP32模型轉換為低精度(如INT8)表示的技術,無需重新訓練,快速部署。
與QAT的對比:
- 量化感知訓練:訓練中模擬量化,精度更高,但需要訓練資源
- PTQ:訓練完成後量化,簡單快速,可能精度稍降
- 選擇:先嘗試PTQ,若精度不夠再用QAT
量化步驟:
- 收集校準數據:數百到數千代表性樣本
- 確定縮放因子:統計激活分布,確定量化範圍
- 權重量化:將FP32權重映射到INT8(線性映射)
- 激活量化:運行校準數據,統計激活範圍
- 偏差校正:調整量化後的偏差項
量化類型:
- 對稱量化:零點為0,範圍對稱
- 非對稱量化:零點可調,適合非對稱分布
- 逐層量化:每層獨立縮放
- 逐通道量化:卷積每通道獨立縮放(精度更高)
校準策略:
- 最小-最大:用觀測到的最小最大值
- KL散度:最小化原始和量化分布的KL散度
- 百分位數:排除極端異常值(如99.99%)
- 均方誤差:最小化量化誤差
動態量化:
- 運行時統計:每批次動態計算縮放因子
- 更適應輸入變化
- 但有額外計算開銷
優勢:
- 簡單快速:幾分鐘即可完成
- 無需訓練數據:只需校準數據(無標籤)
- 即插即用:現成模型快速部署
- 工具成熟:主流框架都支持
局限:
- 精度損失:敏感模型可能效果差
- 敏感層:某些層(如LayerNorm)需要保留FP32
- 極端量化:INT4及以下通常需要QAT
PTQ是模型部署的首選起點。