meta-pytorch/attention-gym

Helpful tools and examples for working with flex-attention

解决的问题

Attention Gym 提供了一个集中式的库,包含实现新型注意力机制所需的内核、指南和示例。它简化了创建和使用自定义注意力掩码及分数修改的过程,特别适用于使用 PyTorch 的 FlexAttention API 的用户,同时提供高效的稀疏注意力和线性注意力实现。

工作原理

该库通过三种主要工作流运行:

  1. FlexAttention 集成:提供 mask_modscore_mod 函数,可直接传递给 PyTorch 的 FlexAttention API。
  2. 专用内核:包含稀疏注意力模式的 API 和内核,以及 GDN 和 KDA(分块、递归和解码路径)的高效实现。
  3. 实用示例:专门的 examples 目录提供了基准测试和真实世界的工作负载,涵盖 CUDA Graphs、编译、性能分析和可变稀疏注意力等内容。

适用人群

专为从事深度学习中注意力机制的研究人员和开发者设计,特别是那些希望尝试新型注意力变体或使用稀疏或线性注意力内核优化性能的人。

主要亮点

  • 支持 FlexAttention 掩码和分数修改。
  • 提供稀疏注意力和线性注意力(GDN 和 KDA)的高效内核。
  • 提供创建和组合注意力掩码的实用函数。
  • 包含覆盖分页、环形和可变稀疏注意力的全面示例。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目