「ローカルでLLMを動かしてみたいけど、GPUメモリが全然足りない…」 「Hugging Faceでモデルを探すと『Q4_K_M』や『AWQ』という表記があるけど、何が違うの?」 ——そんな疑問を持つ方向けの記事です。
ChatGPTのような高性能なLLM(大規模言語モデル)は、数十〜数千億ものパラメータ(学習した知識の数値)を持っています。そのため、そのまま動かすには非常に高価なGPUと大量のメモリが必要です。
この「大きすぎて動かせない問題」を解決する技術が、今回解説する「量子化(Quantization)」です。
この記事では、量子化の基本的な仕組みから、代表的なフォーマットであるGGUF・AWQ・GPTQの違いまで、初心者の方にもわかりやすく解説します。
量子化(Quantization)とは?
量子化とは、LLMが内部で使っている数値の精度(ビット数)を下げることで、モデルのファイルサイズとメモリ使用量を大幅に削減する技術です。
LLMのパラメータは通常、非常に高い精度の数値(浮動小数点数)で保存されています。量子化はこれを、精度は少し犠牲にしつつも、より少ないビット数の数値に変換します。
身近な例で言えば、これは写真の画質と容量の関係に似ています。
高画質のRAW写真(元データ)をJPEGに変換すると、わずかな画質の低下と引き換えに、ファイルサイズを大幅に小さくできます。量子化はこれと同じことをAIモデルのパラメータに対して行います。
なぜ量子化が必要なのか?
LLMの「大きさ」は主にパラメータ数と、各パラメータを保存するビット数で決まります。
例えば、70億パラメータ(7B)のモデルを標準的な精度(FP16:16ビット浮動小数点数)で保存すると、単純計算で約14GBのメモリ(VRAM)が必要です。
| モデルサイズ | FP16(16bit)での必要VRAM |
|---|---|
| 7B(70億パラメータ) | 約14GB |
| 13B(130億パラメータ) | 約26GB |
| 70B(700億パラメータ) | 約140GB |
700億パラメータのモデルを動かすには、1枚数十万円のGPUが何枚も必要になってしまいます。これでは研究者や大企業以外には手が出せません。
量子化によってビット数を16bit → 4bitに削減すると、必要なメモリ量は理論上約4分の1になります。
| モデルサイズ | FP16(16bit) | INT4(4bit量子化後) |
|---|---|---|
| 7B | 約14GB | 約4GB |
| 13B | 約26GB | 約7GB |
| 70B | 約140GB | 約35GB |
これなら、7Bモデルは一般的なゲーミングPCのGPUでも十分動かせる範囲になります。
量子化の仕組み:ビット数を下げるとは?
量子化を理解するために、「ビット数」と「数値の精度」の関係を見てみましょう。
FP16(16ビット浮動小数点数)
LLMの標準的な精度です。小数点以下まで非常に細かい数値を表現できます。
例:
0.78613281,-1.23046875
INT8(8ビット整数)
FP16の半分のビット数です。表現できる値は-128〜127の256通りに限られますが、モデルサイズは約半分になります。
例:
0.78613281→1(四捨五入のイメージ)
INT4(4ビット整数)
さらに半分です。表現できる値はわずか16通りですが、モデルサイズはFP16の約4分の1まで縮小されます。
このように、ビット数を減らすほどモデルは軽くなりますが、数値の表現力が下がるため、回答の品質(精度)に影響が出るトレードオフがあります。
量子化の種類:PTQ と QAT
量子化の手法は大きく2つに分けられます。
PTQ(Post-Training Quantization:学習後量子化)
すでに学習が完了したモデルに対して、後から量子化を適用する手法です。追加の学習や大量のデータは不要なため、手軽に実行できます。後述するGGUF・AWQ・GPTQはすべてこのPTQに分類されます。
QAT(Quantization-Aware Training:量子化考慮学習)
モデルの学習段階から量子化を意識したトレーニングを行う手法です。精度の低下を最小限に抑えられますが、学習をやり直す必要があるため、コストが高くなります。
一般的にLLMを手軽に使いたい場合はPTQが主流であり、以降で紹介する各フォーマットもすべてPTQベースです。
代表的な量子化フォーマット
量子化されたモデルを配布・利用するための代表的なフォーマットが3つあります。それぞれの特徴を見ていきましょう。
GGUF(旧GGML)
GGUFは、Llama.cppの作者であるGeorgi Gerganov氏が開発したフォーマットで、CPU推論に最適化されている点が最大の特徴です。
- 主な用途: ローカルPC(CPU中心)でLLMを動かしたい場合
- 推論エンジン: Ollama、llama.cpp、LM Studioなど
- メリット: GPU不要でも動作する。CPUとGPUの併用も可能
- 量子化バリエーション:
Q2_K,Q4_K_M,Q5_K_S,Q8_0など、ファイル名で量子化レベルがわかる
GGUFのファイル名に含まれる表記の意味は以下のとおりです。
| 表記 | 意味 |
|---|---|
Q4 | 4ビット量子化 |
Q8 | 8ビット量子化 |
K_M | K-Quant方式(Medium品質) |
K_S | K-Quant方式(Small=軽量優先) |
初心者へのおすすめ: まずGGUFの
Q4_K_Mから試すのがバランスが良く、最も一般的な選択肢です。
AWQ(Activation-Aware Weight Quantization)
AWQは、モデルの重みの中でも出力(精度)に大きく影響する重要なパラメータを自動で特定し、それらを高い精度で保護しながら量子化する手法です。
- 主な用途: GPU環境での高速推論
- 推論エンジン: vLLM、TGI(Text Generation Inference)など
- メリット: 同じビット数でもGPTQより精度が高い傾向がある。推論速度も高速
- デメリット: GPU(CUDA対応)が必須
AWQは「すべてのパラメータが等しく重要ではない」という考え方に基づいており、重要度の低いパラメータを大胆に量子化しつつ、精度に影響する少数の重要パラメータは保護します。
GPTQ(GPT Quantization)
GPTQは、2022年に発表された研究論文に基づく量子化手法で、少量のキャリブレーション(校正)データを使って、量子化による誤差を最小化するのが特徴です。
- 主な用途: GPU環境での推論
- 推論エンジン: AutoGPTQ、Transformers(HuggingFace)、ExLlamaV2など
- メリット: 広く普及しており、対応ツールが豊富。INT4量子化でも高い精度を維持
- デメリット: 量子化処理自体に時間がかかる(事前にキャリブレーションが必要)
3つのフォーマットの比較
各フォーマットの違いをまとめると以下のようになります。
| 項目 | GGUF | AWQ | GPTQ |
|---|---|---|---|
| 主な実行環境 | CPU(+GPU併用可) | GPU(CUDA) | GPU(CUDA) |
| 推論エンジン | Ollama, llama.cpp | vLLM, TGI | AutoGPTQ, ExLlamaV2 |
| 推論速度 | ○(CPUでは遅め) | ◎(高速) | ○(高速) |
| 精度維持 | ○ | ◎ | ○ |
| 手軽さ | ◎(最も簡単) | ○ | ○ |
| おすすめ用途 | ローカルで手軽に試す | 本番環境でのGPU推論 | GPU環境で幅広く利用 |
モデルの選び方
- GPUがない/CPUで手軽に試したい → GGUF(Ollama等で簡単に利用可能)
- GPUがあり、本番運用で高速・高精度を求める → AWQ
- GPUがあり、幅広いツールと互換性を重視する → GPTQ
量子化の注意点
量子化は非常に強力な技術ですが、以下の点には注意が必要です。
- 精度の低下
ビット数を下げるほどモデルは軽くなりますが、回答の品質は下がります。特に4bit以下では、複雑な推論や多言語タスクで精度の低下が目立つことがあります。用途に合わせた量子化レベルの選定が重要です。
- すべてのモデルに最適とは限らない
小さなモデル(1B〜3Bクラス)はもともとパラメータ数が少ないため、量子化による情報の欠落が相対的に大きくなります。量子化の恩恵が最も大きいのは、7B以上の中〜大規模モデルです。
- 量子化後のファインチューニング
量子化されたモデルをさらにファインチューニング(追加学習)したい場合は、QLoRAのような専用の手法を使う必要があります。
まとめ
今回は、LLMを手元の環境で動かすための重要技術「量子化」について解説しました。
- 量子化とは: モデルの数値精度(ビット数)を下げ、サイズとメモリ使用量を削減する技術
- メリット: 高価なGPUがなくてもLLMを動かせるようになる
- 3大フォーマット: CPU向けのGGUF、高精度GPU推論のAWQ、汎用性の高いGPTQ
- 注意点: ビット数を下げすぎると精度が低下するため、用途に応じた選択が重要
ローカルLLMを始めたい方は、まずOllamaなどのツールでGGUF形式の量子化モデルを試してみるのがおすすめです。量子化の仕組みを理解することで、「どのモデルをどの環境で、どの精度で使うか」という判断が的確にできるようになります。