QATとは
Quantization-Aware Training / 量子化を考慮した学習
学習段階から量子化による誤差を考慮に入れることで、低ビット化後も精度低下を抑える量子化手法
ひとことで言うと
学習の段階から量子化の影響を織り込んでおき、後で精度が落ちにくくする手法。
概要
QAT(Quantization-Aware Training、量子化を考慮した学習)とは、モデルの学習(または再学習)の過程に量子化による数値表現の丸め誤差をシミュレートする処理を組み込み、量子化後の性能低下をあらかじめ抑え込む量子化手法。 学習中、順伝播では量子化後の低ビット表現を模した値を使い、逆伝播では通常の高精度な勾配で重みを更新する「疑似量子化(fake quantization)」という仕組みにより、モデル自身が量子化の影響に適応した重みを学習する。 学習済みモデルへ事後的に変換を適用するPTQと比べて計算コストは高いが、特に低ビット(4bit以下等)まで圧縮する場合に、より高い精度を維持しやすいとされる。
背景
PTQのように学習済みモデルへ事後的に量子化を適用する手法は手軽だが、低ビット化の度合いが大きいほど性能低下が顕著になりやすい。QATは、学習段階から量子化による誤差を織り込むことで、量子化後の精度低下をより小さく抑えるために考案された。
歴史
2018年: GoogleのJacobらが論文「Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference」を発表。順伝播で量子化後の値をシミュレートしつつ逆伝播は高精度勾配で更新する、疑似量子化を用いた学習手法(QAT)を示した。
利点
欠点
- モデルの学習(または再学習)が必要なため、PTQと比べて計算コスト・時間がかかる
- 学習用のデータセットや計算資源を確保できない場合には適用しにくい