☰
4台Mac跑235B大模型:exo分布式AI集群完整实战
2026/10/26 20:10:48 网站建设 项目流程

4台Mac跑235B大模型:exo分布式AI集群完整实战

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

一台 M3 Ultra 的内存装不下 235B 的权重,单机跑大模型到头了?exo 是一个分布式 AI 计算框架:把它装在多台设备上,这些设备会自动互相发现并组成一个 AI 集群,自动切分模型,而且节点越多,推理越快。这篇按你实际动手的顺序,从装环境、组网、跑通第一个请求,一路写到 RDMA 提速。

先看数据:2节点提速1.8倍,4节点31.9 tokens/s

在动手之前,先说清楚这个集群到底能给你什么,免得搭完发现不符合预期:

  • 装得下:模型超过单机显存/内存也能跑,exo 按拓扑视图自动把模型切分到所有可用设备上
  • 跑得更快:张量并行下,2 台设备最高提速 1.8 倍,4 台设备提速 3.2 倍——加机器不是白加
  • 延迟极低:macOS 上走 Thunderbolt 5 的 RDMA,设备间延迟降低 99%
  • 实测成绩:4 台 M3 Ultra Mac Studio 组网,Qwen3-235B 达到 31.9 tokens/s

上图是 4 台 M3 Ultra Mac Studio 张量并行 + RDMA 下 Qwen3-235B (8-bit) 的基准测试截图,可以看到集群在生成阶段的稳定吐字速度。

另外,它的 API 同时兼容 OpenAI Chat Completions、Claude Messages、OpenAI Responses 和 Ollama 四种格式,你现有的客户端工具基本都能直接对接。

三步把多台Mac拼成AI集群

动手前:硬件和系统怎么配

组集群对硬件没有魔法要求,但要满足这两条主线:

  1. 系统:macOS Tahoe 26.2+ 或 Linux。注意 Linux 目前跑在 CPU 上,GPU 支持还在开发中,想要 GPU 加速就选 Mac。
  2. RDMA(可选但强烈建议):需要支持 Thunderbolt 5 的机型(M4 Pro Mac Mini、M4 Max MacBook Pro / Mac Studio、M3 Ultra Mac Studio)。没有 TB5 也能组普通网络集群,只是吃不到 99% 延迟降幅。

软件依赖按平台准备:macOS 上需要 Xcode(提供 MLX 编译用的 Metal ToolChain)、brew、uv、node;Linux 上需要 uv、node 18+,以及编译 Rust 绑定用的 rustup nightly。

克隆、构建、启动节点

准备就绪后,每台设备执行这三步(macOS/Linux 相同):

# 1. 克隆 exo git clone https://gitcode.com/GitHub_Trending/exo8/exo # 2. 构建内置仪表盘 cd exo/dashboard && npm install && npm run build && cd .. # 3. 启动 exo 节点 uv run exo

启动后,仪表盘和 API 会跑在本机的http://localhost:52415。组网不用你操心:其余设备重复上面三步后会自动互相发现并加入集群,不需要任何手动配置。

跑通第一个模型:仪表盘点几下 + 一条curl

浏览器打开http://localhost:52415,左侧是聊天区,右侧是 INSTANCE 面板,中间能看到集群拓扑和各节点资源。第一次跑模型按这个流程点:

  1. 在 INSTANCE 面板选择要加载的模型
  2. 选分片策略:Pipeline(管道)或 Tensor(张量)
  3. 选通信方式:MLX Ring 或 MLX RDMA(开了 RDMA 的机器选后者)
  4. 设置最少节点数,点 LAUNCH

等实例 ready 之后,在聊天框直接对话即可。如果你更习惯命令行,一条 curl 就能打通 OpenAI 格式的推理请求:

curl -N -X POST http://localhost:52415/v1/chat/completions \ -H 'Content-Type: application/json' \ -d '{ "model": "mlx-community/Llama-3.2-1B-Instruct-4bit", "messages": [{"role": "user", "content": "What is AI?"}], "stream": true }'

用完的实例可以curl -X DELETE http://localhost:52415/instance/YOUR_INSTANCE_ID释放,更完整的端点说明见 官方API文档。

把速度榨出来:RDMA开启步骤与并行策略

macOS上开启RDMA的6个动作

RDMA 是 macOS 26.2 新增的能力,在恢复模式里手动打开一次即可,之后 exo 会接管剩余的事:

  1. 关机
  2. 按住电源按钮 10 秒,直到启动菜单出现
  3. 选"选项"进入恢复模式
  4. 在恢复界面从"实用工具"菜单打开终端
  5. 输入rdma_ctl enable回车
  6. 重启

⚠️ 四个容易踩的坑:RDMA 集群里的设备必须两两直连(全网状,别指望交换机);线缆要支持 TB5;Mac Studio 上以太网口旁边那个 Thunderbolt 5 端口不能用;从源码运行时用仓库里的tmp/set_rdma_network_config.sh脚本配置网络,且所有设备的系统版本要完全一致(连 beta 版本号都要对上),否则 RDMA 端口可能互相发现不了。

张量并行还是管道并行

  • 张量并行(Tensor):把同一层的计算横向切到多台设备,适合计算密集型场景,就是前面 1.8x / 3.2x 提速的来源
  • 管道并行(Pipeline):把不同层整段放到不同设备,适合内存瓶颈型模型

不用你拍板:exo 会根据实时拓扑视图(每台设备的资源、每条链路的延迟和带宽)自动挑选最优切法。你只需要在仪表盘里确认它选的方案。

接线、模型存储与状态监控

  • 拓扑:直连优于过交换机,尤其 RDMA 链路。四节点全互联长这样:

  • 模型放哪:大模型默认落在本地目录,想放外置高速盘,用环境变量指定:
EXO_MODELS_DIRS=/Volumes/ExternalSSD/exo-models uv run exo
  • 盯状态:仪表盘上每台节点都会实时显示内存、温度、功耗,温度飙高时先降负载再谈吞吐

换种问法:新手最常卡住的4个地方

只有老款Mac、没有雷雳5,还能组集群吗?能。普通网络连接下 exo 照常工作,只是没有 RDMA 的低延迟加成;想要完整性能再考虑 TB5 直连。

家里几台机器配置不一样,能混着跑吗?可以。拓扑感知自动并行会按每台设备的能力分配任务,异构设备混编没问题。

HuggingFace 上的模型怎么加进集群?调一个接口即可:curl -X POST http://localhost:52415/models/add -H 'Content-Type: application/json' -d '{"model_id": "mlx-community/my-custom-model"}'。需要trust_remote_code的模型默认出于安全不开启,得显式打开。

一个网络里有好几拨人在跑 exo,怎么互相不串?设置EXO_LIBP2P_NAMESPACE环境变量(macOS 应用里在高级设置中配置)给集群起个独立命名空间,同网段多集群互不干扰。


exo 把"多台设备、一套集群、一个模型"这件原本要写一堆胶水代码的事收敛成了三条命令:自动发现、自动切分、自动通信。搭好一次,之后你只需要关心跑什么模型。

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

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询