LLMアテンション機構(エルエルエムアテンションキコウ)
アテンション機構とは、入力シーケンス内の各トークンが他の全トークンとの関連度を動的に計算し、重要な情報に選択的に注目する仕組みである。2017年のTransformer論文「Attention Is All You Need」で提案されたSelf-Attentionが基盤となり、GPT-4o、Claude 4、Gemini 2.5 Pro、Llama 3.1など現代のLLMすべてがこの機構を中核に採用している。
LLMアテンション機構とは
LLMアテンション機構は、Transformerアーキテクチャの中核をなす計算手法であり、入力テキスト中の各トークンが他のすべてのトークンとの関連性スコアを算出し、文脈に応じた表現を生成する。2017年にGoogle Brainが発表した論文「Attention Is All You Need」(Vaswani et al.)でSelf-Attention(自己注意)として提案され、RNNやLSTMに代わるシーケンスモデリングの主流となった。
概要と歴史的背景
アテンション機構のアイデア自体は2014年のBahdanau Attention(機械翻訳向け)に遡るが、Transformerが全結合型のSelf-Attentionを導入したことで計算の並列化が可能となり、大規模言語モデルの学習効率が飛躍的に向上した。
| 年代 | 手法 | 特徴 | 代表モデル |
|---|---|---|---|
| 2014 | Bahdanau Attention | エンコーダ-デコーダ間の加法アテンション | seq2seq翻訳 |
| 2017 | Scaled Dot-Product Attention | Q・K・Vの内積ベース、並列計算可能 | Transformer (base/big) |
| 2019 | Multi-Head Attention | 複数ヘッドで異なる部分空間の関係を捕捉 | BERT, GPT-2 |
| 2023 | FlashAttention-2 | IO-Aware実装でHBM帯域を最適化 | Llama 2, Mistral 7B |
| 2024 | Grouped-Query Attention | KVヘッド共有でメモリ効率化 | Llama 3.1, Gemma 2 |
| 2025 | Ring Attention | デバイス間でシーケンスを分散処理 | Gemini 2.5 Pro (1Mトークン) |
Self-Attentionの計算原理
Self-Attentionは3つの行列 Query (Q)、Key (K)、Value (V) を用いて計算される:
- ステップ1: 入力埋め込みにWq、Wk、Wvの重み行列を乗じてQ、K、Vを生成
- ステップ2: QとKの転置行列の内積を計算し、次元数dkの平方根で除算(Scaled Dot-Product)
- ステップ3: Softmax関数でアテンションスコア(重み)を正規化
- ステップ4: スコアとVの加重和を出力として返す
- 計算量: シーケンス長nに対してO(n^2)の時間・空間計算量が必要
- GPT-4oの実装: 推定128ヘッド、モデル次元12,288、1ヘッドあたり96次元
- Llama 3.1 405B: 128ヘッド、モデル次元16,384、GQA採用でKVヘッド8個に圧縮
主要なアテンション変種
現代のLLMでは、基本のSelf-Attentionを効率化・拡張した多数の変種が開発されている:
| 手法 | 計算量 | メモリ効率 | 長文対応 | 採用モデル |
|---|---|---|---|---|
| Multi-Head Attention (MHA) | O(n^2 * d) | 標準 | 制限あり | GPT-3, BERT |
| Multi-Query Attention (MQA) | O(n^2 * d) | 高い | 制限あり | PaLM, Falcon-40B |
| Grouped-Query Attention (GQA) | O(n^2 * d) | MHAとMQAの中間 | 制限あり | Llama 3.1, Gemma 2 |
| FlashAttention-2 | O(n^2 * d) | SRAM最適化 | 改善 | Mistral, Yi-34B |
| Sliding Window Attention | O(n * w * d) | 高い | 良好 | Mistral 7B, Longformer |
| Ring Attention | O(n^2 * d / P) | デバイス分散 | 極めて良好 | Gemini 2.5 Pro |
| Linear Attention | O(n * d^2) | 高い | 良好 | RWKV, Mamba (非Attention) |
KVキャッシュとアテンションの関係
推論時のアテンション計算では、過去のトークンに対するKey・Value行列をキャッシュ(KVキャッシュ)することで再計算を回避する。このKVキャッシュのメモリ消費がLLMサービングの主要ボトルネックとなっている:
- Llama 3.1 70B(MHA時仮定): 128K文脈で約40GB/リクエストのKVキャッシュ
- Llama 3.1 70B(GQA実装): KVヘッド8個でKVキャッシュ約2.5GB/リクエストに削減
- PagedAttention(vLLM): KVキャッシュを4KBページ単位で動的割当、メモリ断片化を解消
- Prefix Caching: 共通プレフィックスのKVキャッシュを複数リクエスト間で再利用
ハードウェアとアテンション最適化
アテンション演算は行列乗算が主体であり、GPUのTensor Coreとの親和性が高い:
- NVIDIA H100: FP16で989 TFLOPS、HBM3帯域3.35TB/s、FlashAttention-2でMFU 70%以上達成
- NVIDIA H200: HBM3e 141GB、帯域4.8TB/s、KVキャッシュ容量が1.76倍に拡大
- NVIDIA B200: FP4で18 PFLOPS、アテンション演算のスループットがH100比4.5倍
- AMD MI300X: HBM3 192GB、帯域5.3TB/s、ROCm 6.xでFlashAttention対応
- Google TPU v5p: bf16で459 TFLOPS、高帯域ICI接続でRing Attention効率化
よくある質問(FAQ)
Q1: アテンション機構はなぜO(n^2)の計算量が問題になるのですか? A: シーケンス長nの2乗に比例してアテンション行列のサイズが増大するため、128Kトークンの場合は128K x 128K = 約164億要素の行列が必要になる。これがメモリと計算時間の両面でボトルネックとなり、FlashAttentionやSliding Window Attentionなどの効率化手法が開発された。
Q2: Multi-Head AttentionとGrouped-Query Attentionの違いは何ですか? A: MHAは各ヘッドが独立したQ・K・V重みを持つのに対し、GQAは複数のQueryヘッドで1組のK・Vヘッドを共有する。Llama 3.1 70Bでは64個のQueryヘッドに対しKVヘッドは8個で、推論時のKVキャッシュメモリが1/8に削減される。
Q3: FlashAttentionは計算量を減らしているのですか? A: FlashAttentionは計算量(FLOP数)自体は標準アテンションと同じO(n^2)だが、GPU内のSRAM(高速メモリ)とHBM(大容量メモリ)間のデータ転送を最小化するIO-Awareアルゴリズムにより、実測の壁時計時間を2-4倍高速化する。メモリ使用量もO(n)に削減される。
Q4: Mamba/RWKVなどの線形アテンションモデルはTransformerを置き換えますか? A: 2026年時点では、Mamba-2やRWKV-6などの線形計算量モデルが長文処理で優位性を示しているが、複雑な推論タスクではTransformerベースのアテンションが依然として高性能。Jamba(AI21 Labs)のようにMambaとTransformerを組み合わせるハイブリッドアプローチも登場している。
まとめ
- アテンション機構はTransformerの中核であり、Q・K・Vの内積計算によりトークン間の関連度を動的に算出する
- O(n^2)の計算量がボトルネックとなるため、GQA・FlashAttention・Sliding Window等の効率化手法が必須
- KVキャッシュの管理(PagedAttention、Prefix Caching)がLLMサービングの性能を左右する
- H100/H200/B200などの最新GPUはアテンション演算に最適化された設計を採用している
- 線形アテンションモデル(Mamba等)との競合・融合が2026年の主要トレンド