尽管现在很多最近的模型都使用了Flash Attention,但很遗憾,pip上的flash-attn库通过torch和MPS并不支持Apple Silicon。:(
该库的仓库中有许多问题,但似乎他们没有足够的带宽来支持MPS:#421, #770, 977
有一个philipturner/metal-flash-attention,但它似乎只能在Swift中工作。
如果有谁有技能和时间来做这件事,这将是一个非常棒的贡献!
编辑:正如其他人指出的,Llama.cpp确实支持Metal上的Flash Attention,但Flash Attention也被其他类型的模型使用,如音频、图像生成等,这些Llama.cpp并不支持。我们需要在pip上为Torch和MPS提供适当的Flash Attention支持。
另外,我不确定这是否是Mac特有的问题,或者Llama.cpp上的Flash Attention for Metal是否没有完全或正确地实现,但出于某种原因,它在Mac上并没有太大区别。与Cuda相比,它似乎只提高了非常微小的内存和速度。
我在评论中看到一些关于Mac和Apple的垃圾话,但请考虑这一点:现在,Nvidia主要从开源社区的辛勤工作中免费受益,仅仅因为他们几乎垄断了AI芯片。我希望其他平台如AMD和Mac也能在AI方面获得更多关注。
讨论总结
本次讨论主要围绕Flash Attention库在Apple Silicon上的支持问题展开。许多现代模型依赖于Flash Attention,但该库在Python Pip上并不支持通过Pytorch和MPS在Apple Silicon上运行。讨论中提到了Llama.cpp对Flash Attention的支持,但仅限于某些模型,且性能提升有限。评论者普遍希望有更多开发者关注非Nvidia平台的AI芯片支持,并对Nvidia在AI芯片市场的垄断地位表示担忧。此外,讨论还涉及了开源社区的贡献、操作系统比较和技术实现细节。
主要观点
👍 Flash Attention在CUDA和Metal后端可用,但在Python Pip上不支持Apple Silicon。
- 支持理由:许多现代模型依赖于Flash Attention,缺乏支持导致性能问题。
- 反对声音:Llama.cpp支持Flash Attention,但仅限于某些模型。
🔥 Nvidia在AI芯片市场占据垄断地位。
- 正方观点:Nvidia的硬件和软件生态系统成熟,性能优越。
- 反方观点:垄断导致其他平台如AMD和Mac在AI领域缺乏关注和支持。
💡 希望更多开发者关注非Nvidia平台的AI芯片支持。
- 解释:评论者普遍认为,多样化的硬件平台有助于推动AI技术的发展和创新。
👀 Llama.cpp对Flash Attention的支持有限。
- 解释:尽管Llama.cpp支持Flash Attention,但仅限于某些模型,且性能提升有限。
🚀 Apple的CoreML在iOS 18/macOS 15中支持
scaled_dot_product_attention
操作。- 解释:该操作是Flash Attention的PyTorch原生操作,但不确定PyTorch是否为MPS实现了高效的实现。
金句与有趣评论
“😂 Flash Attention is fully open source. Did NVidia helped to develop it? If not, I’m not sure if your argument makes sense.”
- 亮点:质疑Nvidia在开源项目中的贡献,强调Flash Attention的开源性质。
“🤔 It’s hilarious how users from a multi-billion closed-source software company that prioritizes profit over community and standards, does not contribute to research or open-source initiatives and only supports its own expensive, proprietary ecosystem dares to ask the open-source community for free support for their closed, privative hardware.”
- 亮点:讽刺Apple公司不支持开源社区,却期望开源社区为其硬件提供免费支持。
“👀 I’m not developing in this space but I noticed the other day that Draw Things AI released an update with “Metal Flash Attention v2”.”
- 亮点:评论者关注到Draw Things AI的更新,推测其引入的库运行良好。
情感分析
讨论的总体情感倾向偏向技术讨论和期待更多平台支持。主要分歧点在于对Nvidia垄断地位的看法,部分评论者对Nvidia的垄断表示担忧,而另一部分则认为Nvidia的硬件和软件生态系统成熟,性能优越。此外,对Apple公司在开源社区中的角色和贡献也存在不同看法。
趋势与预测
- 新兴话题:Apple Silicon上Flash Attention的进一步优化和广泛应用。
- 潜在影响:随着更多开发者关注非Nvidia平台的AI芯片支持,未来可能会有更多开源项目和技术进展,推动AI技术的多样化和创新。
详细内容:
标题:能否让 Flash Attention 在苹果硅芯片上运行?Reddit 热议不断
在 Reddit 上,一则关于“Any wizard could make Flash Attention to work with Apple Silicon?”的帖子引发了众多关注。该帖子指出,Python Pip 上的 Flash-attn 库被众多近期的 PyTorch 模型以及 Huggingface Transformers 所使用,但遗憾的是,该库通过 PyTorch 与 MPS 并不支持苹果硅芯片。帖子中提到了相关问题的多个 repo 链接,如#421、#770 、977。
这一话题引发了热烈的讨论,观点纷呈。有人指出,目前 Flash attention 在 CUDA 和 Metal 后端可用。有用户称,Llama.cpp 在某些情况下使用 Flash Attention 会有一定的速度差异,但还未进行详细测试。还有人提到,使用 Flash Attention 时需要设置 KV 缓存的量化才能看到内存改进。有人表示,LM studio 有针对苹果硅芯片的 Flash Attention 功能。
关于该问题也存在一些争议。有人认为,英伟达在 AI 芯片领域几乎处于垄断地位,希望 AMD 和苹果等平台能在 AI 方面获得更多关注。有人则吐槽苹果作为一家重视利润而非社区和标准的封闭源软件公司,不应向开源社区寻求免费支持。但也有人反驳,称苹果是一个多产的开源贡献者。
讨论中的共识在于,大家都希望能够让 Flash Attention 在更多平台上运行,以推动技术的发展。特别有见地的观点如,认为若想在新平台上实现并优化 Flash Attention 的运行,可能需要投入大量时间和精力进行底层代码的编写和调试。
总的来说,关于 Flash Attention 与苹果硅芯片的兼容性问题,Reddit 上的讨论展现了技术爱好者们对于前沿技术的关注和探索,也反映出了在技术发展过程中不同观点的碰撞和交流。
感谢您的耐心阅读!来选个表情,或者留个评论吧!