重生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/