HKUSTDial/flash-sparse-attention

Trainable fast and memory-efficient sparse attention

解決的問題

Flash-Sparse-Attention (FSA) 解決了在 Transformer 模型中處理極長序列時相關的計算與記憶體瓶頸問題。它結合了 Flash Attention 的記憶體效率與稀疏計算,以減少訓練與推論過程中注意力機制的開銷。

工作原理

FSA 實現了一種高效率、可訓練的稀疏注意力機制。它支援多種注意力模式,包括因果、局部視窗與門控注意力,同時利用 Split-KV 與 Split-QO 等技術實現工作負載平衡。它還提供融合量化功能,支援在缺乏原生 FP8 支援的硬體上進行低精度計算,並支援 Paged Attention 以實現解碼過程中的高效記憶體管理。

適用對象

需要在 GPU、XPUs、NPUs 或 PPUs 上高效處理長上下文視窗,並實現高效率訓練與解碼的大規模 Transformer 模型的研究人員與開發者。

主要亮點

  • 全面的注意力支援:支援密集、稀疏與門控注意力,具備前向與反向傳播能力。
  • 靈活配置:支援每頭任意視窗大小、Grouped Query Attention (GQA) 與 Multi Query Attention (MQA)。
  • 工作負載平衡:使用 Split-KV(用於前向/解碼)與 Split-QO(用於反向)優化效能。
  • 硬體相容性:融合量化支援在舊硬體上進行低精度計算。
  • 解碼優化:包含 Top-k gather KV-cache 解碼與 Paged Attention。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • Dispatch