Ultralytics YOLO27: ウェイトリストに登録する
YOLOのライセンス
Ultralytics用語集に戻る

Sliding Window Attention

スライディングウィンドウアテンションでは、各トークンが直近の固定範囲内にある近傍トークンだけを参照します。そのため、アテンションの計算コストとKVキャッシュは系列長に対して線形に増加します。

スライディングウィンドウアテンション(SWA)は、各トークンが固定数の隣接トークンのみを参照できるようにします。因果的な言語モデルでは、系列全体に対する完全な自己注意の代わりに、直近のw個のトークンを参照します。これにより、注意計算量は系列長に対して二次ではなく線形に増加し、生成モデルがKVキャッシュに保持する必要があるキーと値も直近w個のトークン分だけになります。Longformerは2020年にスライディングウィンドウを注意機構の中核に採用し、Mistral AIのMistral 7Bは2023年、ウィンドウサイズ4,096トークンで、この方式を広く利用されるオープンな大規模言語モデル(LLM)に導入しました。

層の深さに伴うウィンドウの拡大#

SWAの1層が参照するのはw個のトークンだけですが、Transformerでは層を積み重ねます。第2層では、あるトークンが、第1層ですでにw個のトークンを要約した隠れ状態を読み取るため、畳み込みニューラルネットワーク(CNN)の層を積み重ねると受容野が広がるのと同じように、層が増えるごとに情報は約w − 1位置先まで伝わります。PyTorchでは、ウィンドウはブール値の注意マスクとして表され、そのマスクを自乗すると情報が届く範囲を追跡できます。

import torch

seq_len, window = 16, 4
pos = torch.arange(seq_len)
offset = pos[:, None] - pos[None, :]

# Causal sliding window: each token attends to itself and the window - 1 tokens before it
mask = (offset >= 0) & (offset < window)
print(f"Scores per layer: {mask.sum().item()} with the window, {(offset >= 0).sum().item()} with full causal attention")

# Stacking layers widens the reach: each layer adds window - 1 more tokens of history
reach = mask
for layer in range(1, 5):
    print(f"Layer {layer}: last token draws on {reach[-1].sum().item()} tokens")
    reach = (mask.int() @ reach.int()) > 0

16トークンに対するスコア計算は、ウィンドウによって1層あたり136個ではなく58個になります。また、最後のトークンが参照できる範囲は、層ごとに3トークンずつ増えて、4、7、10、13となります。同じマスクをPyTorchのscaled_dot_product_attentionにattn_maskとして渡せます。Mistral 7Bでは、4,096トークンのウィンドウを持つ32層によって、理論上約131Kトークンの注意範囲が得られます。ただし、遠く離れた位置の情報が届くには、多数の層を経由して保持される必要があります。

Mistral 7Bは、キーと値もw個のスロットからなるローリングバッファに保存します。位置iのデータをスロットi mod wに書き込み、最も古いエントリーを上書きします。32Kトークンの系列では、品質を損なわずにキャッシュメモリを8分の1に削減でき、キャッシュサイズが固定されるため、生成がどれだけ長く続いてもメモリ使用量は一定です。

ローカル層とグローバル層の交互配置#

純粋なウィンドウ方式では、遠く離れた位置にある情報を一度の処理でコピーできないため、多くのモデルはSWAレイヤーとグローバルレイヤーを組み合わせています。GoogleのGemma 2は4,096トークンのウィンドウで両者を交互に配置し、Gemma 3はグローバルレイヤー1つごとにローカルレイヤーを5つ使用し、ウィンドウはわずか1,024トークンです。これにより、最大128KトークンのコンテキストウィンドウでもKVキャッシュを小さく保てます。コンテキスト全体のキーと値を保存するのはグローバルレイヤーだけなので、6レイヤー中5レイヤーはそれぞれ1,024トークンのみを保持します。

ビジョントランスフォーマーも、高解像度画像では同じ組み合わせを使います。この場合、各パッチが1つのトークンになります。Ultralyticsパッケージで画像セグメンテーションを実行できるMetaのSAM 3は、画像エンコーダーの32ブロック中28ブロックで、パッチの重ならない24 × 24ウィンドウ内に注意を向けます。また、ブロック7、15、23、31では、1,008ピクセル画像の72 × 72パッチグリッド全体に対してグローバルに注意を向けます。

  • Swin Transformer:画像を固定サイズの重ならないウィンドウに分割し、各ウィンドウ内のすべてのトークンがそのウィンドウを共有します。層ごとにグリッドをずらすことで、隣接するウィンドウ間で情報を交換します。
  • スパースアテンション:固定パターン全般を指します。SWAはその最も単純な手法で、ほかの手法では拡張ウィンドウ、グローバルトークン、ランダムな接続などを追加します。
  • アテンションシンク:シーケンスの先頭にある、余ったアテンションの重みを吸収するトークンです。フルアテンションで学習したモデルに推論時のウィンドウを適用する際、これらを追い出すと生成が破綻します。StreamingLLMは、ウィンドウの隣にあるキャッシュ内にこれらのトークンを保持します。
  • 変形可能アテンション:各クエリは、オフセットを学習する少数のサンプリング点に注意を向けるため、近傍領域はコンテンツに応じて変わります。
  • Flash attention:厳密なアテンションを実行するGPUカーネルです。実装でウィンドウサイズを指定できるため、SWAモデルはウィンドウ外のブロックを完全にスキップします。

