Closed rabum closed 8 months ago
请看README, rms_norm/layer_norm 要从src单独编译安装,预编译包不包含。
请看README, rms_norm/layer_norm 要从src单独编译安装,预编译包不包含。
集成了Flash attention的pytorch 2.2也不行么
首先,需要明确“Flash Attention”算法与flash-attn
或flash-attn
库之间的区别。Flash Attention本质上是一种针对GPU优化的attention机制实现方式,而flash-attn
库则是该算法的原始参考实现。
在PyTorch
中,高效实现attention机制的核心入口是SDPA
(即Scaled Dot Product Attention)。SDPA
支持多种后端实现,其中包括了Flash Attention以及Memory Efficient Attention等方案。所谓的“集成”,并非仅指安装flash-attn
库,而是指PyTorch
中实现了Flash Attention这一特定算法。
Qwen代码中的实现可以自动识别并兼容flash-attn
库中的flash attention、PyTorch
中的SDPA
以及传统的attention实现。
其次,flash-attn
库不仅包含了flash attention算法,还涵盖了其他如rotary embedding、layer norm/rmsnorm等多种算法。根据题主提供的信息,报错并非源于flash attention算法,而是指向了layer norm/rmsnorm这一部分。实际上,README文档和错误提示已经明确指出这部分功能需要从源码单独进行安装。
总之,讨论的是两个不同的层面,“Flash Attention”这一特定GPU加速算法,以及包含该算法及其他功能的flash-attn
库,二者不可混为一谈。
如图,启动大模型后报warning没能Import flash attention,可是我已经下载了对应版本的.whl文件并pip install成功了: