原贴链接

我不确定自己忽略了什么。在过去几周,我一直在试验不同的工具和设置来可靠地运行Qwen2.5模型。这些模型包括用于常识的32b常规版、用于编码聊天和重构的32b编码版,以及用于代码自动补全的7b编码版。我尝试过诸如LMStudio、Ollama、Llamafile、Llama.cpp和Jan.ai等工具。最后我使用了Llama.cpp,因为它通过OpenAI兼容API中的cache_prompt参数允许提示缓存,这对我来说加快了包含大量消息的对话速度。然而,看起来其他工具,甚至那些基于Llama.cpp的工具,还不支持这个功能。为了使其工作,我写了一个脚本来设置模型,通过在macOS上创建LaunchAgents让它们保持运行或在启动时启动,我还写了一个Ruby代理,将cache_prompt参数设为true添加到所有对API的请求中。这样,即使对于默认不发送该参数的应用(例如我最喜欢的BoltAI),我也能享受提示缓存。这个设置在我的M4 Pro mini上运行良好。然而,我看到有人提到MLX模型应该能提供更好的推理速度,所以我下载了与Llama.cpp中使用的相同的Qwen模型,并用LM Studio以MLX格式进行了尝试。对我来说,MLX版本比Llama.cpp每秒只快1 - 2个词元,但即使空闲时它们也占用更多内存。使用Llama.cpp时,如果我不使用--mlock参数,内存使用量非常低,并且仅在生成词元时激增。我有64GB的RAM,可以用Llama.cpp轻松同时运行所有三个模型。但是使用LM Studio且有一个MLX模型处于活动状态时,由于‘资源不足’,我无法启动另一个模型。我很惊讶,因为我原以为MLX会在我的Mac上提高性能并使用更少的资源。我在这里遗漏了什么呢?

讨论总结

原帖作者讲述自己测试MLX模型的经历,发现其相比Llama.cpp在推理速度上仅有小幅度提升但内存占用大增。评论者从不同方面进行讨论,包括GGUF模型量化更成熟、MLX模型在q4量化时可能更快、不同设备上MLX与GGUF的性能对比、不相信基准测试而用自己的提示集评估等内容,整体氛围比较理性地探讨不同模型的情况。

主要观点

  1. 👍 MLX模型性能提升不明显
    • 支持理由:原帖作者测试发现MLX版本比Llama.cpp每秒仅快1 - 2个令牌且内存占用更多。
    • 反对声音:有评论者称在自己测试中MLX除第一个答案外速度比GGUF明显更快。
  2. 🔥 GGUF模型的量化比MLX更成熟
    • 正方观点:评论者根据自己和他人体验猜测GGUF量化更成熟。
    • 反方观点:无明确反对观点。
  3. 💡 不相信到处发布的基准测试,用自己的提示集进行评估
    • 解释:评论者讲述自己用自设提示集评估响应质量的经历。
  4. 💡 MLX在q4量化时可能更快
    • 解释:评论者提到读到相关内容但未验证。
  5. 💡 在特定设备上MLX的内存占用比GGUF略轻
    • 解释:评论者通过在M2 Max上测试得出此结论。

金句与有趣评论

  1. “😂 你没有疏漏任何东西。我的MLX模型体验也很糟糕。”
    • 亮点:表达对原帖作者的认同,也反映出自己类似的糟糕体验。
  2. “🤔 我的猜测是,GGUF量化比MLX更成熟。”
    • 亮点:提出了关于GGUF和MLX模型量化方面的一个推测性观点。
  3. “👀 原帖:I ended up using Llama.cpp because it allows for prompt caching through the cache_prompt parameter in the OpenAI - compatible API, which speeds up conversations with lots of messages for me.”
    • 亮点:解释了原帖作者选择Llama.cpp的原因。
  4. “🤔 all of the following responses were of similar quality to what theGGUF gave, but the MLX was significantly faster.”
    • 亮点:表明在自己的测试中MLX和GGUF响应质量相似但MLX速度更快。
  5. “👀 I noticed that 4Bit MLX is slightly lighter than Q4_K_M GGUF (12.52 vs 13.34 GB).”
    • 亮点:给出了具体设备上MLX和GGUF内存占用的比较数据。

情感分析

总体情感倾向比较中立,主要分歧点在于MLX模型的性能和资源占用情况。原帖作者及部分评论者认为MLX模型性能提升小且资源占用多,而部分评论者则表示在自己的测试中MLX有速度更快或者内存占用更轻等较好的表现。可能的原因是不同的测试环境、测试方法(如是否使用q4量化、自定义提示集等)以及测试的模型本身不同。

趋势与预测

  • 新兴话题:对mlx - community中的MLX模型制作情况的探究。
  • 潜在影响:如果更多人发现MLX模型存在如原帖作者所说的问题,可能会影响其在相关领域的使用推广;如果是测试方法等因素导致结果差异,可能会促使大家进一步规范测试流程。

详细内容:

《关于 MLX 模型与其他模型性能对比的热门讨论》

近日,一则关于测试 MLX 模型与其他模型性能对比的帖子在 Reddit 上引起了广泛关注。该帖获得了众多的点赞和大量的评论。帖子中,作者详细讲述了自己过去几周在不同工具和设置下运行 Qwen2.5 模型的实验经历,包括使用 LMStudio、Ollama、Llamafile 等工具,最终选择了 Llama.cpp,还分享了自己为实现 prompt 缓存所做的努力。而后,作者测试了 MLX 模型,却发现其推理速度提升有限,内存使用却大幅增加。

这一帖子引发了大家对于 MLX 模型性能的热烈讨论。有人认为,自己使用 MLX 模型的体验很差,性能提升极小,并且表示 GGUF 模型在响应质量上要比 MLX 模型好很多。比如,有人分享道:“我尝试并比较了很多模型,从未见过一个比其 GGUF 等效模型表现更好的 MLX 模型。” 还有人指出,GGUF 量化比 MLX 更成熟。

也有人通过测试给出了不同的结果。比如,有用户称:“昨天我在 M2 Ultra 上用最新的 LMStudio 做了一些比较,对于长上下文(32k),llama.cpp 后端实际上明显更快,并且使用的内存更少。只测试了 LLaMA 3B。” 还有用户表示:“除了从 MLX 得到的第一个答案外,所有后续的响应质量与 GGUF 相似,但 MLX 明显更快。在我的基础模型 M2 Max(32GB 30GPU)上,从 GGUF 得到 14t/s,从 MLX 得到 18t/s。我将上下文大小限制为 16000 个令牌(而不是 32000)。并且注意到 4Bit MLX 比 Q4_K_M GGUF 占用内存略少(12.52 对比 13.34GB)。”

讨论中的共识在于大家都在关注 MLX 模型的性能表现,以及与其他模型的差异。而争议点在于 MLX 模型的实际性能提升效果是否如预期那样显著。究竟是 MLX 模型存在问题,还是测试设置或环境的差异导致了不同的结果,这一问题仍有待进一步探讨。