一言で
量子化は、モデルの中の数値を、より少ないビット数で表すように置き換えることです。メモリや計算、返事までの時間を減らせますが、出典は、予測の正確さが落ちることがあるとしています。
このページで分かること
- 「量子化」という言葉が、機械学習で何通りの意味に使われるか
- モデルを軽くする量子化で、何がどれだけ減ると出典が書いているか
- 量子化のやり方の大きな分け方と、大規模言語モデルでの例
先に知っておく言葉
- モデル:入力を受け取って、予測などの出力を返す仕組み
- パラメータ:モデルが学習で決めていく数値(→ 別ページ「パラメータとモデルの大きさ」)
- 推論:学習を終えたモデルで答えを出すこと(→ 別ページ「学習(事前学習)と推論」)
- 大規模言語モデル:大量の文章で学習した、文章を読み書きするモデル(→ 別ページ「大規模言語モデル(LLM)とは」)
- ビット:コンピュータが数を表すときの、0か1かの1けた。ビット数が多いほど細かい数を表せる
- 浮動小数点数:コンピュータで小数を表すときのよくある形式。ここでは「量子化する前の、細かい数の持ち方」
- GPU:AI の計算に使われる計算用の部品(→ 別ページ「GPU と計算資源・データセンター」)
「量子化」の意味は1つではない
Google の機械学習の用語集は、量子化を、いくつかの意味で使われる言葉だとして、3つの使い方を並べています。
- データの1つの項目の値を、どの組にもほぼ同じ数の例が入るように区切って、いくつかの組に分けること
- データを0と1に置き換えて、保存・学習・推論を速くすること。用語集は、0と1のデータはほかの形式より雑音や誤りに強いので、モデルの正しさが上がることもある、としている。やり方として、丸め・切り捨て・区切りへの振り分けを挙げている
- モデルのパラメータを保存するビット数を減らすこと
このページでは、以下、モデルを軽くする3つ目の意味で書きます。
一方、量子化の手法をまとめた論文(Gholami ほか、2021年)は、もっと広く、連続した実数の値を、決まった数のとびとびの値に割り当てる問題として説明しています。そのとき、使うビット数はできるだけ少なく、計算の正確さはできるだけ高くしたい、という問題です。この論文によると、丸めや切り捨てはその典型の例で、こうした考え方はデジタルの計算機より前から長い歴史があります。
何がどれだけ減るか
- Google の用語集:例として、32ビットの浮動小数点数で持っているパラメータを、4・8・16ビットに変えることを挙げている。これで、計算・メモリ・ディスク・通信の使用量、推論にかかる時間、電力が減る。ただし、予測の正しさが下がることがある、としている
- Gholami ほかの論文:浮動小数点数から、4ビット以下の整数に移ると、メモリの使用量と返事の遅れを16分の1まで減らせる見込みがあり、画像の認識や言葉の処理などの用途では、実際には4分の1から8分の1の削減がよく実現されている、としている。ニューラルネットワークの多くはパラメータを必要以上に多く持っているため、正確さを損なわずにビット数を減らす余地が大きい、とも書いている
やり方の分け方
Gholami ほかの論文は、量子化したあとにモデルのパラメータを整えるやり方として、主に次の2つを挙げています(学習のデータを使わない方法も、別に扱っています)。
- 量子化を見込んだ学習(quantization-aware training、QAT):量子化した状態でモデルを学習し直す。そのぶん、学習し直すための十分なデータと手間がかかる
- 学習後の量子化(post-training quantization、PTQ):学習し直さずに、量子化と調整だけをする。手間はとても小さく、データが少ないときや、正解の付いていないデータしか無いときにも使える。ただし、特にビット数を大きく減らすときに、QAT より正確さが下がりやすい
同じ論文は、動かし方の違いも挙げています。パラメータだけを少ないビットで持ち、計算のときは元の細かい数に戻して計算する方法と、計算もすべて少ないビットの整数で行う方法です。前者では、少ないビットで速く計算できる利点を十分には生かせない、としています。
大規模言語モデルでの例
2022年8月に出た論文「LLM.int8()」(Dettmers ほか)は、大規模言語モデルは推論に多くの GPU のメモリが要る、という問題から出発しています。
- それまでの8ビットの量子化の方法は、成績が落ち、学習後にさらに調整が要ることが多く、調べられていたのは3億5000万パラメータ未満のモデルだけだった、としている
- 67億パラメータの規模から、すべての層のごく一部に飛び抜けて大きな値が現れ、これが8ビットにしたときの正確さを崩す、と説明している
- この論文の方法は、その大きな値の部分だけを16ビットで計算し、99.9%を超える値は8ビットで計算する。これで推論に要るメモリを半分にし、1750億パラメータまでのモデルを、成績を落とさずに使えた、としている
- 例として、OPT-175B や BLOOM を、一般向けの GPU を積んだ1台のサーバーで使えるようになった、と書いている
蒸留との比べ方
Gholami ほかの論文は、モデルを小さくするほかの方法とも比べています。量子化やモデルの一部を取り除く方法は、8ビット以下にして4分の1以上に縮めても成績を保てるのに対し、蒸留(→ 別ページ「小さいモデルと蒸留」)だけで強く縮めると、無視できない成績の落ち込みが出やすい、としています。そのうえで、蒸留と量子化などを組み合わせると大きな成果が出ている、と書いています。
関連する言葉
- パラメータとモデルの大きさ・小さいモデルと蒸留・学習(事前学習)と推論・GPU と計算資源・データセンター(→ この欄の別ページ)
出典
- Google for Developers「Machine Learning Glossary」の quantization の項 developers.google.com ↗
- Amir Gholami ほか「A Survey of Quantization Methods for Efficient Neural Network Inference」arXiv、2021年3月25日 arxiv.org ↗
- Tim Dettmers ほか「LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale」arXiv、2022年8月15日 arxiv.org ↗
確認メモ:2026年10月1日に、上の3つの出典の原文を開いて確かめました。Google の用語集(2026年4月10日更新の版)は quantization の項を読みました。3つの使い方のうち1つ目は、用語集の別の項(quantile bucketing)を参照する書き方になっているため、その中身を一言で言い換えています。Gholami ほかの論文は PDF(第3版)の文字を取り出し、要旨・1章・2章・3章のうち学習し直すかどうかの節・4章のうち計算の仕方の節を読みました。「16分の1」「4分の1から8分の1」は要旨の数字で、論文が挙げる用途(画像の認識・言葉の処理など)での話です。LLM.int8() の論文は PDF(第2版)の文字を取り出し、要旨と1章を読みました。「成績を落とさずに」は論文自身の主張で、このページでは確かめていません。「ビット」「浮動小数点数」「GPU」の言い換えは、ふつうの意味を一言で添えたものです。量子化の式や、値の割り当て方の細かい種類(等間隔かどうか、対称かどうかなど)は、数式を使わない決まりと長さのため載せていません。AI事業者ガイドライン(第1.2版)・文部科学省のガイドライン・NIST AI 600-1 の文字も探しましたが、量子化の説明は見つからなかったため使っていません。AIログのニュースでは、この言葉はまだ出てきていないため、「ニュースでの出方」の節は置いていません。