AI・機械学習
中級

デプスプルーニング / ShortGPT(デプスプルーニング)

LLMの一部Transformerレイヤーを除去することでモデルを圧縮する手法。ShortGPTはレイヤー重要度スコアを用い、冗長レイヤーを削除して推論高速化・メモリ削減を達成する。

0 回閲覧
0 いいね
2026/6/6 更新
関連タグ
LLM圧縮
モデル軽量化
Transformerプルーニング
推論最適化

デプスプルーニング / ShortGPT とは

デプスプルーニング(Depth Pruning)は、大規模言語モデル(LLM)のTransformerレイヤーを選択的に除去することでモデルサイズを圧縮する技術。2024年登場のShortGPTはこの手法の代表的実装であり、各レイヤーの「Block Influence(BI)スコア」を算出して寄与の低いレイヤーを削除、LLaMA-2 13Bで約25%のレイヤー削減を達成しながら多くのベンチマークで性能をほぼ維持した。

なぜデプスプルーニングが注目されるのか

従来のモデル圧縮は量子化(精度削減)が主流だったが、デプスプルーニングはレイヤー数そのものを削減するため以下のメリットがある:

  • 推論レイテンシ削減: レイヤー数比例で forward pass が短縮
  • KVキャッシュ削減: レイヤー数減少 → 必要なKVキャッシュメモリが線形に減少
  • 量子化との直交性: GPTQ/AWQと組み合わせて更なる圧縮が可能
  • ファインチューニング再利用: プルーニング後にLoRAで能力回復可能

主要な手法比較

手法発表年削減軸特徴対象モデル
ShortGPT2024レイヤー除去BIスコアで重要度評価LLaMA-2, Mistral
SliceGPT2024行/列次元PCAで次元削減LLaMA-2, Phi-2
LaCo2024レイヤーマージ隣接レイヤーを統合LLaMA系
Angular Pruning2024アテンションヘッド角度類似度で除去OPT, LLaMA
DepthPrune (2025)2025動的レイヤー入力依存で実行Qwen2.5, Gemma2

ShortGPTの仕組み

Block Influence (BI) スコア

各Transformerブロックへの入力ベクトルと出力ベクトルのコサイン類似度(1 - cosine similarity)をBIスコアとして定義。BI≈0のブロックは「入力をほぼ変換していない」= 冗長と判定。

# BIスコア計算の概念コード
import torch

def compute_bi_score(layer, hidden_states, attention_mask):
    with torch.no_grad():
        input_norm = hidden_states / hidden_states.norm(dim=-1, keepdim=True)
        output = layer(hidden_states, attention_mask=attention_mask)[0]
        output_norm = output / output.norm(dim=-1, keepdim=True)
        # コサイン距離 (0=変化なし=冗長)
        bi = 1.0 - (input_norm * output_norm).sum(dim=-1).mean().item()
    return bi

プルーニング手順

  1. キャリブレーションデータ(代表的なテキスト数百件)で全レイヤーのBIスコアを計算
  2. BIスコア昇順にソート → 下位N%のレイヤーを候補リストアップ
  3. 連続レイヤーの削除は避ける(残差接続の整合性維持)
  4. 削除後にLoRAなどで1-2%の精度を回復

実装・ライブラリ

ライブラリ対応手法特徴
llm-compressor (vLLM)SliceGPT, DepthPruningvLLM連携、エンタープライズ向け
transformers + PEFTShortGPT互換HuggingFace統合
LLMShearing構造化プルーニング全般Stanford製、再トレーニング込み
Torch FXカスタム実装低レベル制御

ベンチマーク: LLaMA-2 13B での比較

手法削減率MMLUHellaSwag推論速度メモリ
元モデル0%55.482.11.0x26GB
ShortGPT 20%20%52.179.31.18x21GB
ShortGPT 25%25%50.877.61.24x20GB
SliceGPT 20%20%51.678.91.20x20GB
ShortGPT+LoRA25%54.280.71.24x21GB

量子化との組み合わせ(2025年ベストプラクティス)

デプスプルーニング単体でも有効だが、量子化と組み合わせると大幅な圧縮率を達成:

  • DepthPruning 25% + GPTQ INT4 → 元モデルの約15%サイズ
  • DepthPruning 20% + AWQ INT4 → 推論速度 2.5-3.0x 向上
  • Speculative Decoding との組み合わせ → Draft ModelにDepthPrunedモデルを使用

選択のポイント

デプスプルーニングが有効なケース:

  • KVキャッシュを大量に使うlong context推論
  • エッジデバイス(VRAM 8-16GB)でのローカル実行
  • 量子化だけでは精度劣化が大きい場合の補完

量子化を優先すべきケース:

  • レイヤー削減による精度劣化を許容できない高精度タスク
  • 再トレーニングコストを避けたい場合

よくある質問(FAQ)

Q1: ShortGPTとSliceGPTはどう違うのか? A: ShortGPTはレイヤーごと除去(depth方向)し、SliceGPTはPCAで各レイヤーのhidden dim幅を削減(width方向)。ShortGPTは実装が単純で高速だが、SliceGPTの方が精度劣化が小さい傾向がある。

Q2: 削除したレイヤーを回復することはできるか? A: 一度除去したレイヤーは物理的に削除されるため回復不可。ただしLoRAファインチューニングで残りレイヤーを調整し、タスク精度を元モデルの95-98%まで回復できる。

Q3: 量子化と組み合わせた場合のリスクは? A: デプスプルーニング後に量子化すると誤差が累積しやすい。推奨順序は「量子化 → デプスプルーニング → LoRA回復」の順で実施すると安定する(2025年実験知見)。

まとめ

  • デプスプルーニングはTransformerレイヤー除去によるLLM圧縮手法
  • ShortGPT/SliceGPT/LaCoが2024年の代表実装
  • 量子化と直交・組み合わせで大幅な圧縮率を達成可能
  • KVキャッシュ削減効果が特に顕著でlong context推論に有効
  • LoRAによる精度回復を組み合わせることで実用レベルを維持
この記事について
カテゴリーAI・機械学習
難易度中級
作成日2026/6/6