meta-pytorch/attention-gym

Helpful tools and examples for working with flex-attention

何を解決するか

Attention Gym は、新しいアテンションメカニズムを実装するためのカーネル、ガイド、および例の集中管理されたコレクションを提供します。PyTorch の FlexAttention API を使用するユーザーにとって、カスタムアテンションマスクやスコアの変更を簡単に作成・使用できるようにし、スパースおよび線形アテンションの効率的な実装も提供します。

仕組み

このライブラリは3つの主要なワークフローで動作します:

  1. FlexAttention 統合:PyTorch の FlexAttention API に直接渡せる mask_mod および score_mod 関数を提供します。
  2. 専用カーネル:スパースアテンションパターン用の API とカーネル、および GDN と KDA(チャンク、再帰、デコードパス)の効率的な実装を含みます。
  3. 実用的な例:CUDA Graphs、コンパイル、プロファイリング、可変スパースアテンションを含む、ベンチマークと実世界のワークロードをカバーする専用の examples ディレクトリがあります。

対象ユーザー

深層学習におけるアテンションメカニズムに取り組んでいる研究者や開発者向けです。特に、新しいアテンションバリエーションを実験したり、スパースまたは線形アテンションカーネルを使ってパフォーマンスを最適化したい人向けです。

特徴

  • FlexAttention マスクおよびスコアの変更をサポート。
  • スパースアテンションおよび線形アテンション(GDN と KDA)の効率的なカーネル。
  • アテンションマスクの作成および結合に役立つユーティリティ関数。
  • ページ化、リング、可変スパースアテンションをカバーする包括的な例。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト