2026年11月15日(日) 記事を探す決算カレンダー広告掲載このサイトについて
トップ › 仕組み
仕組み

量子化とは 学習後か学習中か、グーグルのGemma 3は重みを54GBから14.1GBに

量子化は、AIのモデルが使う数値を16ビットから8ビットや4ビットに減らし、メモリと計算を軽くする方法です。グーグルは2025年4月、学習の段階から4ビットに慣らしたGemma 3 27Bを公開し、重みの大きさを54GBから14.1GBにしました。

ポイント
  • 量子化は、モデルの数値を少ないビット数で表し直して、メモリと計算を減らす方法です。
  • 学習を終えてから変える「学習後量子化」と、学習の途中から低い桁に慣らす「量子化を考慮した学習(QAT)」があります。
  • グーグルのGemma 3 27Bは、QATで4ビットにして重みを54GBから14.1GBにし、家庭用のGPUで動くようにしました。
  • エヌビディアの試験では、DeepSeek-R1を8ビットから4ビットにしても主な課題の精度の低下は1%以下でした。

量子化は、AIのモデルの中の数値を、より少ない桁で表し直すことです。学習は16ビットの数(BF16など)で行うのが一般的です。推論では、これを8ビットや4ビットに落としても、答えの質がほとんど変わらないことが多くあります。重みが小さくなれば、少ないメモリで動き、メモリから読み出す時間も短くなります。

目盛りを決めて丸める

4ビットで表せる値は16通りしかありません。そこで、近い値のまとまりごとに「目盛り(スケール)」を決め、それぞれの値を目盛りの何倍かに丸めて記録します。まとまりを小さくするほど細かい違いを残せますが、目盛りを記録する分だけデータが増えます。

丸めれば必ず誤差が出ます。少数の大きな値(外れ値)があると目盛りが粗くなり、ほかの値の誤差が広がります。量子化の手法の多くは、この外れ値をどう扱うかの工夫です。重みだけを4ビットにし、計算は16ビットで行う方法もあります。

学習後か、学習中か

手軽なのは学習後量子化です。学習を終えたモデルに少量のデータを流し、各所の値の幅を測って目盛りを決めます。追加の学習は要りません。

QATは、学習の段階で丸めの誤差を含めて計算し、モデルに誤差への強さを身につけさせます。手間はかかりますが、精度を保ちやすくなります。グーグルによると、Gemma 3では約5,000回の学習のステップをかけ、4ビット(Q4_0という形式)に丸めた時の性能の落ち幅(パープレキシティの悪化)を54%小さくしました。

Gemma 3の重みの大きさ(グーグルの発表から)
モデル16ビット(BF16)4ビット(int4)
27B54GB14.1GB
12B24GB6.6GB
4B8GB2.6GB
1B2GB0.5GB

重みを読み込むのに要るメモリ。会話の途中の結果(KVキャッシュ)の分は別に要る。

4ビットの27Bは、メモリ24GBのエヌビディアのRTX 3090で動きます。12Bは、8GBのノートパソコン向けRTX 4060で動きます。データセンター向けのGPUでなくても、手元の機械で大きめのモデルを使えるようになります。

データセンターでの4ビット

データセンターでも4ビットが広がっています。エヌビディアは2025年6月24日の技術解説で、自社の4ビット形式NVFP4の試験結果を示しました。DeepSeek-R1-0528を8ビット(FP8)からNVFP4に学習後量子化したところ、主な言語の課題での精度の低下は1%以下でした。数学の試験(AIME 2024)では、FP8より2%高い点でした。

ソフトの側では、エヌビディアのTensorRTがFP8、FP4、INT8、INT4に対応し、外れ値に強いAWQという手法も扱います。2026年10月28日のPyTorch 2.15版は、Blackwell世代のGPUで4ビットの言語モデルの文章の生成を速くしました。

関連する用語

  • 演算精度(FP8・FP4):数値の形式そのもの。量子化はその形式に移す作業。
  • スパース化:値がゼロの部分を飛ばして計算を減らす方法。
  • 蒸留:大きなモデルの答え方を小さなモデルに学ばせる方法。
  • パープレキシティ:言語モデルの予測の当たりにくさを示す指標。小さいほどよい。

Gemma 3のQATのモデルは、Ollama、llama.cpp、アップルのMLXなどの道具で動かせます。

この記事は公開資料をもとに作成しています。売買をすすめるものではありません。誤りを見つけたら訂正します(編集方針)。

関連する記事