アクティベーションスパーシティ(LLM)(アクティベーションスパーシティ)
LLMのFFN(フィードフォワードネットワーク)において活性化関数の出力がゼロになるニューロンを利用した推論スキップ技術。ReLU²などで高いスパーシティを誘導し動的に計算をバイパスする。
アクティベーションスパーシティ(LLM)とは
アクティベーションスパーシティ(Activation Sparsity)はLLMのFFN(フィードフォワードネットワーク)において、活性化関数の出力がゼロになるニューロンをダイナミックにスキップすることで推論を高速化する技術。通常のGELU/SiLU活性化はほとんどゼロにならないが、ReLU²(ReLU二乗) などに置換するとトークンごとに90%以上のFFNニューロンが0になり、それらの行列積計算を丸々スキップできる。
なぜスパーシティが計算削減になるのか
TransformerのFFNは2層の線形変換で構成:
hidden → W1 → activation → W2 → output
[d×4d] [4d×d]
中間層の出力のN%がゼロ → W2の対応する行の計算がゼロ → スキップ可能。スパーシティ90%なら理論的にFFNの計算量を90%削減できる。
主な研究・実装
DejaVu (2023, MIT)
- OPT-175BでGPT-NeoのReLU置換によりFFNスパーシティ95%を実現
- 「どのニューロンが活性化するか」を軽量predictor(MLP)で事前予測
- Predictor精度95%以上、推論速度2x向上
- GPU Sparse Tensor Coreと組み合わせることで実測1.8x高速化
PowerInfer (2023, 上海交通大学)
- DejaVuの考え方をローカルGPU(RTX 4090)に応用
- 「ホットニューロン」(頻繁に活性化)をGPU、「コールドニューロン」をCPUに配置
- Llama-65BをRTX 4090 単体で13.20トークン/秒(llama.cpp比4.8x)
- 2024年のPowerInfer-2でスマートフォン(iPhone 15 Pro)対応
ReLU²の活性化置換
# 標準: GELU (スパーシティほぼゼロ)
activated = torch.nn.functional.gelu(x)
# ReLU² (スパーシティ高: 入力の符号次第でゼロ)
activated = torch.relu(x) ** 2
# ReGLU / SwiGLU (モダンな選択、中程度スパーシティ)
activated = torch.relu(gate) * value # GLU変形
スパーシティ比較
| 活性化関数 | 平均スパーシティ | 品質劣化 | 対応モデル |
|---|---|---|---|
| GELU | ~5% | なし | GPT-2, BERT |
| SiLU/SwiGLU | ~15% | なし | LLaMA, Mistral |
| ReLU | ~50-70% | 少し | OPT (一部) |
| ReLU² | ~90-95% | 中程度 | GPT-Neo (置換版) |
| Learned Sparse | ~85-95% | 少し | 専用学習モデル |
MoE(Mixture of Experts)との関係
MoEは「どのエキスパートを使うか」をルーターで選択する設計で、実質的にFFNのスパーシティを構造化したもの。Mixtral 8x7Bでは8エキスパートのうち2つのみ(25%)を実行:
- 非構造化スパーシティ(DejaVu方式): ニューロン単位のランダムパターン
- 構造化スパーシティ(MoE方式): エキスパート単位の粗粒度パターン
GPT-4が採用するとされるMoEアーキテクチャもアクティベーションスパーシティの延長線上。
ハードウェア加速対応(2025年現状)
| ハードウェア | Sparse対応 | 効率 | 備考 |
|---|---|---|---|
| NVIDIA Ampere (A100) | Tensor Core 2:4 Sparsity | ~1.5x | 構造化スパーシティのみ |
| NVIDIA Ada (RTX 4090) | Tensor Core 2:4 | ~1.4x | 非構造化は効果薄 |
| Apple M4 (ANE) | 部分対応 | ~1.2x | CoreML Sparse |
| Qualcomm Snapdragon X | HTP DSP | ~1.6x | Sparse Tensor演算 |
よくある質問(FAQ)
Q1: ReLU²への置換は既存モデルに適用できるか? A: 学習済みモデルのGELUをReLU²に直接置換すると大きく精度劣化する。少量の継続学習(全データの1-5%)でスパーシティ誘導しながら精度回復するのが標準的アプローチ。
Q2: PowerInferはどのモデルで動作するか? A: 公式対応はLLaMA/LLaMA-2系(7B〜65B)。コミュニティパッチでMistral/Qwen系にも対応。2025年時点でllama.cppへの統合PRが進行中。
Q3: アクティベーションスパーシティと量子化の相性は? A: 良好。INT4量子化とスパーシティスキップを組み合わせるとGPUメモリ使用量を元モデルの1/8まで削減できる実例がある。ただしスパーシティpredictorのオーバーヘッドに注意。
まとめ
- アクティベーションスパーシティはFFNゼロニューロンのスキップによる推論高速化
- ReLU²置換で90-95%のFFNスパーシティを達成可能
- DejaVu / PowerInferが代表的な実装、RTX 4090単体でLlama-65Bが実用速度で動作
- MoEはアクティベーションスパーシティの構造化版という見方もできる
- 量子化・デプスプルーニングと組み合わせてエッジ向けLLMに最適