news 2026/9/8 9:36:45

Exo 分布式推理:4 台 Mac 跑出 31.9 t/s 的 235B 集群

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Exo 分布式推理:4 台 Mac 跑出 31.9 t/s 的 235B 集群

Exo 分布式推理:4 台 Mac 跑出 31.9 t/s 的 235B 集群

【免费下载链接】exoRun frontier AI locally.项目地址: https://gitcode.com/GitHub_Trending/exo8/exo

200B+ 参数的模型塞不进单台机器,GPU 集群的采购成本又太高。Exo 做的事很简单:把局域网里的 Mac 通过雷电接口连成一个分布式推理集群,RDMA over Thunderbolt 让加机器真的能变快,而不是只解决装不下的问题。

它到底能做什么

🔍 自动发现局域网里的机器

每台跑着 exo 的机器会自动互相发现、自动组网,不需要填 IP 或改配置。实测启动后 dashboard 直接列出同网段节点,连--no-worker参数都能让一台只有网线的机器充当纯协调节点(只做网络与编排、不跑推理)。

🔌 用雷电 5 把 4 台 Mac 连成一个推理节点

这是 exo 分布式推理最有辨识度的部分:RDMA over Thunderbolt 5,官方口径是设备间延迟降低 99%。代价是门槛不低:macOS 26.2 及以上、TB5 线缆、节点间要全连接(4 台就是 6 根线),且所有机器系统版本必须逐字符一致。

🧩 跨设备切分模型不用手动配

Exo 基于实时拓扑视图自己决定模型怎么切,链路的延迟和带宽都会进决策。底层是流水线并行或张量并行(MLX distributed 实现),你只需要在 dashboard 里点一下,或者调/instance/previews看它给出的所有合法放置方案再 POST 创建。

🔁 现有 OpenAI / Ollama 客户端改 base URL 就能接

/v1/chat/completions/v1/messages/v1/responses和 Ollama 接口全部兼容,流式输出、取消(断连或调/v1/cancel/{command_id})都有。团队里已有的工具链不用重写,换个地址就能打到 Mac 集群上。

从零到跑通

四步,按顺序来:

git clone https://gitcode.com/GitHub_Trending/exo8/exo cd exo/dashboard && npm install && npm run build uv run exo curl http://localhost:52415/state

克隆前需要装好uvnode和 Rust nightly(构建 Rust 绑定用)。第三步启动后,浏览器打开http://localhost:52415,应能看到设备列表;第四步拉/state,返回的 JSON 里有节点拓扑和实例状态,说明分布式推理集群已就位。不想从源码跑的,macOS 上直接brew install --cask exo装官方应用,它会引导你装系统网络配置。

性能实测

以下是 Jeff Geerling 在 4 × M3 Ultra Mac Studio(512GB)上的实测,仓库 README 收录的官方数据:

模型硬件配置Exo(RDMA)对比基线(llama.cpp TCP)提升
Qwen3-235B A22B1 / 2 / 4 节点20.4 / 26.2 / 31.9 t/s20.4 / 17.2 / 15.2 t/s4 节点 +56%
DeepSeek V3.1 671B1 / 2 / 4 节点21.1 / 27.8 / 32.5 t/s14.8 / 16.0 / 14.6 t/s4 节点 +123%
Kimi K2 Thinking 1T2 / 4 节点21.6 / 28.3 t/s18.5 / 16.4 t/s4 节点 +73%

跑完这三组数据,最值得看的是趋势方向:llama.cpp 走 TCP 时节点越多反而越慢(17.2 → 15.2 t/s),Exo 走 RDMA 则是单调上涨。README 给的张量并行加速比是 2 机 1.8 倍、4 机 3.2 倍,和 235B 这组(20.4 → 31.9)基本对得上。前提是 TB5 全网直连、OS 版本一致、RDMA 已启用——缺一条就退回普通 TCP 路径,多机扩展会明显变差,别指望线性加速。

