Repolode
fla-org

fla-org/flash-linear-attention

基于 Triton 的高效内核与层实现,覆盖线性注意力、稀疏注意力、状态空间模型及混合 LLM 架构。

Star
5,952
Fork
778
未关闭 Issue
126
最近提交
8小时前

这是什么?

Flash Linear Attention(fla)是一个 Python 库,提供面向序列模型的高效构建模块,可用来替代或补充标准 softmax 注意力。它包含基于 Triton 的内核、开箱即用的层(如 GatedDeltaNet、RetNet、GLA、Mamba2),以及基于这些层实现、兼容 🤗 Transformers 的模型类。项目称其实现与平台无关,并在 NVIDIA、AMD 和 Intel 硬件上完成验证。

除单个层之外,fla 还提供带门控的 RMSNorm、融合的线性交叉熵、旋转位置编码等融合模块,用于降低显存占用、加快训练。混合模型可以通过配置参数,在线性注意力模型中按层插入标准注意力层。生成推理沿用 Hugging Face 的标准接口,预训练权重托管在 fla-hub 组织下。

仓库还介绍了基于 torchtitan 的配套训练框架 flame,并提供基于 lm-evaluation-harness 的评测脚本和困惑度评估。

核心功能

  • 01提供线性注意力、稀疏注意力和状态空间模型等变体的 Triton 内核。
  • 02提供 MultiScaleRetention 等可直接替换多头注意力的 token mixing 层。
  • 03提供兼容 Hugging Face Transformers 的模型类与可配置的模型参数。
  • 04支持在指定层数插入标准注意力,构建混合模型。
  • 05提供融合的归一化、旋转位置编码和交叉熵模块,以降低显存并加速训练。
  • 06通过 CUDA、ROCm、XPU、Ascend NPU、CPU 等后端选项安装。

适用场景

  • 在长上下文语言模型中,用线性注意力变体替代二次复杂度的注意力。
  • 用 Hugging Face 风格的流程预训练或微调次二次复杂度的 LLM。
  • 探索将注意力层与循环层混合的混合架构。
  • 在不同 GPU 上测试线性注意力内核的运行速度。

标签

常见问题

flash-linear-attention 是什么?
基于 Triton 的高效内核与层实现,覆盖线性注意力、稀疏注意力、状态空间模型及混合 LLM 架构。 Flash Linear Attention(fla)是一个 Python 库,提供面向序列模型的高效构建模块,可用来替代或补充标准 softmax 注意力。它包含基于 Triton 的内核、开箱即用的层(如 GatedDeltaNet、RetNet、GLA、Mamba2),以及基于这些层实现、兼容 🤗 Transformers 的模型类。项目称其实现与平台无关,并在 NVIDIA、AMD 和 Intel 硬件上完成验证。
flash-linear-attention 可以免费使用吗?用的什么许可证?
flash-linear-attention 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
flash-linear-attention 还在维护吗?
活跃维护中。flash-linear-attention 最近一次提交是在 2026年10月20日。
flash-linear-attention 适合用来做什么?
在长上下文语言模型中,用线性注意力变体替代二次复杂度的注意力。 用 Hugging Face 风格的流程预训练或微调次二次复杂度的 LLM。 探索将注意力层与循环层混合的混合架构。 在不同 GPU 上测试线性注意力内核的运行速度。
在哪里获取 flash-linear-attention?
源代码和安装说明在 GitHub 上:https://github.com/fla-org/flash-linear-attention

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目