LLMプルーニング(エルエルエムプルーニング)
LLMの重みやニューロンのうち重要度が低い要素を除去(枝刈り)してモデルサイズを縮小する圧縮技術。構造化プルーニングと非構造化プルーニングの2種類がある。
LLMプルーニングとは
LLMプルーニング(枝刈り)は、大規模言語モデルの重みパラメータのうち精度への寄与が小さい要素をゼロ化または削除し、モデルサイズと計算量を削減する手法である。ニューラルネットワークの「宝くじ仮説」(Lottery Ticket Hypothesis)に基づき、巨大なモデルの中に小さく高性能なサブネットワークが存在するという前提に立つ。
概要
プルーニングの歴史はLeCunの「Optimal Brain Damage」(1989年)に遡るが、LLM時代においてはSparseGPT(2023年)とWanda(2023年)が画期的な転換点となった。従来のプルーニングは再訓練(リトレーニング)が必須だったが、これらの手法は訓練なし(post-training)で50-60%のスパース化を実現する。
2025-2026年には以下の進展がある:
- SparseGPT: ヘッセ行列の近似逆行列を用いた重み更新で、Llama 2 70Bを50%スパース化して精度劣化1%以内
- Wanda: 重みの大きさ×入力活性化の積を基準に枝刈り。SparseGPTと同等精度で計算コスト100倍低減
- SliceGPT: 重み行列のランクを直接削減する構造化プルーニング。30%のパラメータ削減で推論速度1.4倍
- LLM-Pruner: タスク非依存の構造化プルーニング。LLaMA-7Bを5.4Bに圧縮しMMLU 95%維持
構造化 vs 非構造化プルーニング
| 特性 | 非構造化プルーニング | 構造化プルーニング |
|---|---|---|
| 粒度 | 個別の重み要素 | アテンションヘッド、FFN次元、レイヤー |
| スパースパターン | 不規則(ランダムなゼロ) | 規則的(行/列/ブロック単位) |
| 圧縮率 | 50-90%(理論上) | 20-50%(実用的) |
| ハードウェア加速 | NVIDIA A100 2:4スパース、AMD MI300X | 標準GPUで直接高速化 |
| 精度維持 | 高(同圧縮率なら優位) | 中(構造制約のため劣化大きめ) |
| 推論速度 | 専用カーネル必要 | 直接的な速度向上 |
| 代表手法 | SparseGPT, Wanda, SPDF | SliceGPT, LLM-Pruner, Sheared LLaMA |
| ストレージ削減 | スパースフォーマット必要 | 直接的にモデル縮小 |
主要なプルーニング手法の詳細
SparseGPT(2023年、IST Austria)
- 原理: 各層を逐次処理し、ヘッセ行列の逆行列近似を用いて枝刈りされた重みの影響を残りの重みで補償
- 性能: OPT-175Bを50%スパース化でPerplexity劣化0.5以内(WikiText-2)
- 計算コスト: 175Bモデルで約4時間(単一A100 80GB)
- 制約: メモリ消費が大きく、層ごとの逐次処理で並列化困難
Wanda(2023年、CMU)
- 原理: |W| × ||X|| (重みの絶対値×入力活性化のL2ノルム)を重要度スコアとして使用
- 性能: SparseGPTと同等精度(LLaMA-7B 50%スパースでPerplexity 7.26 vs 7.22)
- 計算コスト: SparseGPTの1/100以下。LLaMA-7Bで数分
- 利点: キャリブレーションデータ128サンプルのみで動作、コードも極めてシンプル
SliceGPT(2024年、Microsoft)
- 原理: PCA(主成分分析)で重み行列の冗長な次元を特定し、直交変換後にスライス(切除)
- 性能: Llama 2 70Bの25%パラメータ削減で推論速度1.32倍、精度劣化2-3%
- 特徴: 構造化プルーニングなので専用カーネル不要、標準GPU上で直接高速化
NVIDIA 2:4 Structured Sparsity
- 原理: 連続4要素中2要素をゼロ化するパターン制約。Ampere以降のTensorCoreがハードウェア支援
- 性能: A100/H100で2:4スパースFP16推論が密行列FP16と同等スループット(理論2x)
- 対応: cuSPARSELt、TensorRT-LLM 0.9+で標準サポート
プルーニングと他の圧縮手法の組み合わせ
実務では単独適用より組み合わせが効果的:
- プルーニング + 量子化: SparseGPT 50% → GPTQ INT4 で8x圧縮。ただし精度劣化の相互作用に注意
- プルーニング + 蒸留: 構造化プルーニングで骨格を決め、蒸留で精度回復。Sheared LLaMAが代表
- 段階的プルーニング: 20%→40%→60%と段階的にスパース化し各段で少量の再訓練。累積劣化を抑制
よくある質問(FAQ)
Q1: プルーニングで本当に推論が速くなるのか? A: 非構造化プルーニングは専用のスパースカーネル(NVIDIA 2:4やDeepSparse Engine)がないと速度向上しない。構造化プルーニングはモデルサイズ自体が小さくなるため標準GPUでも直接高速化する。実用的な推論高速化には構造化プルーニングかNVIDIA 2:4スパースが推奨。
Q2: プルーニング後のモデルはファインチューニングできるか? A: 可能だが注意が必要。非構造化スパースモデルにLoRAを適用する場合、スパースマスクを固定したままLoRA重みを学習する。構造化プルーニング後のモデルは通常のモデルと同様にファインチューニング可能。
Q3: LLMのプルーニングにはどの程度のキャリブレーションデータが必要? A: Wandaは128サンプル、SparseGPTも128-256サンプルで十分動作する。C4やWikiTextから無作為抽出した短いテキストで問題なく、タスク固有のデータは不要。
Q4: 90%以上の極端なプルーニングは可能か? A: 非構造化で80-90%のスパース化は可能だが精度劣化が5-15%と大きい。実用的には50-60%が品質と効率のバランス点。Mixture-of-Experts(MoE)アーキテクチャとの組み合わせで実質的な高スパース化を達成する研究が進んでいる。
まとめ
- LLMプルーニングは重要度の低い重みを除去してモデルを軽量化する手法
- Wanda(簡易・高速)とSparseGPT(高精度)が2026年の実用標準
- 非構造化は圧縮率優位だが専用ハードウェア必要、構造化は汎用GPUで直接高速化
- 量子化との組み合わせで8倍以上の圧縮が実現可能