メインコンテンツへスキップ
EXBANK
Draft / 編集レビュー前この用語はAI補助で初稿生成中です。事実確認・編集監修が完了するまで検索エンジンには公開されません。誤りを見つけたらこちらから連絡してください。
用語集一覧へ
— Glossary

Flash Attention(高速アテンション)FA

読み: フラッシュアテンション
TL;DR — 短い定義

Flash Attention は、GPU の SRAM とタイリングを活用してアテンション行列をメモリに具体化せず計算する I/O 最適化アルゴリズムです。メモリ消費を線形化し2-4倍の高速化を実現します。

詳細解説

Flash Attention(フラッシュアテンション)は、Tri Dao らが2022年に提案した Self-Attention の I/O-aware な厳密計算アルゴリズムで、GPU の HBM(High Bandwidth Memory)と SRAM(オンチップ・シェアードメモリ)の帯域差を最大限に活用するタイリング戦略により、N×N のアテンション行列を一度に具体化することなくブロック単位で逐次計算します。これにより、メモリ消費が系列長 N に対して O(N^2) から O(N) に改善され、A100 GPU で2-4倍、長文ではさらに大きな高速化が得られます。重要なのは数値的に厳密(exact)であり近似ではない点で、ドロップアウトや任意のマスクとも互換性があります。Online Softmax の手法を再帰的に適用することで、すべてのスコアを保持せずに正規化を実現しています。PyTorch 2.0 の scaled_dot_product_attention で透過的に呼ばれるようになり、Hugging Face Transformers の attn_implementation="flash_attention_2" 指定で簡単に使えます。GPT-4 を含む主要 LLM の事前学習・ファインチューニング・推論で標準的に採用され、Flash Attention 2(2023)、Flash Attention 3(2024、H100 最適化)へと進化しています。

実装例 / 使い方

  • 01PyTorch 2.0 以降は torch.nn.functional.scaled_dot_product_attention で自動利用されます
  • 02GPT-4・Llama・Mistral などの大規模学習で標準採用されています
  • 03A100 80GB で系列長32Kでも OOM せず学習できます
IMPLEMENT

Flash Attention(高速アテンション)を、実際に活用する

用語の意味は分かった。次は実装。EXBANK の無料診断で、貴社で具体的にどう活用できるかをご提案します。

営業時間 平日10-18時 / 通常24時間以内に返信