【もでるりょうしか】

モデル量子化 とは?

最終更新:
💡 細かな数値を少ない段階で表して、AIモデルを軽くする技術

AIモデルの重みなどを、少ないビット数の数値で表す技術。必要な記憶容量を減らせ、対応する実行環境では推論の高速化にも役立つ。

📌 このページのポイント
少ないビット数で重みを表す float32 1値=32ビット 70億個で28GB int8 1値=8ビット 70億個で7GB 量子化 重み本体は理論上4分の1 10進GB。尺度などの追加情報は除く PTQ 学習済みモデルを 変換・調整する QAT 量子化の影響を 模擬して学習する 精度・速度・実行時メモリは環境で評価 ファイル全体が必ず4分の1になるとは限らない
70億個の重み本体だけなら、32ビットで28GB、8ビットで7GB(10進GB)です。実際には追加情報や実行中のデータも必要です。
ひよこ ひよこ
モデル量子化って、AIを「圧縮」するってこと?
ペンギン先生 ペンギン先生
大まかにはそうだよ。モデルの重みなどの数値を、少ないビット数で表すんだ。例えばfloat32からint8にすると、1つの値は32ビットから8ビットになる。重み本体は4分の1だけれど、変換に必要な尺度などの追加情報もあるので、ファイル全体もぴったり4分の1とは限らないよ。
ひよこ ひよこ
数値を小さくすると精度が下がりそうだけど、大丈夫なの?
ペンギン先生 ペンギン先生
結果の精度が下がる場合があるよ。どの数値を何ビットで表すか、モデルやタスクによって影響が違うんだ。元のモデルと同じ評価データで確かめ、必要な精度を満たす方式を選ぶ。高速化にも対応する演算や機器が必要で、必ず速くなるとは限らないよ。
ひよこ ひよこ
どんな場面で使われるの?
ペンギン先生 ペンギン先生
スマホやIoT機器など、使えるメモリや計算資源が限られる場面で役立つよ。端末上で推論すればサーバーへの送信を減らせる場合もある。ただし端末内の処理時間は残るし、アプリが別にデータを送ることもあるので、量子化だけで通信やプライバシーを保証するものではないんだ。
ひよこ ひよこ
量子化のやり方って一種類じゃないの?
ペンギン先生 ペンギン先生
代表的には、学習済みモデルを変換するPTQと、量子化の影響を模擬して学習するQATがあるよ。PTQでも変換方法によって代表的な入力データでの調整が必要になる。QATは精度の改善を狙えるけれど追加の学習が必要で、結果は評価して確かめるんだ。
ひよこ ひよこ
LLMにも使われているの?大規模言語モデルって特に重そうだよね。
ペンギン先生 ペンギン先生
使われているよ。例えば70億個の重みをすべてfloat32で持つなら、重み本体は28GB。すべて4ビットなら理論上3.5GBになる。ただしこれは10進GBで追加情報を除いた計算だよ。実際のファイルや実行時メモリには別のデータも必要で、llama.cppなどは複数の量子化方式を扱うんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「モデル量子化」って出てきたら「AIの数値を少ないビット数で表して軽くする技術」と思えばだいたいOK!
📖 おまけ:英語の意味
「Model Quantization」 = モデル量子化
💬 「Quantization(量子化)」は連続した値を離散的な段階に丸める処理のことで、画像圧縮でも使われる概念だよ

参考資料

← 用語集にもどる