Explore solutions

スポーツにおけるコンピュータービジョン

スポーツにおけるコンピュータービジョン

Ultralytics YOLOが、選手やボールの追跡、パフォーマンス分析、コーチングへの知見、アスリートのリハビリを通じて、スポーツビジョンをどのように支えるかをご紹介します。
詳しく見る
航空画像向けコンピュータービジョン

航空画像向けコンピュータービジョン

Ultralytics YOLOを活用して、ドローンや航空画像をリアルタイムの知見に変換し、農業、水産養殖、環境モニタリング、自然保護、地理空間分析に役立てましょう。
詳しく見る
航空宇宙分野のコンピュータービジョン

航空宇宙分野のコンピュータービジョン

Ultralytics YOLOモデルで航空モニタリングにビジョンAIを導入しましょう。コンピュータービジョンソリューションで、ドローン、航空宇宙のワークフロー、環境保全、地理空間業界を支援します。
詳しく見る
セキュリティ分野のコンピュータービジョン

セキュリティ分野のコンピュータービジョン

Ultralytics YOLOモデルであらゆる施設を保護しましょう。ビジョンAIは、周辺監視、脅威検知、ナンバープレート認識、職場の安全管理を支援します。
詳しく見る
ロボティクス分野のコンピュータービジョン

ロボティクス分野のコンピュータービジョン

Ultralytics YOLOモデルで、よりスマートなマシンを実現しましょう。ロボティクスにおけるビジョンAIは、自律ナビゲーション、認識、物体追跡、リアルタイム制御を支援します。
詳しく見る
物流におけるコンピュータービジョン

物流におけるコンピュータービジョン

Ultralytics YOLOモデルで物流を効率化しましょう。ビジョンAIにより、荷物検査、仕分け、車両追跡、倉庫のリアルタイム安全監視を実現します。
詳しく見る
小売業におけるコンピュータービジョン

小売業におけるコンピュータービジョン

Ultralytics YOLOモデルで小売のあり方を変革しましょう。ビジョンAIにより、在庫追跡、棚の監視、行列管理、より高度な顧客インサイトを実現します。
詳しく見る
医療分野におけるコンピュータービジョン

医療分野におけるコンピュータービジョン

Ultralytics YOLOモデルで医療ソリューションを構築しましょう。医療分野のビジョンAIは、医用画像処理の高速化、より高度な診断、患者モニタリングを実現します。
詳しく見る
製造業におけるコンピュータービジョン

製造業におけるコンピュータービジョン

Ultralytics YOLOモデルで製造を最適化しましょう。ビジョンAIは、品質管理、欠陥検出、PPE準拠、組立ラインの自動化を推進します。
詳しく見る
自動車分野におけるコンピュータービジョン

自動車分野におけるコンピュータービジョン

Ultralytics YOLOモデルで自動車分野にコンピュータービジョンを導入しましょう。ビジョンAIは、道路の安全性、運転支援、車両の自動化を向上させ、よりスマートな道路を実現します。
詳しく見る
農業におけるコンピュータービジョン

農業におけるコンピュータービジョン

