Wanda(ワンダ)
重みの絶対値と入力活性化ノルムの積をスコアとするLLMプルーニング手法。SparseGPTより計算が軽量でほぼ同等の精度を達成する。
Wanda — 活性化情報を使った軽量LLMプルーニング
Wanda(Weights ANd Activations)は2023年にUC BerkeleyのMingjie Sun、Zhuang Liu らが発表したLLMプルーニング手法です。論文タイトルは "A Simple and Effective Pruning Approach for Large Language Models" で、計算コストの低さと高い精度がLLM圧縮コミュニティで広く評価されています。
核心アイデア:重み × 活性化
Wandaの重みスコアは以下の式で定義されます:
Score(w_ij) = |w_ij| × ||x_j||₂
w_ij:重み行列の(i,j)要素x_j:j番目の入力チャネルの活性化(キャリブレーションデータに対するL2ノルム)
重みの絶対値(大きいほど重要)と、対応する入力活性化の大きさ(そのニューロンが多く使われているかの指標)を掛け合わせることで、単純な重みの大きさだけでは見えない「実際に影響力の高い重み」を特定します。
Magnitude Pruning との違い
従来のMagnitude Pruningは|w_ij|だけをスコアとしてプルーニングします。LLMのTransformerレイヤーには「外れ値(outlier)」と呼ばれる極端に大きい活性化が特定チャネルに集中することが知られており、この現象を無視すると重要な重みを誤って除去してしまいます。Wandaは活性化ノルムを乗じることでこの外れ値問題に自然に対応します。
SparseGPT との比較
- ヘッシアン計算:Wanda不要 / SparseGPT必要
- 重み再調整:Wandaなし / SparseGPTあり
- 実行時間(7B):Wanda
数分 / SparseGPT数十分 - 精度(50% sparse):Wandaほぼ同等 / SparseGPTわずかに優位
Wandaの計算コストはSparseGPTの数十分の一とされており、LLMプルーニングの実用的な選択肢として頻繁に採用されています。
非構造化・半構造化対応
WandaはSparseGPT同様、非構造化スパースと半構造化スパース(NVIDIAの2:4スパースなど)の両方に対応しています。2:4スパース化した場合は推論時にSparse Tensor Coreの恩恵を受けられます。
キャリブレーションデータ
プルーニングには128サンプル程度のキャリブレーションデータ(典型的にC4データセットから)が必要です。テストデータやタスク固有データを使うと若干精度が改善する場合もありますが、汎用データでも十分な結果が得られます。
後続研究
Wandaはシンプルさと有効性からLLMプルーニングの標準ベースラインとして多数の研究で参照されています。OWL(Outlier Weighed Layerwise sparsity)はWandaの外れ値処理をさらに改善した手法として注目されています。
まとめ
Wandaは「重み × 活性化」という直感的かつ効果的な指標でLLMをプルーニングする手法です。SparseGPTと同等の精度を大幅に低い計算コストで達成し、実用的なLLM圧縮のデファクトスタンダードの一つとなっています。