LLMの量子化とは?モデルを軽量化してローカルで動かす技術

AIを知りたい
先生、LLMをパソコンで動かしたいんですが、メモリが足りないみたいです。「量子化」をすると小さくなると聞いたのですが、どういう技術ですか?

AIエンジニア
量子化は、モデルの重み(パラメータ)の精度を下げることで、モデルのサイズとメモリ使用量を大幅に削減する技術だよ。例えば、通常のモデルは16ビットの浮動小数点数で重みを保持しているけど、これを4ビットの整数に変換すると、サイズが約1/4になるんだ。

AIを知りたい
精度を下げてしまうと、AIの性能は落ちないんですか?

AIエンジニア
実は、適切な量子化を行えば、性能の低下はごくわずかなんだ。例えば4ビット量子化(Q4_K_M)の場合、元のモデルの97〜99%程度の性能を維持しつつ、メモリ使用量を1/4に削減できる。これにより、70億パラメータのモデルがRTX 3060(12GB VRAM)でも動くようになるよ。
量子化とは。
人工知能に関わる言葉である「量子化(Quantization)」について説明します。AIモデルの重みパラメータを高精度(FP16/FP32)から低精度(INT8/INT4)に変換することで、モデルサイズとメモリ使用量を大幅に削減する技術です。推論速度の向上と省メモリ化により、ローカル環境やエッジデバイスでのLLM実行を可能にします。
量子化とは
量子化(Quantization)は、AIモデルの重み(パラメータ)を高精度の数値表現から低精度の数値表現に変換する技術です。通常、LLMの重みはFP16(16ビット浮動小数点数)またはFP32(32ビット)で保持されていますが、量子化によってINT8(8ビット整数)やINT4(4ビット整数)に変換します。
例えば、70億パラメータのLLM(Llama 3 8B)の場合、FP16では約16GBのメモリが必要ですが、4ビット量子化を適用すると約5GBまで削減できます。これにより、一般的なゲーミングPC(RTX 3060/12GB VRAM)でも大規模なLLMを実行可能になります。
量子化の種類
| 量子化手法 | 精度 | サイズ削減率 | 性能維持 | ツール |
|---|---|---|---|---|
| FP16(基準) | 16ビット浮動小数点 | 基準 | 100% | – |
| INT8 | 8ビット整数 | 約50% | 99%+ | bitsandbytes |
| GPTQ(4bit) | 4ビット整数 | 約75% | 97-99% | AutoGPTQ |
| GGUF(Q4_K_M) | 4ビット混合精度 | 約75% | 97-99% | llama.cpp |
| AWQ(4bit) | 4ビット(活性化考慮) | 約75% | 98-99% | AutoAWQ |
| GGUF(Q2_K) | 2ビット混合精度 | 約87% | 90-95% | llama.cpp |
GGUF形式とllama.cpp
GGUF(GPT-Generated Unified Format)は、llama.cppプロジェクトで使用される量子化モデルのファイル形式です。CPU+GPU のハイブリッド推論に対応しており、GPUのVRAMが不足している場合でもCPUのRAMを活用してモデルを実行できます。
GGUFの量子化レベルは「Q4_K_M」のような名前で表現されます。Qの後の数字がビット数、K_MはK-quant方式のMediumサイズを意味します。Q4_K_M(4ビット)が最もバランスが良く、推奨される設定です。Q5_K_Mはやや高品質、Q3_K_MやQ2_Kはより小さいが品質は低下します。
GPTQ・AWQ・bitsandbytes
GPTQは、GPU上での推論に特化した量子化手法です。重みの量子化誤差を最小化するよう最適化されており、vLLMやtext-generation-inferenceなどの推論サーバーで広く使われています。
AWQ(Activation-Aware Weight Quantization)は、重みの重要度を活性化(Activation)の分布から推定し、重要な重みはより高い精度を維持する手法です。GPTQよりもさらに高品質な量子化が可能です。
bitsandbytesは、HuggingFaceのtransformersライブラリと統合された量子化ライブラリで、QLoRAでの学習時にも使用されます。4ビットおよび8ビットの量子化に対応しています。
量子化モデルの選び方
| 利用環境 | 推奨量子化 | 理由 |
|---|---|---|
| RTX 4090(24GB) | GPTQ 4bit / GGUF Q5_K_M | 高品質、十分なVRAM |
| RTX 3060(12GB) | GGUF Q4_K_M | バランス良好 |
| 8GB VRAM以下 | GGUF Q3_K_M / Q2_K | メモリ節約優先 |
| CPU only(16GB RAM) | GGUF Q4_K_M(小モデル) | CPUでも動作可能 |
| スマートフォン | INT4 + 小規模モデル | エッジデバイス向け |
まとめ
量子化は、大規模AIモデルを限られたハードウェアで実行可能にする重要な技術です。4ビット量子化であれば元のモデルの97〜99%の性能を維持しながら、メモリ使用量を約1/4に削減できます。GGUF、GPTQ、AWQなど複数の手法があり、利用環境と目的に応じて最適な手法を選択することが重要です。
