LLM推論・最適化

Sliding Window Attention すらいでぃんぐうぃんどうあてんしょん

Sliding Window AttentionスライディングウィンドウMistral長文対応ローカルアテンション効率化
Sliding Window Attentionについて教えて

簡単に言うとこんな感じ!

文章を読むとき、直前の数ページだけを参照しながら読み進める感じだよ!全部のページを常に参照するのではなく、スライドする「窓」の範囲だけ見ることで計算を大幅に節約できるんだ。Mistralなどの高効率モデルで使われてるよ!


Sliding Window Attentionとは

Sliding Window Attention(SWA) とは、各トークンが直前のW個のトークンにのみアテンションを向けるSparse Attentionの一種です。窓(ウィンドウ)が文章の先頭から末尾へとスライドしながら処理を進めることで、計算量をO(N×W)に削減します。Wがシーケンス長Nより大幅に小さければ、長文処理でも効率的に動作します。

ただし1層のSWAでは窓の外の情報を参照できないため、複数のTransformer層を積み重ねることで「受容野」を拡張します。例えば窓幅512、層数24のモデルなら、最終層では実質的に512×24 = 12,288トークン先まで間接的に情報が伝わります。Mistral 7Bがこの手法を採用して注目を集めました。


仕組みのイメージ

通常のアテンション(Dense):
  位置5のトークン → [1,2,3,4,5,6,7,8...] すべてを参照

Sliding Window Attention(窓幅=3):
  位置1のトークン → [1,2,3] を参照
  位置5のトークン → [3,4,5] を参照
  位置8のトークン → [6,7,8] を参照
  → 窓がスライドしながら処理

多層積み重ね効果(窓幅=3、4層):
  最終層では最大3×4=12トークン先まで情報が伝播

歴史と背景

  • 2020年:LongformerでSWAとグローバルアテンションの組み合わせを提案(Allen AI)
  • 2023年9月:Mistral AI「Mistral 7B」でSWAを採用、同サイズ比較で高性能を実証
  • 2023年12月:Mistral MoEモデル(Mixtral)でもSWAを継続採用
  • 現在:効率的な長文処理の標準的手法として広く認知

完全アテンションとの比較

項目完全アテンションSliding Window Attention
計算量O(N²)O(N×W)
メモリN²に比例N×Wに比例
長距離依存直接参照可能多層で間接的に参照
精度高いタスクによって遜色なし
代表モデルGPT-4、ClaudeMistral 7B、Mixtral

関連用語