最先端のテキスト、画像、音声、マルチモーダル機械学習モデルの定義、推論、学習に対応するフレームワーク。
Dao-AILab/flash-attention
GPU上でTransformerモデルを学習・推論するための、メモリ効率に優れた厳密なattentionカーネルFlashAttentionの公式実装。
- スター
- 25,163
- フォーク
- 3,175
- 未解決の Issue
- 1,382
- 最終コミット
- 9 時間前
これは何?
FlashAttentionは、GPUメモリ使用量を抑え、attentionの計算を高速化するTransformerモデル向けの厳密なattention実装です。標準的なattentionでは、系列長に対してメモリ使用量が二次的に増加します。FlashAttentionは同じ結果をメモリ使用量が線形に増える形で計算するため、GPU上でより長い系列を扱えます。
このリポジトリには、NVIDIA CUDA(Ampere、Ada、Hopper GPU)およびAMD ROCm向けのFlashAttention-2に加え、Hopper GPU向けのFlashAttention-3、HopperおよびBlackwell GPU向けにCuTeDSLで記述されたFlashAttention-4が含まれています。主なPython関数は、標準、可変長、packed QKV、KV-cacheを使った推論の各attentionに対応し、causal mask、sliding window attention、ALiBi、MQA/GQA、dropout、softcappingをサポートします。
このパッケージはpipでインストールでき、PyTorchとCUDAまたはROCmのツールキットが必要です。主にLinuxをサポートしています。
主な機能
- 01系列長に対してメモリ使用量が線形に増える形で、厳密なattentionを計算します。
- 02causal masking、sliding windowによるlocal attention、ALiBiをサポートします。
- 03Qよりhead数の少ないKV tensorを使って、MQAとGQAを利用できます。
- 04incremental decoding向けに、paged KV cacheとin-placeでのKV cache更新を備えています。
- 05NVIDIA GPU向けのCUDAビルドと、AMD GPU向けのTritonおよびCKバックエンドを提供します。
ユースケース
- NVIDIA A100またはH100 GPU上で、長い系列を使って大規模なTransformer言語モデルを学習する。
- incremental decodingとpaged KV cacheを使ってLLMの推論を提供する。
- ROCmバックエンドを通じてAMD Instinct GPU上でattentionを実行する。
クイックスタート
- 1
ビルドに必要なパッケージ(packaging、psutil、ninja)をインストールします
- 2
FlashAttentionをPyPIからインストールします
pip install flash-attn --no-build-isolation
使う前に知っておきたいこと
- 公式サポートはLinuxのみです。Windowsでのコンパイルは十分にテストされていません。
- CUDAまたはROCmのツールキットと、CUDAの場合はAmpere、Ada、Hopperなどの対応GPUが必要です。
- ninjaを使わず、並列ジョブ数を制限しない場合、ソースからのコンパイルに時間がかかり、大量のメモリを消費することがあります。
トピック
よくある質問
- flash-attention とは?
- GPU上でTransformerモデルを学習・推論するための、メモリ効率に優れた厳密なattentionカーネルFlashAttentionの公式実装。 FlashAttentionは、GPUメモリ使用量を抑え、attentionの計算を高速化するTransformerモデル向けの厳密なattention実装です。標準的なattentionでは、系列長に対してメモリ使用量が二次的に増加します。FlashAttentionは同じ結果をメモリ使用量が線形に増える形で計算するため、GPU上でより長い系列を扱えます。
- flash-attention は無料で使えますか?ライセンスは?
- flash-attention は BSD-3-Clause ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- flash-attention は今もメンテナンスされていますか?
- 活発にメンテナンス中。flash-attention の最終コミットは 2026年10月20日 です。
- flash-attention は何に使えますか?
- NVIDIA A100またはH100 GPU上で、長い系列を使って大規模なTransformer言語モデルを学習する。 incremental decodingとpaged KV cacheを使ってLLMの推論を提供する。 ROCmバックエンドを通じてAMD Instinct GPU上でattentionを実行する。
- flash-attention のインストール方法は?
- ビルドに必要なパッケージ(packaging、psutil、ninja)をインストールします FlashAttentionをPyPIからインストールします: pip install flash-attn --no-build-isolation
- flash-attention はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/Dao-AILab/flash-attention
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
大規模モデルの分散学習と推論を、より簡単かつ効率的にする深層学習最適化ライブラリ。
SGLangは、多様なGPU、TPU、CPU環境で大規模言語モデル、ビジョン言語モデル、拡散モデルを提供するオープンソース推論フレームワークです。
OpenAI互換APIで大規模言語モデルを実行・提供する、高速でメモリ効率に優れたライブラリ兼サーバー。
トークナイズから事前学習、ファインチューニング、評価、チャットまで、LLMの全工程をカバーする、単一GPUノードで動作する最小限で改造しやすいハーネス。
量子化なしで、レイヤー単位に大規模言語モデルを実行し、70Bクラスのモデルを4GB GPU 1枚で推論できるPythonライブラリ。