Ultralytics YOLOモデルでスマート農業にビジョンAIを導入しましょう。作物のモニタリング、家畜の追跡、精密農業を支援し、より高く効率的な収量を実現します。
詳しく見る
スポーツにおけるコンピュータービジョン
スポーツにおけるコンピュータービジョン
Ultralytics YOLOが、選手やボールの追跡、パフォーマンス分析、コーチングへの知見、アスリートのリハビリを通じて、スポーツビジョンをどのように支えるかをご紹介します。
詳しく見る
航空画像向けコンピュータービジョン
航空画像向けコンピュータービジョン
Ultralytics YOLOを活用して、ドローンや航空画像をリアルタイムの知見に変換し、農業、水産養殖、環境モニタリング、自然保護、地理空間分析に役立てましょう。
詳しく見る
航空宇宙分野のコンピュータービジョン
航空宇宙分野のコンピュータービジョン
Ultralytics YOLOモデルで航空モニタリングにビジョンAIを導入しましょう。コンピュータービジョンソリューションで、ドローン、航空宇宙のワークフロー、環境保全、地理空間業界を支援します。
詳しく見る
セキュリティ分野のコンピュータービジョン
セキュリティ分野のコンピュータービジョン
Ultralytics YOLOモデルであらゆる施設を保護しましょう。ビジョンAIは、周辺監視、脅威検知、ナンバープレート認識、職場の安全管理を支援します。
詳しく見る
ロボティクス分野のコンピュータービジョン
ロボティクス分野のコンピュータービジョン
Ultralytics YOLOモデルで、よりスマートなマシンを実現しましょう。ロボティクスにおけるビジョンAIは、自律ナビゲーション、認識、物体追跡、リアルタイム制御を支援します。
詳しく見る
物流におけるコンピュータービジョン
物流におけるコンピュータービジョン
Ultralytics YOLOモデルで物流を効率化しましょう。ビジョンAIにより、荷物検査、仕分け、車両追跡、倉庫のリアルタイム安全監視を実現します。
詳しく見る
小売業におけるコンピュータービジョン
小売業におけるコンピュータービジョン
Ultralytics YOLOモデルで小売のあり方を変革しましょう。ビジョンAIにより、在庫追跡、棚の監視、行列管理、より高度な顧客インサイトを実現します。
詳しく見る
医療分野におけるコンピュータービジョン
医療分野におけるコンピュータービジョン
Ultralytics YOLOモデルで医療ソリューションを構築しましょう。医療分野のビジョンAIは、医用画像処理の高速化、より高度な診断、患者モニタリングを実現します。
詳しく見る
製造業におけるコンピュータービジョン
製造業におけるコンピュータービジョン
Ultralytics YOLOモデルで製造を最適化しましょう。ビジョンAIは、品質管理、欠陥検出、PPE準拠、組立ラインの自動化を推進します。
詳しく見る
自動車分野におけるコンピュータービジョン
自動車分野におけるコンピュータービジョン
Ultralytics YOLOモデルで自動車分野にコンピュータービジョンを導入しましょう。ビジョンAIは、道路の安全性、運転支援、車両の自動化を向上させ、よりスマートな道路を実現します。
詳しく見る
農業におけるコンピュータービジョン
農業におけるコンピュータービジョン
Ultralytics YOLOモデルでスマート農業にビジョンAIを導入しましょう。作物のモニタリング、家畜の追跡、精密農業を支援し、より高く効率的な収量を実現します。
詳しく見る
スポーツにおけるコンピュータービジョン
スポーツにおけるコンピュータービジョン
Ultralytics YOLOが、選手やボールの追跡、パフォーマンス分析、コーチングへの知見、アスリートのリハビリを通じて、スポーツビジョンをどのように支えるかをご紹介します。
詳しく見る
航空画像向けコンピュータービジョン
航空画像向けコンピュータービジョン
Ultralytics YOLOを活用して、ドローンや航空画像をリアルタイムの知見に変換し、農業、水産養殖、環境モニタリング、自然保護、地理空間分析に役立てましょう。
詳しく見る
航空宇宙分野のコンピュータービジョン
航空宇宙分野のコンピュータービジョン
Ultralytics YOLOモデルで航空モニタリングにビジョンAIを導入しましょう。コンピュータービジョンソリューションで、ドローン、航空宇宙のワークフロー、環境保全、地理空間業界を支援します。
詳しく見る
セキュリティ分野のコンピュータービジョン
セキュリティ分野のコンピュータービジョン
Ultralytics YOLOモデルであらゆる施設を保護しましょう。ビジョンAIは、周辺監視、脅威検知、ナンバープレート認識、職場の安全管理を支援します。
詳しく見る
ロボティクス分野のコンピュータービジョン
ロボティクス分野のコンピュータービジョン
Ultralytics YOLOモデルで、よりスマートなマシンを実現しましょう。ロボティクスにおけるビジョンAIは、自律ナビゲーション、認識、物体追跡、リアルタイム制御を支援します。
詳しく見る
物流におけるコンピュータービジョン
物流におけるコンピュータービジョン
Ultralytics YOLOモデルで物流を効率化しましょう。ビジョンAIにより、荷物検査、仕分け、車両追跡、倉庫のリアルタイム安全監視を実現します。
詳しく見る
小売業におけるコンピュータービジョン
小売業におけるコンピュータービジョン
Ultralytics YOLOモデルで小売のあり方を変革しましょう。ビジョンAIにより、在庫追跡、棚の監視、行列管理、より高度な顧客インサイトを実現します。
詳しく見る
医療分野におけるコンピュータービジョン
医療分野におけるコンピュータービジョン
Ultralytics YOLOモデルで医療ソリューションを構築しましょう。医療分野のビジョンAIは、医用画像処理の高速化、より高度な診断、患者モニタリングを実現します。
詳しく見る
製造業におけるコンピュータービジョン
製造業におけるコンピュータービジョン
Ultralytics YOLOモデルで製造を最適化しましょう。ビジョンAIは、品質管理、欠陥検出、PPE準拠、組立ラインの自動化を推進します。
詳しく見る
自動車分野におけるコンピュータービジョン
自動車分野におけるコンピュータービジョン
Ultralytics YOLOモデルで自動車分野にコンピュータービジョンを導入しましょう。ビジョンAIは、道路の安全性、運転支援、車両の自動化を向上させ、よりスマートな道路を実現します。
詳しく見る
農業におけるコンピュータービジョン
農業におけるコンピュータービジョン
Ultralytics YOLOモデルでスマート農業にビジョンAIを導入しましょう。作物のモニタリング、家畜の追跡、精密農業を支援し、より高く効率的な収量を実現します。
詳しく見る

AIの未来を一緒に築きましょう!

機械学習の未来に向けた歩みを始めましょう