如何让设备越加越快的本地AI集群exo多机推理上手指南【免费下载链接】exoRun frontier AI locally.项目地址: https://gitcode.com/GitHub_Trending/exo8/exo一组多机推理测试数据里藏着一个反直觉的现象用传统 TCP 互联组网时机器加得越多模型反而跑得越慢。Qwen3 235B 在单台 M3 Ultra Mac Studio 上能到 20.4 t/sllama.cpp 走 TCP扩到 4 节点后掉到 15.2 t/s——新增机器的算力被机器间来回搬运数据的时间吃掉了。exo 是一个把多台设备自动串成一个推理集群的开源工具它用雷电 5 上的 RDMA 翻转了这条曲线同样 4 台机器Qwen3 235B 跑到 31.9 t/s而且节点越多曲线越往上走。下面按单台跑起来 → 看懂集群怎么自动组网 → 核对实测数据 → 日常怎么管的顺序过一遍。️ 单台机器三分钟跑通安装 exo 并加载第一个模型exo 有两种运行方式。macOS 用户装菜单栏应用最省事需要 macOS Tahoe 26.2 或更新版本brew install --cask exo装好后它常驻后台负责设备发现、集群状态和模型管理。偏好源码方式的话clone 仓库https://gitcode.com/GitHub_Trending/exo8/exo后构建 dashboard再执行uv run exo即可已有 Nix 环境可以直接nix run .#exo。跑起来后每台设备都会在http://localhost:52415提供同一套 Web 界面和 API模型列表、下载进度、实例状态、对话窗口都在里面。API 层同时兼容 OpenAI Chat Completions、Claude Messages、OpenAI Responses 和 Ollama 四种请求格式实现分别放在 src/exo/api/adapters/ —— 换句话说你现有的客户端工具把 base URL 指过来就能用不用改代码。 零配置组网是怎么做到的节点发现与主节点选举把多台设备变成集群最麻烦的往往是手动填 IP、开端口。exo 的做法是让每个节点在本地链路范围内持续播发带 EXO 魔数头的 IPv6 链路本地多播包别的节点听到就完成发现整个流程不需要任何手工配置核心逻辑在 rust/networking/src/discovery.rs。同一个局域网里跑多个互不干扰的集群也是支持的设置EXO_LIBP2P_NAMESPACE后命名空间经 blake3 哈希出一个 8 字节标识只有同命名空间的设备才会互相认出来开发集群和生产集群可以共处一张网。集群里还有一件事要自动决定谁来当总调度master负责放置模型、协调下载。节点之间用向量时钟加优先级的选举协议协商默认 3 秒超时窗口内选不出就换人实现见 src/exo/shared/election.py。主节点倒掉时另一个节点能接上仓库里 tests/test_resilience.py 就是专门回归这类故障场景的。⚡ 为什么加设备会变快拓扑感知的自动并行拆解单台机器装不下的大模型拆分方式直接决定快慢。exo 的处理是维护一张实时的集群拓扑图每条链路当前的带宽、延迟都记在上面见 src/exo/shared/topology.py枚举所有可行的放置方案后由放置算法结合各节点内存和资源做决策逻辑在 src/exo/master/placement.py。调 API 时可以先打/instance/previews预览每一种拆法的内存占用再挑一个建实例。拆法主要有两种流水线并行把模型按层切成几段各机器负责一段前一段算完把激活值传给下一段和张量并行把每一层的权重矩阵切片多机同时算同一层再汇总。仓库给出的张量并行实测加速比2 台设备最高 1.8 倍4 台设备最高 3.2 倍。实际跨机通信走 MLX distributed 后端相关分片实现见 src/exo/worker/engines/mlx/auto_parallel.py。加设备变快的前提是跨机链路够快——流水线并行的激活值传递、张量并行的梯度聚合都要走网线。TCP 下这部分开销压过算力收益所以 4 节点反而变慢RDMA 下开销压得足够低曲线才重新向上。 四台 Mac Studio 组网的实测表现与雷电 5 RDMA 开启步骤仓库收录的第三方基准Jeff Geerling 的 4 × M3 Ultra Mac Studio 环境对比了 exoRDMA与 llama.cppTCP在三个大模型上的生成速度Qwen3 235B8-bit单节点 19.5 vs 20.4 t/s2 节点 26.2 vs 17.24 节点 31.9 vs 15.2 t/sDeepSeek v3.1 671B8-bit4 节点 32.5 vs 14.6 t/sKimi K2 Thinking4-bit4 节点 28.3 vs 16.4 t/s。规律很清楚节点数 ≥2 后exo 的 RDMA 路线稳定领先约一倍且随节点增加继续上升而 TCP 路线基本原地踏步甚至倒退。想用满 RDMA硬件和系统都有门槛。RDMA over Thunderbolt 是 macOS 26.2 新增的能力支持的机型包括 M4 Pro Mac mini、M4 Max Mac Studio、M4 Max MacBook Pro 和 M3 Ultra Mac Studio。开启步骤关机后长按电源键 10 秒进恢复模式打开终端执行下面这行再重启rdma_ctl enable四条注意事项都写在 README 里集群内每台设备必须用雷电 5 线与其他所有设备直连成全互连Mac Studio 上紧挨网口的那个雷电 5 口不能用所有设备的 macOS 版本必须完全一致连 beta 编号都要对上否则 RDMA 端口可能互相发现不了。 集群日常运维模型下载、接口调用与自测性能模型下载是集群化场景里最头疼的一环——一个 400GB 的 MoE 模型重复下到每台机器既浪费磁盘又浪费时间。exo 的下载是协调器统一调度、按分片分发到真正需要它的节点实现见 src/exo/download/coordinator.py。几个常用环境变量EXO_MODELS_DIRS指向外置 SSD 存放新下载满了自动回退默认目录EXO_MODELS_READ_ONLY_DIRS挂 NFS 等共享存储的已下载模型只读不会重复下载EXO_OFFLINEtrue进入离线模式只用本地模型。HuggingFace 上的自定义模型走/models/add接口添加需要远程代码执行的模型默认被拦截要显式开启。想量化自己的集群仓库自带压测工具 bench/exo_bench.py它通过/bench/chat/completions端点发请求测试时强制关闭 KV 前缀缓存、屏蔽 EOS 保证生成长度一致输出各放置方案的 prompt 速度、生成速度、峰值内存还以 1Hz 采各节点功耗和 GPU 占用。统计口径在 bench/METHODOLOGY.md 里写得很细适合用来对比换拆法、换节点数带来的真实差异。macOS 菜单栏应用轮询/state接口2Hz把节点、实例、下载进度同步到界面轮询逻辑在 app/EXO/EXO/Services/ClusterStateService.swift不想用了从菜单栏图标进 Advanced → Uninstall 干净卸载或直接跑 app/EXO/uninstall-exo.sh。完整的端点清单预览放置、等待实例就绪、SSE 流式对话、Ollama 兼容等见 docs/api.md。exo 的适用边界开始之前需要知道的限制平台不对称macOS 上走 GPUMLX 后端Linux 目前只有 CPU 推理GPU 支持还在开发中Linux 机器更适合当--no-worker的纯协调节点。RDMA 是高端选项而非默认不满足雷电 5 全互连条件时集群走的是雷电桥/普通网络跨机延迟和带宽远达不到上面那组 31.9 t/s 的数据。总内存池决定上限仓库 dashboard 展示的配置是 4 × 512GB M3 Ultra 同时挂 DeepSeek v3.18-bit和 Kimi-K2-Thinking4-bit大模型能不能装得下先算总显存。图像模型FLUX、Qwen-Image 等默认关闭需要时设EXO_ENABLE_IMAGE_MODELStrue再跑。多集群同网务必设置EXO_LIBP2P_NAMESPACE否则相邻同事的集群节点可能被你的设备发现并加入。如果手边已有两台 M 系列 Mac先给两台都装好 exo打开 dashboard 看节点是否自动合并再决定下一步要规划线缆拓扑的话先逐台确认雷电 5 支持情况再对照仓库里的基准图判断你的内存池适合加载哪个量级的模型。【免费下载链接】exoRun frontier AI locally.项目地址: https://gitcode.com/GitHub_Trending/exo8/exo创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考