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

Sparse Attention

スパースアテンションでは、各トークンがローカルウィンドウ、グローバルトークン、上位k個の選択肢など、他のトークンの一部だけを参照し、長い系列の計算コストを削減します。

スパースアテンションは、シーケンス内のすべてのキーではなく、選択したサブセットだけに対して各クエリがスコアを計算するアテンション機構の一群です。N個のトークンに対する完全なセルフアテンションでは、ヘッドごとにN²個のスコアを計算するため、文書の長さが2倍になるとアテンションの計算コストは4倍になります。一方、各トークンがk個の他のトークンに注目するパターンでは、コストはN·kです。パターンは、ローカルウィンドウのように事前に固定することも、クエリごとに最も高いスコアのキーを選ぶように、内容に基づいて決めることもできます。OpenAIの2019年のSparse Transformerは、数万ステップのシーケンスをモデル化するため、O(N√N)のコストがかかるストライドパターンを採用しました。現在の大規模言語モデル (LLMs)は、10万トークンを超えるコンテキストウィンドウを処理するためにスパースレイヤーを使用しています。

一般的なスパースパターン#

固定パターンでは、スコアを計算するペアを事前に決めます。スライディングウィンドウアテンションでは、各トークンが直前のw個のトークンだけを参照します。Mistral 7Bは4,096トークンのウィンドウを使用し、OpenAIのオープンウェイトgpt-ossモデルは、密なレイヤーと128トークンのウィンドウレイヤーを交互に配置します。これは、GPT-3が採用した、密なレイヤーと局所的な帯状レイヤーの交互配置と同じです。各ウィンドウレイヤーは情報をさらにwトークン先まで伝えるため、深く積み重ねても遠く離れたトークン同士がつながります。ストライドパターンでは、s個ごとに過去のトークンを追加することで、単一レイヤー内で情報を遠くまで伝えます。グローバルトークンはすべての位置に注目し、すべての位置から注目されます。Longformerは分類トークンなどのタスクトークンをグローバルにし、BigBirdはランダムな接続も加えます。また、アテンションシンクでは、ストリーミング生成を安定させるため、最初の数個のトークンをすべてのクエリから参照できるようにします。

内容ベースのパターンでは、データに基づいてペアを選びます。DeepSeekのNative Sparse Attention (NSA、2025年)は、キーのブロックを圧縮した要約、最も関連性の高いブロックの選択、スライディングウィンドウを組み合わせ、すべてをエンドツーエンドでトレーニングします。DeepSeek-V3.2のDeepSeek Sparse Attentionは、小規模な「lightning indexer」を実行して、クエリごとに過去のすべてのトークンをスコアリングし、上位2,048個だけに対して完全なアテンションを計算します。そのため、コンテキストがどれだけ長くなっても、各クエリの主要なアテンションコストは一定です。本番環境のモデルでは、これらのルールを組み合わせることがよくあります。

パターンを計算量の削減につなげる#

密なスコア行列にマスクを適用しても、すべてのスコアが計算されます。そのため、高速化には、行列の空のタイルをスキップするカーネルが必要です。Flash attentionカーネルはスライディングウィンドウを直接サポートし、PyTorchのFlexAttentionは任意のマスク関数をブロックスパースなGPUカーネルにコンパイルします。そのcreate_block_maskは、1,024トークンのウィンドウと4つのシンクトークンを使う場合に、カーネルがどのブロックをスキップするかを示します。

from torch.nn.attention.flex_attention import create_block_mask

seq_len, window, sinks = 8192, 1024, 4


def local_plus_sinks(b, h, q_idx, kv_idx):
    """Causal attention to the previous 1,024 tokens plus the first 4 tokens."""
    causal = q_idx >= kv_idx
    return causal & ((q_idx - kv_idx <= window) | (kv_idx < sinks))


# FlexAttentionは、カーネルが空のブロックをスキップできるよう、マスクを128 x 128のブロックに分割します
block_mask = create_block_mask(local_plus_sinks, B=None, H=None, Q_LEN=seq_len, KV_LEN=seq_len, device="cpu")
print(block_mask)

出力には、8,192 × 8,192のスコア行列のうち、許可されたペアを含まない128 × 128ブロックの割合であるsparsity=85.47%が表示されます。また、ウィンドウを表す対角線の帯と、シンクトークンを表す左端の列としてパターンを描画します。flex_attentionをtorch.compile上で実行すると、カーネルはそれらのブロックを完全にスキップします。

  • Flash attention: 高速なオンチップメモリーで処理をタイル分割し、すべてのペアに対する正確なアテンションを計算する、I/Oを考慮したカーネルです。そのタイルはブロックスパースカーネルがスキップする単位でもあります。
  • 線形アテンション: すべてのペアを保持しながらsoftmaxを特徴マップに置き換えるため、過去のすべてのキーと値を固定サイズの状態に圧縮できます。
  • 変形可能アテンション: 固定パターンに従って注目するのではなく、各クエリが特徴マップ上の学習済みオフセットにある少数のサンプリング点に注目するビジョン向けの機構です。
  • 混合エキスパート (MoE): パラメーターをスパースにする手法です。各トークンは少数のエキスパートネットワークだけを活性化しますが、アテンションパターンは密なままです。

用途#

長いコンテキストを扱う言語モデルが主な用途です。スパースレイヤーは計算量を抑え、ウィンドウレイヤーはKVキャッシュも抑えるため、モデルは1回のリクエストで長いレポートを要約したり、大規模なコードベースを検索したりできます。BigBirdは、一般的な文よりはるかに長い数千塩基対の入力からプロモーター領域を予測するため、スパースパターンをDNA配列に適用しました。コンピュータービジョンでは、画像解像度に応じてトークン数が増えるため、モデルはアテンションを局所領域に制限します。Swin Transformerは、ずらしたウィンドウ内でアテンションを行います。バッファロー大学と中国科学院大学の研究者が開発し、Ultralyticsパッケージで実行できる、アテンション中心の検出器YOLO12はエリアアテンションを使用します。ストライド16のバックボーン段階で、640ピクセル画像の40 × 40の特徴マップを400トークンずつの横長の4領域に分割し、各領域内だけでアテンションを行います。これにより、1,600トークンすべてに対する完全なアテンションで必要となる256万ペアの4分の1だけをスコアリングします。

ソリューションを見る

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

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

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

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

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

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

Ultralytics YOLOを活用して航空宇宙分野でコンピュータビジョンを導入し、航空機検査、滑走路上のFOD検出、空港の地上業務、複合材の欠陥検出に活用できます。
詳しく見る
セキュリティ分野のコンピュータービジョン

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

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の未来を一緒に築きましょう!

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