LLMモデル圧縮(エルエルエムモデルアッシュク)
LLM(大規模言語モデル)のパラメータ数・計算量・メモリ使用量を削減しつつ精度を維持する技術群の総称。プルーニング・量子化・知識蒸留・低ランク分解の4手法が主軸となる。
LLMモデル圧縮とは
LLMモデル圧縮とは、数十億〜数千億パラメータを持つ大規模言語モデルのサイズ・計算コスト・メモリ消費を削減し、エッジデバイスや低コスト環境でも推論可能にする技術群である。2026年現在、Llama 3.1 405Bを4ビット量子化で約100GBまで縮小したり、Phi-4 Mini 3.8Bのような小型高性能モデルを蒸留で生成する手法が実用化されている。
概要
LLMの商用展開において最大のボトルネックはGPUメモリと推論コストである。GPT-4クラスの1750億パラメータモデルをFP16で格納するだけで350GBのVRAMが必要となり、NVIDIA H100(80GB HBM3)でも4枚以上のGPU並列が不可欠だ。モデル圧縮はこの課題に対し、4つの主要アプローチで対処する:
- プルーニング(枝刈り): 重要度の低い重みやニューロンを除去。SparseGPTやWandaが代表
- 量子化: FP16/FP32の重みをINT8/INT4/INT2に変換。GPTQ、AWQ、GGUF形式が標準
- 知識蒸留: 大モデル(教師)の出力分布を小モデル(生徒)に転写。TinyLlama、MiniLLMが実績
- 低ランク分解: 重み行列をランクの低い行列積に分解。LoRAの理論的基盤でもある
2025-2026年のトレンドとしてBitNet b1.58(1.58ビット量子化)、SpQR(混合精度スパース量子化)、GaLore(勾配低ランク射影)など、複数手法を組み合わせたハイブリッド圧縮が主流化している。
主要な圧縮手法の比較
| 手法 | 圧縮率 | 精度劣化 | 推論速度向上 | 代表ツール | 適用段階 |
|---|---|---|---|---|---|
| INT8量子化 | 2x | 0.1-0.5% | 1.5-2x | bitsandbytes, TensorRT-LLM | 訓練後 |
| INT4量子化 (GPTQ) | 4x | 0.5-2% | 2-3x | AutoGPTQ, llama.cpp | 訓練後 |
| AWQ (Activation-Aware) | 4x | 0.3-1% | 2-3x | AutoAWQ, vLLM | 訓練後 |
| 非構造化プルーニング 50% | 2x | 1-3% | 1.2-1.5x | SparseGPT, Wanda | 訓練後 |
| 構造化プルーニング | 1.5-3x | 2-5% | 1.5-2.5x | LLM-Pruner, SliceGPT | 訓練後 |
| 知識蒸留 | 10-50x | 5-15% | 5-20x | MiniLLM, distilabel | 訓練時 |
| LoRA低ランク分解 | rank依存 | 0.5-2% | - | PEFT, Unsloth | 訓練時 |
| BitNet b1.58 | 10x | 1-3% | 3-5x | BitNet公式 | 訓練時 |
実践的な圧縮パイプライン
実務でLLMを圧縮する場合、単一手法ではなく複数を組み合わせるのが2026年の標準である:
ステップ1: ベースモデル選定
- Llama 3.1 70B / Qwen 2.5 72B / Mistral Large 2 123Bなど用途に合った規模を選択
- 圧縮前のベンチマーク(MMLU-Pro、HumanEval、MT-Bench)でベースライン計測
ステップ2: 量子化(最も費用対効果が高い)
- INT4 AWQ: vLLM/TensorRT-LLMで直接推論可能、VRAM 70B→約35GB
- GGUF Q4_K_M: llama.cpp/Ollama向け、MacBook Pro M4 Max 128GBで70B推論可能
- INT8 bitsandbytes: QLoRAファインチューニングの前段として利用
ステップ3: プルーニング(オプション)
- SparseGPTで50%非構造化スパース化→INT4量子化との組み合わせで8x圧縮
- SliceGPTでアテンションヘッド/FFN次元を削減→構造的に小型化
ステップ4: 蒸留(最小サイズが必要な場合)
- 70Bモデルの出力を教師として7B/3Bモデルをファインチューニング
- Phi-4 Mini 3.8B、Gemma 2 2Bクラスの小型モデルがターゲット
ハードウェア別の推奨圧縮戦略
| デバイス | VRAM/RAM | 推奨モデルサイズ | 推奨圧縮 | 実例 |
|---|---|---|---|---|
| NVIDIA H100 80GB | 80GB HBM3 | 70B FP16 | 不要 or INT8 | Llama 3.1 70B FP16 |
| NVIDIA RTX 4090 24GB | 24GB GDDR6X | 70B INT4 or 13B FP16 | GPTQ/AWQ INT4 | Qwen 2.5 72B AWQ |
| Apple M4 Max 128GB | 128GB統合 | 70B Q4_K_M | GGUF Q4-Q6 | Llama 3.1 70B GGUF |
| Apple M4 Pro 48GB | 48GB統合 | 32B Q4 or 8B FP16 | GGUF Q4_K_M | Gemma 2 27B Q4 |
| Jetson Orin 64GB | 64GB共有 | 13B INT4 | TensorRT-LLM INT4 | Llama 3.1 8B INT4 |
| スマートフォン (8GB) | 8GB | 3B INT4 | ExecuTorch INT4 | Phi-4 Mini Q4 |
圧縮による品質への影響
圧縮は万能ではなく、タスクや言語によって精度劣化の程度が異なる:
- 影響が小さいタスク: テキスト分類、感情分析、要約(INT4でもベースライン比98%以上)
- 影響が中程度のタスク: コード生成、数学推論(INT4で95-97%程度)
- 影響が大きいタスク: 多言語翻訳(特に低リソース言語)、長文推論(INT4で90-95%)
- 日本語特有の注意: 日本語トークン効率がBPEで英語の1.5-2倍のため、量子化による精度低下が英語より大きい傾向
よくある質問(FAQ)
Q1: 量子化とプルーニングはどちらを先に適用すべき? A: 量子化を先に適用するのが標準。プルーニング後に量子化すると、スパースパターンが量子化グループと干渉して精度劣化が大きくなる場合がある。SpQRのような混合精度手法では同時最適化も可能。
Q2: GGUF Q4_K_MとGPTQ INT4の違いは? A: GGUFはllama.cpp/Ollama向けのCPU/Metal推論に最適化されたフォーマットで、Q4_K_Mは重要な層に高精度を割り当てる混合量子化。GPTQはGPU推論向けで、vLLMやTensorRT-LLMとの親和性が高い。精度はほぼ同等だが推論バックエンドで選択する。
Q3: 3Bパラメータ以下の超小型LLMは実用的か? A: 2026年時点でPhi-4 Mini 3.8B、Gemma 2 2Bなどが単一タスク(チャットボット、分類、要約)では十分実用的。ただし複雑な推論チェーンや多言語対応では7B以上が推奨。モバイル/IoT向けには蒸留+INT4量子化で1-3Bモデルが標準構成。
Q4: 圧縮モデルのファインチューニングは可能か? A: 可能。QLoRA(量子化+LoRA)がINT4量子化モデル上でのファインチューニング標準手法。RTX 4090 24GBで70Bモデルのファインチューニングが可能になる。ただしプルーニング済みモデルへの追加学習は不安定になりやすい。
まとめ
- LLMモデル圧縮は量子化・プルーニング・蒸留・低ランク分解の4手法で構成
- 2026年のベストプラクティスはAWQ/GPTQ INT4量子化を軸としたハイブリッド圧縮
- ハードウェアに応じた適切な圧縮レベル選択がコストと品質のバランスの鍵
- BitNet b1.58やSpQRなど次世代手法の実用化が進行中