用4台Mac Studio跑671B大模型:exo本地AI集群部署指南
【免费下载链接】exoRun frontier AI locally.项目地址: https://gitcode.com/GitHub_Trending/exo8/exo
exo把多台Mac和Linux机器组成一个本地AI集群,自动把大模型切分到各台机器上推理。适合拥有两台以上Apple Silicon设备、想在家里部署200B以上参数模型的人。
解决什么问题:单机装不下,传统多机越加越慢
最直观的问题是显存:DeepSeek V3.1 671B(8-bit)权重超过600GB,任何单台消费级设备都装不下。但"多机+TCP"的老办法是个坑——机器加得越多反而越慢。
仓库基准里,llama.cpp(TCP)从单机的20.4 t/s掉到4机的15.2 t/s;exo走雷雳RDMA后方向反过来,从单机19.5 t/s升到4机31.9 t/s。
上手体验:macOS应用一分钟,源码三步
macOS上最短的路径是直接装官方应用(需要macOS Tahoe 26.2或更高):
brew install --cask exo应用会请求修改系统设置并安装一个网络配置描述文件,允许即可。同一网络上的其他机器会自动互相发现、加入集群,不需要手动填地址。
走源码则是固定三步:克隆仓库、构建dashboard、启动:
git clone https://gitcode.com/GitHub_Trending/exo8/exo cd exo/dashboard && npm install && npm run build && cd .. uv run exo启动后浏览器打开http://localhost:52415,仪表盘和API都在这,直接建模型实例就能对话。API细节在 docs/api.md。
看懂内部结构:谁负责推理,谁负责切分
内部分工是两层。每台机器上跑一个worker,src/exo/worker/ 下的MLX引擎负责推理,其中 auto_parallel 会根据实时拓扑图,结合每台机器的剩余显存和每条链路的带宽,自动算出模型怎么切;src/exo/master/ 负责集群协调和模型放置决策。
这就是仪表盘里看到的拓扑图,每条虚线是两台机器之间的物理链路,图上直接标注了显存占用、温度和功耗。
数据验证:RDMA比TCP快多少
以下数字来自仓库内置的4× M3 Ultra Mac Studio(512GB)+ 雷雳5全互联、Tensor Parallel配置下的实测(Jeff Geerling的测试),对比对象是llama.cpp(TCP):
- Qwen3 235B A22B:4节点exo 31.9 t/s,llama.cpp 15.2 t/s
- DeepSeek V3.1 671B:4节点exo 32.5 t/s,llama.cpp 14.6 t/s
- Kimi K2 Thinking 1T A32B:4节点exo 28.3 t/s,llama.cpp 16.4 t/s
注意一个细节:单机时exo(21.1)略慢于llama.cpp(14.8除外,此处以4节点为准),优势主要体现在多机扩展上——节点越多,与TCP的差距越大,而不是"勉强能跑"。
常见坑位与快速排查:RDMA集群的3个高频问题
节点互相发现不了:多半是macOS版本不一致,RDMA要求所有设备版本完全相同(连beta编号都要一样);另外确认已在恢复模式终端执行过 rdma_ctl enable 并重启(仅macOS 26.2及以上支持)。
Mac Studio可用端口少:紧邻网口的那个雷雳5口不能用于RDMA,线缆必须是TB5规格;且集群成员要两两直连的全互联拓扑,星型接法不行。
Linux用户期待GPU加速:exo目前在Linux上只跑CPU,GPU支持还在开发中,等不急的先上macOS。
它适合谁:有边界的选型建议
适合:手里有两台以上Apple Silicon设备(尤其带雷雳5的M4 Pro/Max、M3 Ultra)、想本地跑前沿大模型、又不想采购GPU服务器的人;API兼容OpenAI Chat Completions、Claude Messages和Ollama格式,接现有客户端基本零改造。
不适合:只有一台机器(组不了集群);需要Linux上NVIDIA GPU推理的(暂只跑CPU);打算用普通千兆交换机组网就期待RDMA性能的——RDMA必须TB5线缆直连。
先跑一台机器把流程走通,确认localhost:52415能出字,再接入第二台看它出现在拓扑图里。想自己复现上面的数字,仓库自带压测工具,测试方法写在 bench/METHODOLOGY.md。
【免费下载链接】exoRun frontier AI locally.项目地址: https://gitcode.com/GitHub_Trending/exo8/exo
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考