はじめに
「量子化(Quantization)」という言葉を、最近よく見かけるようになりました。
ChatGPT のような大規模言語モデル(LLM)を、自分のパソコンやスマホで動かす話題と一緒に語られることが多い言葉です。
ただ、名前がなんだか難しそうで、「量子コンピュータと関係あるの?」と身構えてしまう方もいるかもしれません。
結論からいうと、量子化は身近なたとえで理解できる、わりと素直な技術です。
量子コンピュータとは別物で、関係はありません。
この記事では、次のことを目指します。
- 量子化が「何をしている技術なのか」を、非エンジニアの方にも伝わる言葉で説明します
- ビット数を落とすと何が変わるのかを、図で見て掴めるようにします
- 「実際に量子化を試すには、どんな手順になるのか」をステップで紹介します
対象読者は、AIの仕組みに興味はあるものの、数式やプログラムには馴染みが薄い方を想定しています。
専門用語は最小限にして、出てきたものはその都度かみ砕いて説明します。
なお、前半の説明は特定の環境を前提としません。
後半の手順紹介には実行コマンドも載せますが、コマンドの中身が分からなくても、流れだけ追えば全体像は掴めるように書いています。
掲載するコマンドは、2026年6月時点の各ツールの標準的な使い方をもとにした参考例です。
一言でいうと
量子化とは、AIモデルの中身にある「数字」を、ざっくり丸めてサイズを小さくし、動作を軽くする技術です。
多少の品質低下と引き換えに、巨大なモデルを普通のパソコンやスマホでも動かせるようにします。
写真を圧縮して容量を減らす作業に近い、と考えると掴みやすいかもしれません。
なぜ量子化が必要なのか
モデルの正体は「膨大な数字の集まり」
LLM の正体は、たくさんの「重み(パラメータ)」と呼ばれる数字の集まりです。
有名なモデルは、数十億から数千億個もの数字を持っています。
この一つひとつの数字は、ふだんとても細かい精度で記録されています。
たとえば 0.7341892… のように、小数点以下を細かく持つ「32ビット(FP32)」という形式が、もっとも精密な基準です。
近年のモデルでは、これを少し軽くした16ビット(FP16 や BF16)で保存・実行することも一般的になっています。
細かい数字ほど容量がかさむ
問題は、数字が細かいほど保存に容量を使うことです。
数千億個の細かい数字をそのまま持つと、何百GBもの容量が必要になります。
その結果、高価な専用機材(GPU)がないと動かせません。
そこで「その細かい桁、本当に全部必要だろうか」と考えます。
数字を少しだけざっくり丸めて、容量と計算量を減らす。
これが量子化の発想です。
身近な例で理解する
抽象的な話が続いたので、日常のたとえに置き換えてみます。
例1:値段の表記
お店の戦略を考えるとき、原価をこう言うとします。
- 細かい版(量子化前):「この商品の原価は 1,234.5678円 です」
- 丸めた版(量子化後):「この商品の原価は だいたい1,200円 です」
戦略を議論するうえでは、「だいたい1,200円」で十分役に立ちます。
.5678 まで覚えておかなくても、判断の結論はほとんど変わりません。
細かい桁を捨てても用は足りる、という感覚が量子化の出発点です。
例2:写真の圧縮
スマホで撮った高画質の写真を、メッセージアプリで送るときに自動で圧縮することがあります。
- 元の写真:とても綺麗だが、ファイルが重い
- 圧縮後:よく見ると少し粗いが、ほとんど見分けがつかず、軽くてすぐ送れる
量子化はこれに近い発想です。
モデルを「圧縮」して、品質をできるだけ保ったまま軽くします。
例3:地図の縮尺
道案内をするのに、1cm単位の超精密な地図は要りません。
「駅から徒歩5分、2つ目の角を右」で、たいてい目的地に着けます。
必要十分な粗さに落とすことで、かえって扱いやすくなる、という点も似ています。
ビット数で何をしているのか
ここで「ビット」という言葉が出てきます。
ビットは、数字を記録するときの細かさの単位だと考えてください。
ビット数が多いほど細かく、少ないほど粗い表現になります。
量子化では、この精度(ビット数)を段階的に落とします。
下の図は、同じ数字 0.7341892 を、それぞれの精度で表すとどうなるかを並べたものです。
左の列が精度(ビット数)、中央が「その精度で表現できる数字の段階」、右が容量の目安です。
精度を落とすほど、表現できる刻みが減り、0.7 のようにざっくりした値になります。
それと引き換えに、右の容量バーは短くなっていきます。
文章でも同じ内容を表にしておきます。
| 精度 | 復元したときの値のイメージ | 32ビットを基準にした容量の目安 | 品質の目安 |
|---|---|---|---|
| 32ビット(FP32) | 0.7341892 | 100% | 最高 |
| 16ビット(FP16) | 0.7342 | 約50% | ほぼ同じ |
| 8ビット(INT8) | 0.73 | 約25% | わずかに劣化 |
| 4ビット(INT4) | 0.7 | 約13% | 体感できる劣化も出やすい |
数字の並びでイメージすると、次のような違いです。
- 量子化前:
0.73,0.41,0.92,0.18(細かい刻みで表現) - 量子化後:
0.7,0.4,0.9,0.2(粗い刻みに寄せる)
表現できる「数字の刻み」を粗くすることで、1個あたりの記録量を減らしています。
ちなみに「FP」は浮動小数点(小数を扱う形式)、「INT」は整数を指します。
4ビットまで落とす段階では、小数をいったん整数の目盛りに置き換えて記録し、使うときに元の値に近い大きさへ戻す、という工夫が入ります。
このとき「どれくらいの倍率で戻すか」という変換の情報(スケール)も一緒に持っておきます。
戻した値は元と完全に同じではなく、近い値になる、という点がポイントです。
細部は気にしなくても、「粗い目盛りに置き換えて軽くしている」と捉えれば十分です。
メリットとデメリット
量子化には、はっきりした利点と、無視できない弱点の両方があります。
メリット
- モデルのサイズが小さくなります。数百GB級のモデルが、数十GB級に収まることもあります
- メモリ使用量が減ります。動かすときに必要なメモリ(パソコンのRAMやGPUのメモリ)が小さくなり、本来は高価なサーバーが要るモデルでも、手元のPCで動かせる場合があります
- 推論(AIが答えを返す処理)が速くなる場合があります。扱うデータが軽くなるぶん計算が速くなり、電気代やクラウド費用も下げやすくなります
デメリット
- 精度(品質)が少し落ちることがあります。丸めるほど、回答の正確さや細かいニュアンスが失われやすくなります
- 落としすぎると壊れます。4ビットよりさらに粗くすると、急に回答が不安定になることがあります
どこまで落とすかは、モデルや用途によって最適解が変わります。
一般には、16ビットや8ビットは品質への影響が小さく、4ビットは「軽さを優先しつつ実用に耐える」あたりの落としどころとして広く使われています。
ただし、これはあくまで目安です。
用途によっては8ビットでも厳しい場面があり、逆に4ビットで十分なこともあります。
実際に量子化するには:全体の工程
ここからは「では、実際にどうやって量子化するのか」を見ていきます。
細かいコマンドの前に、まず工程の全体像を4ステップで掴んでおくと迷いません。
- 元になるモデルを用意します(公開モデルをダウンロードします)
- 何ビットに落とすかを決めます(たとえば4ビットや8ビット)
- 量子化のツールにモデルを通して、軽い版を作ります
- 軽くなった版を動かして、品質と速度を確かめます
この4ステップのうち、多くの人にとって最初の分かれ道になるのが「自分で量子化するか、誰かが量子化済みのものを使うか」です。
結論をいえば、最初は量子化済みのモデルを使うのが圧倒的に手軽です。
手を動かして試す:2つの方法
方法A:量子化済みモデルを使う(いちばん簡単)
実は、多くの人が「量子化」と意識しないまま、すでに量子化済みのモデルを使っています。
個人のPCで動かすツールは、最初から軽くした版を配っていることが多いからです。
代表的なツールを2つ挙げます。
- LM Studio:画面をクリックして使えるアプリです。プログラミングの知識がなくても、モデルを選んでダウンロードし、チャットを試せます
- Ollama:コマンドで動かすシンプルなツールです。1行で動かせる手軽さが特長です
たとえば Ollama では、次の1行でモデルを動かせます。
ollama run llama3.1
このとき自動でダウンロードされるモデルは、既定で量子化済み(多くは4ビット級)です。
つまり、利用者は量子化の作業を一切せずに、軽量版の恩恵だけ受け取っています。
まず試すなら、画面操作で完結する LM Studio か、1行で動く Ollama から始めるのがおすすめです。
「量子化済みのモデルを動かす」体験をしておくと、後の「自分で量子化する」話も腑に落ちやすくなります。
方法B:自分で量子化する(一歩進んだやり方)
「配られている版では物足りない」「自分が選んだモデルを、好きなビット数で軽くしたい」という段階になったら、自分で量子化します。
ここからはコマンド操作が中心になり、エンジニア寄りの作業になります。
流れだけ追えれば十分なので、コマンドの細部は読み飛ばしても構いません。
ここでは、個人利用で広く使われている llama.cpp というツールを例にします。
工程は、先ほどの4ステップとほぼ同じです。
まず、公開モデルを GGUF という形式に変換します。
GGUF は、軽量実行向けにモデルをまとめたファイル形式です。
python convert_hf_to_gguf.py ./my-model --outtype f16 --outfile my-model-f16.gguf
--outtype f16 は「16ビットで書き出す」指定です。
これを省くと、変換ツールが形式を自動で選ぶため、明示しておくと意図したサイズになります。
次に、変換したモデルを4ビットへ量子化します。
Q4_K_M は「4ビット級の、品質と軽さのバランスが良い設定」としてよく使われる指定です。
./llama-quantize my-model-f16.gguf my-model-q4.gguf Q4_K_M
最後に、軽くなった版を実際に動かして、品質と速度を確かめます。
./llama-cli -m my-model-q4.gguf -p "自己紹介してください"
元の my-model-f16.gguf と、量子化後の my-model-q4.gguf の両方を動かして、回答の質とファイルサイズを見比べると、量子化の効果が体感できます。
なお、llama-quantize や llama-cli の実行ファイルは、ビルド方法によっては ./build/bin/ の下に置かれます。
コマンドが見つからないときは、./build/bin/llama-quantize のようにパスを補ってください。
Python を使う環境では、bitsandbytes というライブラリで「読み込むときに4ビット化する」やり方もあります。
具体的には、4ビットで読み込む設定(BitsAndBytesConfig(load_in_4bit=True))をモデルの読み込み時に渡します。
これだけでメモリ使用量を抑えられます。
用途に応じて、扱いやすい方を選んでください。
量子化の「やり方」にも種類がある
ここまでは「学習が終わったモデルを、後から量子化する」方法を紹介しました。
これは PTQ(Post-Training Quantization:学習後の量子化)と呼ばれ、手軽さが利点です。
GPTQ や AWQ は、この PTQ に分類される代表的な量子化の手法です。
なお、先ほど使った GGUF は量子化の手法ではなく、llama.cpp 系で使われるファイル形式で、量子化済みのモデルを収める入れ物にあたります。
一方で、QAT(Quantization-Aware Training:量子化を見越した学習)という方法もあります。
こちらは学習の段階から「あとで量子化される前提」で訓練するため、品質を保ちやすい反面、手間とコストが大きくなります。
個人で試す範囲では、まず PTQ(量子化済みモデルの利用、または後からの量子化)で十分なことがほとんどです。
どのくらい軽くなるのか
数字の感覚もつけておきます。
ここでは、よく使われる70億〜80億パラメータ級のモデルを例にします。
- 16ビット(FP16)のまま:おおよそ14〜16GB
- 4ビット(INT4級)に量子化:おおよそ4〜5GB
ざっくり3分の1前後まで小さくなる計算です。
このサイズ差が、「専用サーバーがないと動かない」と「手元のPCでも動く」を分ける境目になります。
なお、ここで挙げた数値はパラメータ数から見積もった目安です。
実際のファイルサイズは、量子化の設定や付随情報の持ち方によって前後します。
つまずきやすいポイント
最後に、試すときに引っかかりやすい点を、対策とセットでまとめます。
落としすぎて品質が崩れる
軽さを求めて極端なビット数にすると、回答が不安定になります。
まず4ビット級から試し、品質が足りなければ8ビットへ上げて比べてください。
メモリが足りずに止まる
量子化しても、モデルを動かすには相応のメモリが必要です。
手元の空きメモリと、モデルの容量の目安を先に確認してください。
元モデルの利用条件を確認しないまま使う
公開モデルにはライセンス(商用可否や再配布の条件)があります。
量子化版を配ったり業務で使ったりする前に、元モデルの規約を確認してください。
どれも、いきなり大きいモデルや極端な設定で始めると出会いやすい壁です。
小さめのモデルと標準的な設定から始めて、1つずつ条件を変えると、原因を切り分けやすくなります。
まとめ
量子化は、AIモデルの中身の数字をざっくり丸めて、品質をできるだけ保ったまま軽くする技術です。
写真を圧縮するように、多少の精度と引き換えに、誰でも・安く・速く使える形へ寄せる工夫だといえます。
要点を振り返ります。
- 量子化は、モデルの数字の精度(ビット数)を落として容量と計算量を減らす技術です
- 16ビットや8ビットは品質への影響が小さく、4ビットは軽さと実用性の落としどころとしてよく使われます
- まず試すなら、量子化済みモデルを LM Studio や Ollama で動かすのが手軽です
- 一歩進むなら、
llama.cppなどで自分のモデルを好きなビット数に量子化できます
興味が湧いたら、まずは Ollama でモデルを1つ動かしてみるところから始めてみてください。
「軽くしても、ちゃんと賢いまま動く」感覚が掴めると、量子化という言葉がぐっと身近になります。
おことわり
本記事は、非エンジニアの方にも全体像を掴んでもらうことを優先し、仕組みをかなり単純化して説明しています。
正確には、量子化には対称・非対称、グループ単位の量子化など、さらに細かい工夫が数多くあります。
掲載したコマンドは、2026年6月時点の各ツール(llama.cpp、Ollama など)の標準的な使い方をもとにした例です。
ツールはバージョンによって書き方やオプションが変わることがあるため、実際に試す際は各ツールの公式ドキュメントもあわせて確認してください。
