LLM推論・最適化

Flash Attention 2 / 3 ふらっしゅあてんしょんつー / すりー

Flash Attention 2Flash Attention 3GPU最適化H100アテンション高速化並列処理
Flash Attention 2 / 3について教えて

簡単に言うとこんな感じ!

Flash Attentionの進化版だよ!FA2はGPUをもっと無駄なく使うよう並列処理を改善して約2倍速くなり、FA3はNVIDIAの最新GPU(H100)の特殊機能を最大限に活かしてさらに高速化したんだ。LLMが速く動く裏側の縁の下の力持ちだね!


Flash Attention 2 / 3とは

Flash Attention 2(FA2) は2023年7月にTri Dao氏が発表した改良版で、Flash Attention 1の並列化戦略を見直し、シーケンス長方向の並列化とワーク分散の最適化を行いました。特にGPUの演算コア(CUDA Core)の稼働率を大幅に向上させ、実測でFlash Attention 1比で約2倍の高速化を達成しています。

Flash Attention 3(FA3) は2024年に発表され、NVIDIA H100 GPUが持つ非同期テンソルコア・FP8演算・パイプライン処理の機能を活用しています。H100のハードウェア特性に合わせた低レベル最適化により、FP16でFA2比1.5〜2倍、FP8では最大3.8倍の高速化を実現しています。


バージョン別比較

項目FA1(2022)FA2(2023)FA3(2024)
速度(対従来比)2〜4倍4〜8倍6〜12倍(H100)
並列化戦略シーケンス方向シーケンス+ヘッド方向非同期パイプライン
FP8サポートなしなしあり
対応GPUA100等A100 / H100H100最適
マルチクエリ対応一部GQA対応GQA/MQA対応

歴史と背景

  • 2022年6月:Flash Attention(v1)公開
  • 2023年7月:Flash Attention 2公開、実質的に業界標準に
  • 2023年以降:PyTorch 2.0が torch.nn.functional.scaled_dot_product_attention としてFA2を標準統合
  • 2024年:Flash Attention 3発表、H100のTensor Memory Accelerator活用
  • 現在:LLaMA 3・Mistral・Claude・GPT-4o等の主要モデルで採用

GQA(Grouped Query Attention)との組み合わせ

FA2以降はGQA(グループドクエリアテンション)に対応しています。GQAはKVヘッドを共有することでKVキャッシュを削減する手法で、LLaMA 2 70B等で採用。FA2 + GQAの組み合わせで速度とメモリ効率を両立しています。

MHA(マルチヘッドアテンション): Qヘッド = Kヘッド = Vヘッド
MQA(マルチクエリアテンション): KとVは1ヘッドのみ共有
GQA(グループドクエリアテンション): K/VをGグループに集約(中間的)

Flash Attention 2/3 はGQA/MQAに対応し、メモリ効率を最大化

関連用語