进阶配置与调优

  • RDMA 开关:不开则上面所有加速比不成立。关机进恢复模式,终端执行rdma_ctl enable,重启即生效。调完 exo 会自动接管;注意 Mac Studio 以太网口旁那个 TB5 口不可用。
  • 模型目录EXO_MODELS_DIRS/EXO_MODELS_READ_ONLY_DIRS:默认下模型只落在本机~/.local/share/exo/models,大模型集群里磁盘总是不够。
    EXO_MODELS_READ_ONLY_DIRS=/mnt/nfs/models uv run exo EXO_MODELS_DIRS=/Volumes/ExternalSSD uv run exo

    只读目录指向 NFS 共享盘,各节点免重复下载;写目录可配多个,按顺序选第一个空间够的。

  • 集群命名空间EXO_LIBP2P_NAMESPACE:同一网络里跑多套 exo 时会互相发现、误组网。
    EXO_LIBP2P_NAMESPACE=prod-cluster uv run exo

    给每个集群一个命名空间,启动日志会打印当前值,方便排查"为什么我的节点连进了别人的集群"。

生产环境落地

监控与可观测性

每节点都暴露 API。GET /state拉取拓扑、节点与实例全貌,是写监控脚本的起点;/events给内部事件流用于排障,/bench/chat/completions额外返回prompt_tpsgeneration_tps、峰值内存和分相功耗,完整端点清单见 docs/api.md 与 src/exo/master/api.py。

故障与容错

推理跑在独立 Runner 进程里,由 supervisor 看门——Runner 挂掉只影响对应实例,不会拖垮节点上的其他服务。Master 无中心,节点掉线后选举(src/exo/shared/election.py,默认 3 秒超时)会选出新主节点继续服务。

扩展与限制

基准默认节点数上限是 4,更大集群未验证;RDMA 要求 TB5 全连接且 OS 版本逐字符一致;Linux 目前是 CPU 推理,GPU 支持还在开发中,这条路没通之前生产部署基本锁死在 Apple Silicon。

适合谁、不适合谁

值得试

  • 手上已有 3~4 台带 TB5 的 Mac(M3 Ultra / M4 Max 系列),想本地跑 200B+ 参数模型
  • 现有 OpenAI / Ollama 客户端不想大改,想把后端切到本地 Mac 集群
  • 需要把模型权重放共享存储、多节点复用同一份下载

先别上

  • 依赖 CUDA GPU 集群:Linux 侧目前还是 CPU 推理,这条路没通之前别选它
  • 模型小于 30B:单台机器就装得下,多机的部署和运维成本不划算

如果你正好有几台 Mac Studio 吃灰,按上面四步走,一个下午就能把 235B 跑起来。

【免费下载链接】exoRun frontier AI locally.项目地址: https://gitcode.com/GitHub_Trending/exo8/exo

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/3 20:38:21

中断与内存屏障:Linux内核并发同步实战解析

最近在调一个网络驱动的收包路径时,被一个“诡异”的问题卡了一整天:中断处理函数里明明已经把 flag 置 1 了,主循环里却一直看不到更新。反复确认代码逻辑没问题,最后才发现是漏了内存屏障(memory barrier&#xff09…

作者头像 李华
网站建设 2026/9/6 10:18:54

用Scratch实现3D恐怖游戏:射线投射与迷宫渲染全解析

在 Scratch 里做一款 3D 恐怖游戏,听起来像是把 3D 建模、图形渲染和关卡设计全部塞进积木编程工具。实际做完后会发现,Scratch 本身虽然是 2D 舞台引擎,但只要理解一种叫“射线投射”的渲染思路,完全可以在不加载任何外部素材的情…

作者头像 李华
网站建设 2026/9/5 14:37:52

GEO优化指南:跨境品牌如何提升AI搜索可见度

这篇文章不是概念科普,而是一份可以直接拿去用的采购决策参考。核心问题是跨境企业最关心的一件事:当海外用户开始用 ChatGPT、Perplexity、Google AI Overviews、Bing Copilot,以及国内的百度 AI 搜索、豆包等工具搜索产品时,你的…

作者头像 李华
网站建设 2026/9/4 17:00:50

AI辅助VMP脱壳实测:加速分析而非自动破解

开头先给结论:AI 确实能在 VMP 类样本的逆向和脱壳分析里帮上忙,但它做的是“加速分析”和“辅助整理”,不是直接甩一个命令就自动脱壳成功。我拿 CTF 靶场里常见的 VMP 虚拟化壳样本、自己编译的带壳测试程序,以及几道典型的二进…

作者头像 李华