YOLOのライセンス
Ultralytics用語集に戻る

Linear Attention

線形アテンションでは、ソフトマックスを特徴マップに置き換え、系列長に対する計算量を線形に抑え、デコード時に固定サイズの状態を保持します。DeltaNetとハイブリッドについて解説します。

線形アテンションは、標準的なソフトマックス自己アテンションの二次コストに代わり、系列長に対して計算コストが線形に増加するアテンション機構の一種です。ソフトマックスアテンションは各クエリをすべてのキーと照合するため、N個のtokenから、各ヘッドにつきN × Nのスコア行列が生成されます。また、テキストを生成するTransformerでは、トークンごとに増大するKVキャッシュを保持します。線形アテンションは、ソフトマックスによる類似度を特徴マップの内積φ(q)·φ(k)に置き換えます。これにより、モデルは行列積の順序を組み替え、過去のすべてのキーと値を固定サイズの状態に要約できます。Katharopoulosらが2020年に発表した論文Transformers are RNNsが、この手法の一般的な形式を示しました。現在では、ゲート付きの変種が標準的なアテンション層とともに、実運用の大規模言語モデル(LLM)で使われています。

線形アテンションの仕組み#

ソフトマックスアテンションはsoftmax(QKᵀ)Vを計算します。exp(q·k)はクエリ部分とキー部分に分解できないため、クエリとキーのすべてのペアをスコアリングする必要があります。elu(x) + 1などの特徴マップφを使うと、出力はφ(Q)(φ(K)ᵀV)となり、φ(Q)とφ(K)の各行の合計で正規化されます。行列積は結合則を満たすため、先にφ(K)ᵀVを計算できます。これはトークン数に関係なく、dをヘッド次元としてd × dの行列になります。計算量はO(N²d)からO(Nd²)に減少するため、系列がヘッド次元よりかなり長い場合に効果を発揮します。

因果モデルでは、同じ代数変形により、アテンションを行列値の状態を持つ再帰型ニューラルネットワーク(RNN)に変換できます。新しいトークンが追加されるたびに、外積φ(k)vᵀを状態に加え、そのトークンのクエリは状態を読み取ります。そのため、テキスト生成に必要なメモリとトークンあたりの時間は一定です。学習では並列形式、またはflash-linear-attentionライブラリなどのチャンク単位カーネルを使うため、GPUは引き続き系列全体を一度に処理できます。PyTorchでは、2つの形式が同じ出力を返します。

import torch
import torch.nn.functional as F

torch.manual_seed(0)
n, d = 2048, 64
q, k, v = torch.randn(3, n, d).unbind(0)
phi_q, phi_k = F.elu(q) + 1, F.elu(k) + 1  # positive feature map in place of softmax

# Parallel form: an n x n causal score matrix, as in softmax attention
scores = torch.tril(phi_q @ phi_k.T)
parallel = (scores @ v) / scores.sum(dim=-1, keepdim=True)

# Recurrent form: a fixed d x d state that each new token updates
state, norm, outputs = torch.zeros(d, d), torch.zeros(d), []
for t in range(n):
    state += torch.outer(phi_k[t], v[t])
    norm += phi_k[t]
    outputs.append(phi_q[t] @ state / (phi_q[t] @ norm))
recurrent = torch.stack(outputs)

print("Same outputs:", torch.allclose(parallel, recurrent, atol=1e-4))
print(f"Recurrent state: {state.numel():,} numbers; KV cache after {n:,} tokens: {2 * n * d:,} numbers")

Same outputs: True と出力されます。64 × 64の状態は、系列がどれだけ長くなっても4,096個の数値を保持します。一方、2,048トークン処理後の1ヘッド分のKVキャッシュは262,144個の数値を保持し、新しいトークンごとに128個ずつ増加します。

DeltaNet、ゲーティング、ハイブリッドモデル#

固定サイズの状態は、情報を失うメモリです。通常の線形アテンションは状態に情報を追加するだけなので、古い関連付けが蓄積して干渉し、長いコンテキストウィンドウから特定の事実を想起する性能がソフトマックスアテンションに劣ります。現在は、主に2つの対策が使われています。ゲーティングでは、各更新の前に学習した減衰率を状態に乗算することで、モデルが情報を忘れられるようにします。この仕組みはMamba-2などの状態空間モデル(SSM)にも共通しており、その著者らは2つのモデル群が互いに双対な形式であることを示しました。線形Transformerと高速重みプログラマーを結び付けた研究に由来するデルタルールでは、キーに現在保存されている値を読み取り、新しい値と予測値との差分だけを書き込みます。DeltaNetは2024年に、系列全体にわたるデルタルールの並列学習を実現しました。Gated DeltaNet(ICLR 2025)は減衰ゲートを追加し、Moonshot AIのKimi Linearは、各チャネルに個別に作用するようゲートを改良しています。

実運用モデルでは、正確な想起を保つため、これらの層に完全なアテンション層を交互に組み合わせます。Qwen3-NextおよびQwen3.5ファミリーは、Gated DeltaNet層3つの後にゲート付きソフトマックスアテンション層1つを置くブロックを繰り返します。Kimi Linearも、Kimi Delta Attentionとmulti-head latent attentionを同様の3:1の比率で組み合わせます。

  • 自己アテンション:すべてのトークンペアをスコアリングする正確なソフトマックス形式です。計算時間は二次で、KVキャッシュは系列長に応じて増加します。
  • Flash attention:オンチップメモリ上のタイル単位で、正確なソフトマックスアテンションを計算するGPUカーネルです。メモリトラフィックを削減しますが、演算数は二次のままです。
  • スパースアテンション:ソフトマックスを維持したまま、最近のトークンの局所領域など、選択されたペアだけをスコアリングします。
  • グループ化クエリアテンション(GQA):クエリヘッド間でキーと値を共有し、完全なソフトマックスアテンションを維持しながら、KVキャッシュを一定の比率で縮小します。

線形アテンションの用途#

最大の用途は長文脈言語モデルです。ハイブリッドモデルの線形層はデコード中に固定サイズの状態を維持し、少数のソフトマックス層だけが増加するKVキャッシュを保持するためです。2つ目の用途はビジョンです。画像解像度が高くなるほどトークン数が増えるためです。EfficientViTは、ReLUベースの線形アテンションを高解像度のセマンティックセグメンテーションに使用します。また、NVIDIAのSANAは、最大4096 × 4096ピクセルの画像を生成する線形拡散Transformerを構築しています。物体検出では、通常、特徴マップが最も小さい部分だけでアテンションを実行します。YOLO26は標準的なソフトマックスアテンションを維持し、C2PSAブロックとアテンション対応のC3k2ブロック1つだけで実行します。いずれも640ピクセル画像のストライド32にあたる20 × 20の特徴マップ上で動作するため、各アテンション層が処理するトークンは400個で、ヘッドあたりの完全なスコア行列の要素数は160,000です。

ソリューションを見る

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

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

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

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