Ring Attention(リングアテンション)(リング アテンション)
複数GPUをリング状に接続し、Key-Valueをブロック単位で隣接GPUに伝達しながら注意計算を分散する手法。100万トークン超の長文脈LLM学習を可能にする2023年UC Berkeleyの提案。
Ring Attention(リングアテンション)完全ガイド
概要
Ring Attentionは2023年にUC BerkeleyのHao Liu、Matei Zaharia、Pieter Abbeelらが提案した分散アテンション計算手法。複数GPUをリング状に接続することで理論上無制限のシーケンス長を扱えるよう設計されている。100万トークン超の長文脈LLM学習を現実的なコストで実現する技術として注目されている。
技術的仕組み
N個のGPUをリング状に接続し入力シーケンスをN個のブロックに分割する。各GPUは自身が担当するQ(クエリ)ブロックと現在保持するK/V(キー・バリュー)ブロックの積を計算する。計算が完了すると、K/VブロックをリングのNext GPUに送信しながら、同時に前のGPUからK/Vブロックを受信する。このプロセスをN回繰り返すことで全てのQ-K/V組み合わせのアテンションが計算完了する。
通信とコンピュートをオーバーラップさせることで、通信オーバーヘッドを最小化できる。
スペック・パフォーマンス比較
| 手法 | 最大シーケンス長 | GPUスケール | メモリ効率 | 通信コスト |
|---|---|---|---|---|
| Standard Attention | ~32K(A100 80GB) | ✗ | 低 | なし |
| Ring Attention | 理論上無制限 | ◎線形 | ◎ | 低(オーバーラップ) |
| Ulysses Attention | 長文脈対応 | ○ | ○ | 中(All2All) |
| Megatron-LM SP | 長文脈対応 | ○ | ○ | 中 |
主要実装と採用例
ring-flash-attn: FlashAttentionと統合したオープンソース実装(PyPI)LongContextAttention: zig-zag ring attention variant(キャッシュ効率改善版)- LongLoRA: LLaMAの100K文脈学習に採用
- Yi-34B-200K: 200Kトークンコンテキスト訓練基盤
- Kimi: 100万トークン処理に採用
FlashAttentionとの関係
Ring AttentionはFlashAttentionと直交する技術で通常は組み合わせて使用する。FlashAttentionが単一GPU内のメモリIO効率を最適化するのに対し、Ring Attentionは複数GPUへのシーケンス次元の分散を担当する。「Ring Flash Attention」として両者を統合した実装が普及している。
因果マスクの課題
デコーダー型LLMの因果アテンションマスクをリング分散で正しく適用するには特殊な処理が必要。zig-zag方式で解決されているが、ロードバランシング(因果マスクの非対称性でGPU間の計算量偏り)は依然として課題。
2025年の動向
1Mトークン以上のコンテキストが標準化しつつある2025年において、Ring Attentionは長文脈モデル訓練の標準技術となりつつある。Gemini 1.5の1Mトークン対応、Claude 3系の200Kトークン対応も Ring Attention系の技術に支えられている。
関連用語
- Ulysses Attention: DeepSpeedが提案する別方式のシーケンス並列化
- Sequence Parallelism(Megatron): NVIDIAのシーケンス並列化手法
- 3D Parallelism: データ・テンソル・パイプライン並列の組み合わせ