原贴链接

我在mlx上提出了一个关于速度比llama.cpp慢的问题(https://github.com/ml - explore/mlx - examples/issues/1029)。基本上,在长文本情况下,没有flash attention时mlx比llama.cpp快,但有flash attention时比llama.cpp慢。最终,MLX团队改进了MLX LM 0.20.1,使其速度与有flash attention的llama.cpp相当。在我的特定测试中,它从每秒22.569个token提升到了每秒33.269个token。这里是我的完整提示(https://pastebin.com/raw/U4fjjTuv),后面列出了在不同条件下(如不同量化方式、是否有flash attention等)llama.cpp和mlx的性能测试数据。

讨论总结

原帖主要讨论MLX LM 0.20.1达到了与llama.cpp有闪念注意力时可比的速度,通过数据展示了速度提升情况。评论者们大多围绕这个主题展开讨论,一些人对两者速度相当感到惊讶,对MLX的速度提升感到高兴,还期待MLX能应用到更多地方如lmstudio中。同时,也有评论者针对技术细节提出疑问,如关于Q4_K_M与4 - bit mlx的关系等,也有人询问这种速度提升是否会推广到mlx - swift等内容,整体讨论氛围积极,是一个以技术交流为主的讨论。

主要观点

  1. 👍 原以为mlx会比llama.cpp快很多,实际两者速度相当让人惊讶。
    • 支持理由:考虑到MLX专为苹果硅片设计,本应速度更快。
    • 反对声音:无。
  2. 🔥 对MLX LM 0.20.1有40%的速度提升感到高兴。
    • 正方观点:速度提升是明显的进步。
    • 反方观点:无。
  3. 💡 在短语境7k时mlx - lm比llama.cpp快。
    • 解释:通过实际数据对比得出。
  4. 💡 GGUF/llama.cpp模型在“思考”时会大幅增加内存压力。
    • 解释:对比MLX得出。
  5. 💡 MLX在模型加载到内存做运算时对系统性能影响较小。
    • 解释:与llama.cpp对比得出。

金句与有趣评论

  1. “😂 Man, all things considered (that MLX is designed from the ground up for apple silicon exclusively), I’m impressed at llama.cpps numbers, I thought mlx was significantly faster, not neck and neck!”
    • 亮点:表达出对两者速度相当的惊讶,且提到了对MLX基于苹果硅片设计的原有预期。
  2. “🤔 Glad to see such massive improvements though, 40% faster generation is a LOT”
    • 亮点:直接表明对MLX速度提升幅度的惊喜。
  3. “👀 With shorter context like 7k, mlx - lm is faster. I.E. 63.21 vs 52.27.”
    • 亮点:给出了具体语境下两者速度对比数据。
  4. “👀 GGUF/llama.cpp models substantially increase memory pressure while "thinking’ compared to MLX where it barely budges.”
    • 亮点:明确指出两者在内存压力方面的差异。
  5. “🤔 now we wait for this to arrive in lmstudio. I wish we had more options for running MLX, comparable to GGUF.”
    • 亮点:表达出对MLX应用到lmstudio的期待以及对更多运行MLX选择的渴望。

情感分析

总体情感倾向是积极的。主要分歧点较少,不过有对MLX版本性能方面的一些质疑,如4位和8位MLX版本与Q4_K_M/Q8_0的性能差异。可能的原因是大家都关注技术的发展和优化,在积极看待进步的同时也会对存在的问题提出自己的看法。

趋势与预测

  • 新兴话题:MLX速度提升是否会推广到mlx - swift以及MLX版本性能差异相关问题可能引发后续讨论。
  • 潜在影响:如果MLX相关性能问题得到解决,可能会影响到在苹果设备上模型运行的选择倾向,也可能推动相关软件如lmstudio对MLX的应用等。

详细内容:

《MLX LM 0.20.1 速度提升引发Reddit热议》

在Reddit上,一则关于“MLX LM 0.20.1 终于拥有与 llama.cpp 带 flash attention 相当的速度”的帖子引起了广泛关注。该帖子获得了众多点赞和大量评论。原帖指出,此前mlx在长上下文处理速度上与llama.cpp存在差异,如今MLX团队对MLX LM 0.20.1 进行了改进,使其速度能与llama.cpp带 flash attention 相媲美。并且,原帖还提供了详细的测试数据和相关链接,如https://github.com/ml-explore/mlx-examples/issues/1029 以及 https://pastebin.com/raw/U4fjjTuv

这一话题引发了多方面的热烈讨论。有人表示,尽管MLX专为苹果硅设计,但 llama.cpp 的表现令人印象深刻,而MLX此次的大幅改进也很出色,40%的生成速度提升是很大的进步。有人提到不要低估ggerganov在金属后端的工作。还有人指出,对于较短的上下文,如 7k,mlx - lm 速度更快。同时,也有人提到GGUF/llama.cpp 模型在“思考”时会大幅增加内存压力,而MLX则几乎不会。

在讨论中,有人认为Q4_K_M 可能不等同于 4 - bit mlx,可能是 q4_0。有人分享了自己运行无头 Ollama 装置的经历,并考虑转向 LM Studio 和 MLX,甚至尝试用 MLX 替代 Llama.cpp 或两者并用。有人指出,如果有闲置内存,llama.cpp 新发布的推测解码服务器实现可能比 MLX 更快,但 LM Studio 是一款处理整个堆栈的易用软件。有人讨论了在不同硬件上的表现和内存使用情况。

总之,这场讨论展现了大家对MLX和llama.cpp性能的关注和深入探讨,也为相关技术的发展提供了有价值的思考。