SparseGPT(スパースジーピーティー)
GPT系大規模モデルを重みの再学習なしに一発でプルーニングする手法。50〜60%のスパース率を達成しつつ精度劣化を最小化する。
SparseGPT — ワンショットで大規模LLMをプルーニング
SparseGPTは2023年にETHチューリッヒのElias FrantarとDan Alistarh(現IST Austria)が発表したLLM向けプルーニングアルゴリズムです。論文タイトルは "SparseGPT: Massive Language Models Can be Accurately Pruned in One Shot" で、再学習不要でGPTスケールのモデルを高スパース率にプルーニングできる点が注目を集めました。
技術背景:OBS の LLM 適用
プルーニングの基礎理論にOBS(Optimal Brain Surgeon)があります。OBSは各重みを除去したときのモデル出力変化を最小化する方向で残りの重みを調整する理論的な手法ですが、ヘッシアン行列の計算コストがパラメータ数の二乗になるため、大規模モデルへの適用は不可能でした。
SparseGPTはTransformerのレイヤー構造を利用した近似を導入することで、ヘッシアン計算をブロック単位に分解し、GPT規模(数十〜数百億パラメータ)でも現実的な時間内に実行可能にしました。
アルゴリズムの概要
- 各Transformerレイヤーに対してキャリブレーション用の入力データ(128サンプル程度)を通す
- 出力の変化を最小化するようにヘッシアン近似を用いてプルーニング対象の重みを選択
- 除去した重みを補正するために残りの重みを更新(再学習なし、局所的な最適化)
- このプロセスをレイヤー単位で順次実行
達成精度
代表的な結果:
- OPT-175B: 50%スパース化でperplexity増加が~1pt
- Llama-2-7B: 50%スパース化でperplexity増加が~0.5pt
- BLOOM-176B: 50%スパース化でperplexity増加が~2pt
実行時間はA100 1枚で数時間〜1日程度(モデルサイズにより)。
非構造化 vs 半構造化スパース
SparseGPTは非構造化スパース(任意の位置の重みをゼロにする)と半構造化スパース(NVIDIA H100などがサポートするN:Mスパース、例えば4個中2個を0にする2:4スパース)の両方に対応します。2:4スパースはNVIDIAの推論ハードウェアで直接加速できるため、実用的な推論高速化につながります。
SparseGPT vs Wanda
同年発表されたWanda(Weights ANd Activations)は計算コストがSparseGPTより大幅に低い(ヘッシアン不要)にもかかわらず精度がほぼ同等という結果を示し、SparseGPTのベンチマーク競合として注目されました。実用上はWandaが計算効率で有利なケースが多いとされています。
後続研究への影響
SparseGPTはLLMプルーニング研究の基準手法として広く参照されており、Wanda、RIA(Relative Importance and Activations)、OWL(Outlier Weighed Layerwise sparsity)など多数の手法がSparseGPTを比較対象として使用しています。
まとめ
SparseGPTは「大規模LLMを再学習なしに高スパース率でプルーニングできる」ことを初めて実証した重要な研究です。OBS理論とTransformerのレイヤー構造を組み合わせた巧妙な近似が、実用的なLLM圧縮の扉を開きました。