科学と神々株式会社アドベントカレンダー 2025
LLM量子化 Day 4: 量子化手法の全体像
3つのパラダイム
LLM量子化には、大きく分けて3つのアプローチがあります:
量子化のパラダイム
├── PTQ (Post-Training Quantization)
│ └── 学習済みモデルを後から量子化
│ → GGUF, AWQ, GPTQ
│
├── QAT (Quantization-Aware Training)
│ └── 量子化を考慮しながら学習
│ → 従来からの研究的アプローチ
│
└── Native Low-Bit Training
└── 最初から低ビットで学習
→ BitNet b1.58 (1.58ビット)
これらは「いつ・どのように」ビット数を削減するかが異なります。
PTQ:学習後量子化(llm-quantize の主要手法)
PTQは「学習後量子化」と訳されます。すでに学習が完了したモデルを、追加の学習なしに量子化する手法です。
料理に例えると
PTQは、すでに完成した料理を「お弁当箱に詰め直す」作業に似ています。元の料理の味は少し損なわれるかもしれませんが、おおむねそのまま楽しめます。
PTQの代表的な手法
| 手法 | 特徴 | 主な用途 |
|---|---|---|
| GGUF | k-quantsによる混合精度 | CPU/Apple Silicon |
| AWQ | アクティベーション重視 | GPU推論 (vLLM) |
| GPTQ | ヘシアンベースの誤差補償 | GPU推論 (ExLlama) |
| HQQ | キャリブレーション不要 | 高速量子化 |
PTQの利点
- 追加学習が不要:GPUを長時間占有せずに済む
- 学習データ不要:元のデータセットがなくても実行可能(AWQ/GPTQはキャリブレーションデータのみ)
- 迅速に適用:数分〜数時間で完了
- エコシステムが充実:llama.cpp、vLLM、TGIなど
PTQの欠点
- 低ビットでの精度低下:2〜3ビットでは品質が顕著に落ちる
- 元モデルの品質に依存:量子化で品質は上がらない
QAT:量子化を考慮した学習
QATは「量子化を考慮した学習」です。学習中に量子化の影響をシミュレートすることで、量子化に強いモデルを作ります。
スポーツ選手に例えると
本番の試合(量子化後の推論)を想定して練習する選手のようなものです。
フェイク量子化の仕組み
フォワードパス:
FP32重み → 量子化 → 逆量子化 → FP32(誤差が注入される)
↓
活性化計算
バックワードパス:
勾配は通常通りFP32で計算
→ モデルが量子化誤差に適応
QATの利点と欠点
| 利点 | 欠点 |
|---|---|
| 低ビットでも高精度 | 計算コストが高い |
| ロバスト性向上 | 学習データが必要 |
| 理論的に最適 | 実装が複雑 |
BitNet:1.58ビットの革命
2024年にMicrosoftが発表したBitNet b1.58は、LLM量子化のパラダイムを大きく変える可能性を持っています。
BitNetとは
BitNetは、PTQやQATとは根本的に異なるアプローチです。最初から重みを三値(-1, 0, +1)だけで学習します。
従来の量子化:
FP16で学習 → 学習後に量子化 → 精度低下
BitNet:
三値(-1, 0, +1)で最初から学習 → 精度低下なし
なぜ1.58ビットか
三値 {-1, 0, +1} を表現するには log₂(3) ≈ 1.58 ビットが必要です。これが「1.58ビット」の由来です。
2値 (-1, +1): 1ビット → BitNet 1-bit
3値 (-1, 0, +1): 1.58ビット → BitNet b1.58
BitNetの革新性
計算の変化:
従来: 行列乗算 (multiply-accumulate)
W × X → 高コストな乗算が必要
BitNet: 加減算のみ (addition)
W ∈ {-1, 0, +1}
→ 乗算が不要!
→ +1: そのまま加算
→ -1: 符号反転して加算
→ 0: スキップ
これにより、理論上の演算コストは大幅に削減されます。
BitNet b1.58の性能
Microsoftの研究によると:
| 比較 | BitNet b1.58 | 従来のFP16 |
|---|---|---|
| 3Bパラメータ | LLaMA同等の精度 | 基準 |
| 推論速度 | 2.71倍高速 | 基準 |
| GPUメモリ | 3.55倍少ない | 基準 |
| 70Bパラメータ | 4.1倍高速 | 基準 |
BitNetの制約
- 学習が必要:既存モデルをBitNetに変換することは困難
- 専用最適化:通常のGPUライブラリでは恩恵を受けにくい
- エコシステム:まだ発展途上(bitnet.cpp、2024年10月公開)
llm-quantizeがPTQを選んだ理由
llm-quantizeプロジェクトでは、すべての量子化器(GGUF、AWQ、GPTQ)がPTQ手法を採用しています。
1. ユースケースとの適合
目的: 公開されている学習済みモデルを手軽に量子化
QAT/BitNet:
├── 高性能GPU必須(A100で数日)
├── 学習データの準備が必要
└── 専門知識が必要
PTQ:
├── CPUでも実行可能
├── キャリブレーションデータのみ
└── CLIコマンド一つで完了 ✓
2. 4ビット以上では十分な品質
| 手法 | 4ビット精度維持率 | 8ビット精度維持率 |
|---|---|---|
| PTQ | 95%以上 | 99%以上 |
| QAT | 97%以上 | 99%以上 |
多くのユースケースでは、PTQで十分な品質が得られます。
3. エコシステムとの互換性
主要な推論フレームワーク(llama.cpp、vLLM、TGI)は、すべてPTQベースの量子化形式をサポートしています。
キャリブレーション:PTQの品質を左右する鍵
PTQでも高品質な量子化を実現するための鍵が「キャリブレーション」です。
キャリブレーションの役割
キャリブレーションなし:
重み分布のみで量子化 → 外れ値に引っ張られる
キャリブレーションあり:
実際のデータで活性化分布を分析
→ 重要な重みを特定
→ 最適なスケールを決定
→ 高品質な量子化
形式別のキャリブレーション要否
| 形式 | キャリブレーション | 特徴 |
|---|---|---|
| GGUF | 不要(オプション) | 重みの統計のみで量子化 |
| AWQ | 必要 | アクティベーション分析 |
| GPTQ | 必要 | ヘシアン行列の計算 |
llm-quantizeではデフォルトで256サンプルのキャリブレーションを使用します。
HQQ:キャリブレーション不要の新手法
Half-Quadratic Quantization (HQQ) は2024年に登場した新しい手法です。
特徴:
├── キャリブレーションデータ不要
├── 高速な量子化(リアルタイムに近い)
├── 任意のモデルに適用可能
└── AWQ/GPTQに匹敵する精度
HQQは、重みの二次最適化問題を効率的に解くことで、キャリブレーションなしでも高品質な量子化を実現します。
LittleBit:0.1ビット/重みの極限圧縮
LittleBit(arXiv 2506.13771、NeurIPS 2025)は、潜在行列分解を用いた超低ビット量子化手法です。
LittleBitの革新性:
├── 0.1 BPW(bits per weight)を実現
├── 31倍のメモリ削減
├── Llama2-13Bを0.9GB未満に圧縮
└── FP16比で11.6倍の高速化(カーネルレベル)
技術的なアプローチ
従来の量子化:
重み → 直接量子化 → 2-8ビット
LittleBit:
重み → 低ランク分解 → 因子を二値化 → 0.1ビット
W ≈ L × R(低ランク近似)
L, R を {-1, +1} に二値化
多スケール補償
極端な圧縮による精度低下を防ぐため、3つのレベルで補償を行います:
- 行レベル補償
- 列レベル補償
- 潜在次元レベル補償
llm-quantizeでの対応
llm-quantizeではLittleBitサポートを計画中です(スペック策定済み)。将来のバージョンで以下の機能が追加される予定です:
- 0.1〜2.0 BPWの柔軟な圧縮レベル
- 自動/手動のランク選択
- 品質閾値による自動調整
- ネイティブ
.littlebit形式とGGUF互換出力
手法選択のガイドライン
「とりあえず試したい」場合
→ GGUF Q4_K_M(キャリブレーション不要、高速)
「GPU推論で高スループットが欲しい」場合
→ AWQ 4bit(vLLMとの相性が良い)
「品質を最大化したい」場合
→ GPTQ 4bit + group_size=64(細かい制御が可能)
「最小サイズが必要」場合
→ GGUF Q2_K(ただし品質低下に注意)
「将来を見据えて」
→ BitNet対応モデルの登場を待つ(2025年以降)
次回予告
Day 5では「良いソフトウェア設計の原則」について解説します。量子化ツールの開発を通じて、単一責任の原則やレジストリパターンなど、拡張性の高いソフトウェアを作るための考え方を紹介します。
量子化技術は急速に進化しています。PTQは「今すぐ使える」成熟した技術であり、BitNetは「未来を変える」可能性を持つ新技術です。両者を理解することで、適切な選択ができるようになります。