FlashAttention 加速注意力
FlashAttention 通过分块和重计算减少显存访问,提升长上下文训练的吞吐并降低显存占用。flash-attn 是常用实现,支持 Ampere、Hopper 等较新 GPU。
它通常作为 PyTorch 的注意力后端使用,Transformers、vLLM、DeepSpeed 等框架会自动检测。
安装:
pip install flash-attn --no-build-isolation
python -c "import flash_attn; print(flash_attn.__version__)"
在 Transformers 中启用:
model = AutoModelForCausalLM.from_pretrained(
"Qwen/Qwen2.5-7B-Instruct",
torch_dtype="bfloat16",
attn_implementation="flash_attention_2",
device_map="auto",
)
检查 GPU 架构:
nvidia-smi --query-gpu=name,compute_cap --format=csv
基准测试:
python -m flash_attn.utils.benchmark
--no-build-isolation 可避免依赖隔离问题。attn_implementation 写错,Transformers 回退到 eager 但不报错。