跳转到主要内容

Flash Attention

Flash Attention 2 通过优化内存访问模式,为 transformer 训练提供显著的加速。

要求

Flash Attention 2 需要:
  • Linux 操作系统
  • 支持 CUDA 的 NVIDIA GPU
  • 已安装 flash-attn

快速开始

Python API

参数

注意力实现选项

模型兼容性

Gemma 模型默认使用 eager 注意力。 由于兼容性问题,Gemma 模型会自动禁用 Flash Attention 2。attn_implementation 被强制为 eager

支持的模型

与量化结合

将 Flash Attention 与量化结合以获得最大效率:

与序列打包结合

Flash Attention 支持高效的序列打包:
序列打包需要启用 Flash Attention。

性能优势

结果因模型大小、序列长度和硬件而异。

故障排除

安装错误

如果 pip install flash-attn 失败:

运行时错误

“Flash Attention 不可用”
  • 验证 flash-attn 已安装:python -c "import flash_attn"
  • 确保您在 Linux 上且支持 CUDA
  • 检查 GPU 计算能力(需要 SM 80+,例如 A100、H100)
模型尽管设置了标志仍使用 eager 注意力
  • 某些模型(如 Gemma)强制使用 eager 注意力
  • 检查模型文档以了解兼容性

下一步

Quantization

与内存优化结合

LoRA/PEFT

高效微调