科学と神々株式会社アドベントカレンダー 2025
LLM量子化 Day 2: なぜ量子化が必要なのか
LLMの「重さ」を感じてみよう
「7Bモデル」「13Bモデル」「70Bモデル」——LLMを調べていると、こうした表記をよく見かけます。この「B」はBillion(10億)の略で、モデルが持つパラメータ(重み)の数を表しています。
7Bモデルとは、70億個のパラメータを持つモデルのことです。
では、これが実際にどれくらいの「重さ」になるのでしょうか?
数字で見るメモリ要件
コンピュータ上で数値を扱う際、最も一般的な形式の一つがFP16(16ビット浮動小数点数)です。これは1つの数値を2バイト(16ビット)で表現します。
ここで簡単な計算をしてみましょう。
パラメータ数: 7,000,000,000(70億)
1パラメータのサイズ: 2バイト(FP16)
必要なメモリ: 7,000,000,000 × 2 = 14,000,000,000バイト = 約14GB
つまり、7Bモデルの重みを読み込むだけで14GBのメモリが必要です。
しかし、実際にモデルを動かすには、これだけでは足りません。
推論時に必要な「その他のメモリ」
LLMを実行する際、モデルの重み以外にも様々なデータがメモリを消費します。
KVキャッシュ(Key-Value Cache)
LLMは過去の会話を「覚えて」おくために、各トークンのKeyとValueを保存します。これがKVキャッシュです。コンテキスト長(会話の長さ)に比例してメモリを消費するため、長い会話になるほどメモリ使用量が増えます。
4096トークンのコンテキストを持つ7Bモデルの場合、KVキャッシュだけで2〜4GB程度のメモリを使用することがあります。
アクティベーション(中間計算結果)
推論中、各層の出力を一時的に保存する必要があります。バッチサイズ(同時に処理するリクエスト数)が大きいほど、この領域も大きくなります。
その他のバッファ
行列演算のための一時領域、トークナイザーのバッファなど、細々としたメモリ消費があります。
現実の壁:ハードウェアの限界
これらを合計すると、7Bモデルを快適に動かすには20GB以上のメモリが必要になることも珍しくありません。
ここで現実を見てみましょう。
| ハードウェア | 搭載メモリ | 価格帯 |
|---|---|---|
| MacBook Air M2 | 8-24GB(統合メモリ) | 15-30万円 |
| RTX 4090 | 24GB VRAM | 25-30万円 |
| A100 40GB | 40GB HBM | 150万円〜 |
| A100 80GB | 80GB HBM | 250万円〜 |
一般的なノートPCやゲーミングPCでは、7Bモデルすら満足に動かせないことがわかります。13Bや70Bモデルとなると、さらに高価な機材が必要です。
量子化が解決する問題
ここで量子化の出番です。量子化は、モデルの重みを表現するビット数を減らすことで、メモリ要件を大幅に削減します。
4ビット量子化の場合
パラメータ数: 7,000,000,000(70億)
1パラメータのサイズ: 0.5バイト(4ビット)
必要なメモリ: 7,000,000,000 × 0.5 = 3,500,000,000バイト = 約3.5GB
14GBが3.5GBに——なんと75%の削減です。
これなら、一般的なノートPCでも7Bモデルを動かせる可能性が出てきます。
量子化がもたらす3つの価値
1. メモリコストの削減
上で見たように、メモリ使用量を大幅に削減できます。これにより、高価なGPUを使わずにLLMを実行できるようになります。
2. 推論速度の向上
意外かもしれませんが、量子化されたモデルは元のモデルより速く動くことがあります。
その理由は「メモリバンド幅」にあります。現代のコンピュータでは、計算速度よりもメモリとのデータ転送がボトルネックになることが多いのです。小さいモデルはメモリから素早く読み込めるため、結果として推論速度が向上します。
また、4ビット整数演算は、一部のハードウェアでは浮動小数点演算より高速に実行できます。
3. 運用コストの削減
クラウドでLLMを運用する場合、GPUインスタンスのコストは大きな負担です。
例:AWS での月額コスト概算
- A100 80GB: 約$2.5/時間 × 720時間 = 約$1,800/月
- RTX 4090相当: 約$0.8/時間 × 720時間 = 約$576/月
量子化により小さいGPUで済むようになれば、運用コストを大幅に削減できます。
でも、品質は大丈夫?
「ビット数を減らしたら、モデルの賢さも減るんじゃないの?」
これは当然の疑問です。そして、答えは「ある程度は、はい」です。
しかし、現代の量子化技術は非常に洗練されており、適切な手法を選べば、驚くほど品質を維持できます。
Llama 2 7Bでの実測例
| 量子化 | サイズ | 品質維持率* |
|---|---|---|
| FP16(元) | 14GB | 100% |
| 8ビット | 7.5GB | 99%以上 |
| 4ビット (Q4_K_M) | 4.0GB | 95-97% |
| 3ビット | 3.5GB | 85-90% |
| 2ビット | 2.5GB | 70-80% |
*品質維持率はPerplexity等のベンチマークに基づく概算
4ビット量子化でも95%以上の品質を維持できます。多くのユースケースでは、この程度の品質低下は気にならないレベルです。
量子化を避けるべきケース
万能に見える量子化ですが、以下のケースでは注意が必要です。
ファインチューニング予定のモデル
量子化されたモデルをファインチューニング(追加学習)することは技術的に困難です。学習を予定している場合は、元の精度を維持しておきましょう。
数値精度が重要なタスク
複雑な数学的推論や、正確な数値計算が求められるタスクでは、量子化による精度低下が問題になることがあります。
小規模モデル
1-3B程度の小さいモデルは、そもそも量子化なしでも動かせることが多いです。量子化のメリットが薄い場合は、無理に量子化する必要はありません。
Tips: 量子化前に確認すべきこと
- ユースケースを明確に: 何のためにLLMを使うのか?品質要件はどの程度か?
- ハードウェア制約を把握: 使えるメモリはどれくらいか?
- ベンチマークを取る: 量子化前後で、自分のタスクでの品質を比較する
- 段階的に試す: まずQ8_0(8ビット)から試して、必要に応じて下げていく
次回予告
Day 3では「量子化の基本原理」について解説します。16ビットの数値を4ビットにどうやって圧縮するのか、その数学的な仕組みを、難しい数式を使わずに理解していきます。
「推測するな、計測せよ」——量子化においても、この格言は非常に重要です。自分のユースケースで実際に測定して、最適な量子化レベルを見つけてください。