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、Claude | Mistral 7B、Mixtral |
関連用語
- Sparse Attention — SWAが属するスパースアテンションの大分類
- Flash Attention — SWAと組み合わせてさらに高速化する手法
- コンテキスト長 — SWAで実用的な長コンテキスト処理が可能に
- Mixture of Experts — MistralがSWAと組み合わせて採用するアーキテクチャ