【りょうしか(えーあいもでる)】

量子化(AIモデル) とは?

最終更新:
💡 数値の表し方を小さくして、AIモデルを軽くする

AIモデルの重みや活性値などを、少ないビット数の数値表現に変換する手法。容量や計算負荷の削減を狙うが、出力品質や速度への影響はモデル・方式・機器で異なる。

📌 このページのポイント
数値を、少ないビット数で表す FP32の重み 例:0.314159 1個につき32ビット INT8の重み 例:整数 31 1個につき8ビット スケール0.01・ゼロ点0の例 31 × 0.01 = 0.31(元の値と誤差あり) 重みデータだけの理論容量 FP32 INT8:4分の1 スケールなどの追加情報・キャッシュも必要 出力品質と速度は、方式と機器で変わる
整数量子化の簡単な対応例。矢印は量子化と数値の対応を示す。容量比は重みを同じ個数だけ保存する理論値で、追加情報や実行時のメモリは含まない。
ひよこ ひよこ
量子コンピューターを使うってこと?
ペンギン先生 ペンギン先生
ここでは、AIモデルの数値を少ないビット数で表すことだよ。たとえば32ビットの浮動小数点数で持っていた重みを8ビット整数で保存する。単純な重みデータだけなら容量は4分の1になるんだ
ひよこ ひよこ
小数を整数にすると、元の値が分からなくならない?
ペンギン先生 ペンギン先生
整数量子化では、スケールとゼロ点などを一緒に使うよ。単純な例なら、スケール0.01・ゼロ点0で整数31を0.31に対応させる。0.314159は近い値に丸められるので誤差が生じるんだ
ひよこ ひよこ
モデルの性能はほとんど変わらないの?
ペンギン先生 ペンギン先生
保てる場合もあるけど、必ず小さな低下で済むとは限らないよ。どの数値を量子化するかや、使う入力によって出力品質への影響が違う。モデルに合う方式を選んで、量子化前後を評価するんだ
ひよこ ひよこ
70Bのモデルなら、4ビットで35GBあれば足りる?
ペンギン先生 ペンギン先生
700億個の重みをすべて4ビットで詰めると、重みの理論容量は約35GB(10億バイト単位)になるよ。ただしスケールなどの追加情報、量子化しない部分、実行時のキャッシュや作業領域も必要。35GBを総メモリ量や動作保証としては使えないよ
ひよこ ひよこ
学習後でもできる?高速になる?
ペンギン先生 ペンギン先生
学習済みモデルに適用するPTQと、学習時に量子化の影響を考慮するQATがあるよ。速度は対応する演算や機器に依存し、変換の負荷で遅くなる場合もある。使用メモリと出力品質と速度を、使う環境で確認しよう
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「量子化」って出てきたら「AIの数値を少ないビット数で表して軽くする技術」と思えばだいたいOK!
📖 おまけ:英語の意味
「Quantization」 = 値を限られた段階で表すこと(量子化)
💬 数値を一定の段階へ対応させる意味だよ。このページではAIモデルの数値表現を扱い、量子コンピューターを使うという意味ではないんだ

参考資料

← 用語集にもどる