重生2之128G的MacBook Pro M4 Max本地跑大模型,速度居然还有提升空间?
重生2之128G的MacBook Pro M4 Max本地跑大模型,速度居然还有提升空间?
原创 喵懂AI 2024年11月14日 11:28北京
万万没想到上期随手写的《 》阅读量爆炸(相对与我这个不起眼的新人号而言),评论区也引发了大家的激烈讨论。
有不少朋友留言希望我实验更多M4 Max跑大模型、训练微调、玩文生图之类的场景,这些我都一一记下啦。
我会尽量满足大家的测试要求,然后发出来分享一下,不过个人精力和时间有限,所以请大家耐心等待~
由于我自己用纯语言大模型多一些,因此这两天又深入研究了下MAC上跑LLM的黑科技。
然后喜出望外地发现在推理速度上还有很大的提升空间,而这个奇技淫巧就是:MLX + LM Studio。
话不多说,听我立马道来(时间宝贵的朋友也可以直接拉到最后两节看实操和结论,另外还有LM Studio模型下载加速的干货哟)。
MLX简介
MLX[1]是Apple官方出品的一个科学计算框架,下面是官方的介绍:

MLX
作为专门为苹果系列芯片设计的科学计算框架,设计灵感来自NumPy、PyTorch、Jax和ArrayFire等框架。
目的是设计一个对用户极其友好,但同时在训练和部署上也非常高效的框架,最重要的是更好地充分利用苹果统一内存的M芯片。
所以,它的接口你会非常熟悉,因为它的Python接口与NumPy很相似,而它的神经网络模型的接口和PyTorch非常类似。
所以如果此前你使用Python编写相关模型代码,几乎是没有障碍的使用和切换。
更多的细节我就不啰嗦了,感兴趣的朋友可以出去看官方网站的信息。
MLX Community
目前主流的大模型加载和部署都是基于Pytorch后台的,并没有利用到上面的MLX在M系列芯片上的计算优势。
但是!总有慷慨的开源社区会在这时候站出来造福大众,MLX Community[2]就是其中一个。
这是Huggingface上的一个开源组织,核心目标就是将主流的大模型转换成MLX框架支持的格式,以获得更好的运行性能。
同时他们还提供了配套的Python库mlx-lm[3],以满足更细粒度的代码操作需求。
随手截个图:

MLX Community
LM Studio
之前我的测试是在Ollama上进行的,作为目前最火的开源大模型本地运行框架之一,它确实非常便捷,然而目前美中不足的是它并不支持MLX。
那么除了用mlx-lm库加载MLX Community的模型,还有什么更好的方式么?这就要提到今天的重头戏了:LM Studio。
这个APP估计大家也早有耳闻,我就不多做介绍了。
它和Ollama的一个主要区别就是它提供了丰富的Chat交互界面和模型管理页面。
而最关键的是,「它在最新的版本里支持了MLX!」,更准确地说是支持了MLX格式的大模型checkpoints。

LM Studio
于是我迫不及待地进行了测试。
LM Studio + MLX 测试

LM Studio里可以直接筛选检索Huggingface上的MLX格式模型。
为了和上一期的测试结果对比,我下载了MLX格式的Qwen2.5 72B Int4和32B Int4。
测试的prompt还是上一期的完全不变。
这里我直接上结论:
72B

72B_1

72B_2
11.12 tokens/s的生成速度。
32B

32B_1

32B_2
23.67 tokens/s的生成速度。
如果大家还记得上一期我分享的Ollama上的测试结果,72B Int4和32B Int4对应的分别是:7.77 tokens/s和18.45 tokens/s。
(11.12−7.77)/7.77=0.431
(23.67−18.45)/18.45=0.283
也就是分别有说有43%和28% 的提速。
这里多提一句,测试32B的时候有时也能达到27 tokens/s的速度,那么提升也在40%+,为了严谨,我取的是较慢的值。
无论如何,MLX带来的提升还是肉眼可见的,加上MLX Community对主流模型都做了适配,所以如果有在Mac上跑本地大模型需求的朋友,强烈建议可以试试LM Studio了。
它同样也支持以OpenAI Compatible的方式提供Serving接口。
关于LM Studio的模型下载
这里最后再提供一个小干货。
众所周知,由于不可言喻的原因,咱们这边访问Huggingface是相当费劲的,更别提下载模型了。
相信聪明的各位都已经知道用HF-Mirror[4]来改善体验,但是LM Studio里搜到的模型依然是走的官方原站,如果没有魔法加持的话会发现什么也下载不下来,怎么办呢?
思路也很简单,直接做域名替换,将huggingface.co替换成hf-mirror.com,我自己亲测可用,这里分享一下MAC上的操作方式,其他操作系统的大家可以依葫芦画瓢。
1. 打开Finder进入应用程序文件夹
2. 找到安装好的LM Studio应用,右键点击显示包内容
3. 一路点击进入,找到下面这个main文件夹:
这里需要注意.webpack在app文件夹里是隐藏的,需要Comand + Shift + .来显示。
4. 用文本编辑器打开main文件夹(例如Sublime,Vscode,这里我用的是Vscode)
5. 批量在.js格式的文件中检索huggingface.co替换成hf-mirror.com

这里因为我已经替换过了,所以搜了下hf-mirror.com给大家展示一下检索效果(这里最好屏蔽build文件夹)。
6. 如果LM Studio正打开,需要关闭重启一次
然后随便搜索一个模型,如果能看到huggingface里的结果,点击之后能够开始下载,那么就说明成功了。
这样一来大家就可以愉快地使用LM Studio在MAC上玩儿大模型啦!
好啦,这一期的内容就到这里了,后面响应广大朋友的评论要求,我可能会玩一玩文生图相关的内容,不过这个之前没经验,所以可能需要多调研一番啦!
大家敬请期待!走之前别忘了点个「赞」和「再看」呀!
如果希望第一时间看到更新,右上角点开加个「星标🌟」就好!
感谢大家,下期见!
引用链接
[1] MLX: https://github.com/ml-explore/mlx[2] MLX Community: https://huggingface.co/mlx-community[3] mlx-lm: https://pypi.org/project/mlx-lm/[4] HF-Mirror: https://hf-mirror.com/