多台 Mac 组建成一个分布式 AI 集群:exo 多机推理加速完整指南

发布时间:2026/11/4 10:59:37

多台 Mac 组建成一个分布式 AI 集群:exo 多机推理加速完整指南 多台 Mac 组建成一个分布式 AI 集群exo 多机推理加速完整指南【免费下载链接】exoRun frontier AI locally.项目地址: https://gitcode.com/GitHub_Trending/exo8/exo想让大模型跑起来又不想为单台机器更高的内存买单exo 把这条路的成本拉低了很多。它开源的分布式 AI 集群框架让运行 exo 的设备在局域网内自动发现彼此、自动组网多台设备共享一个模型借助 Thunderbolt 5 上的 RDMA 通信设备间延迟降低 99%张量并行下 2 台设备最高提速 1.8 倍、4 台设备最高 3.2 倍。这篇指南带你从零把集群搭起来并讲清 RDMA 开启和日常跑模型的要点。上图为 4 台 M3 Ultra Mac Studio 上 Qwen3-235B8-bit的实测对比exoRDMA对 llama.cppTCP节点越多差距越大4 节点时 exo 达到 31.9 tokens/s。动手前的准备环境要求与三条安装命令系统方面需要 macOS Tahoe 26.2 或 LinuxLinux 目前跑在 CPU 上GPU 支持仍在开发。macOS 上另需准备 Xcode提供 MLX 编译所需的 Metal 工具链、uvPython 依赖管理、node构建仪表盘和 Rust 工具链。如果这些依赖已就绪实际只需要三条命令git clone https://gitcode.com/GitHub_Trending/exo8/exocd exo/dashboard npm install npm run build cd ..uv run exo启动后每台设备的http://localhost:52415都会提供仪表盘和 API这是后续所有操作的基础。3 步拉起第一个 exo 集群第一台机器执行uv run exo它就是集群的第一个节点。同一网络里的其他设备同样安装并运行 exo无需任何手动配置它们会自动发现并加入集群。打开任一节点的仪表盘确认所有节点都已出现在列表中。图中 4 台 Mac Studio 组成一个 exo 集群每个节点标注了内存、温度和功耗虚线表示节点间的通信链路。这里要提一句框架内部exo 会基于实时的拓扑视图——包括每台设备的资源和每条链路间的延迟、带宽——自动决定模型怎么拆分到各台设备上也就是所谓的拓扑感知自动并行你不需要手工规划。RDMA 开启的 6 个步骤与 3 个坑 ⚡RDMARemote Direct Memory Access绕过 CPU 直接读写远端内存的通信技术是 macOS 26.2 引入的能力适用于带 Thunderbolt 5 的机型M4 Pro Mac Mini、M4 Max MacBook Pro、M4 Max 和 M3 Ultra Mac Studio 等。每台参与 RDMA 的 Mac 都要执行一次以下操作关机长按电源键 10 秒直到出现启动菜单选择选项进入恢复模式从实用工具菜单打开终端执行下面这条命令并回车重启 Mac。rdma_ctl enable之后 exo 会自动接管 RDMA 链路。但有三个坑必须避开集群内每台设备必须直连其余所有设备全互联不要依赖交换机中转线缆必须是支持 TB5 的Mac Studio 上以太网口旁边的那个 TB5 口不能用所有设备的 macOS 版本必须完全一致连 beta 版本号都要一样否则 RDMA 端口可能互相发现不了。日常使用仪表盘为主API 为辅打开浏览器访问http://localhost:52415在右侧 INSTANCE 面板点击 LAUNCH INSTANCE选模型、选分片策略Pipeline 或 Tensor、选通信方式MLX Ring 或 MLX RDMA、设最小节点数即可启动。中间拓扑视图会实时刷新各节点状态。仪表盘展示的是 4 台 512GB M3 Ultra Mac Studio 集群同时承载 DeepSeek v3.18-bit与 Kimi-K2-Thinking4-bit聊天、拓扑、实例管理三合一。习惯命令行的话管理动作同样可以走 API。最典型的用法是发一条 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}创建实例、等待实例就绪、删除实例、从 HuggingFace 加载自定义模型等其余端点都写在 docs/api.md 里。另外 Claude Messages、OpenAI Responses、Ollama 三种 API 也原生兼容现有客户端基本可以直接指向 exo 使用。调优与避坑几个值得问的问题Q张量并行和管道并行怎么选A计算密集型场景推荐张量并行把权重均匀切到多台设备同时计算这就是 2 机 1.8 倍、4 机 3.2 倍加速的来源内存放不下的场景用管道并行把模型层分布到不同设备。拿不准时可以先用/instance/previews端点列出该模型在当前集群的所有合法拆法。Q模型太大想放外部高速存储A用环境变量指过去即可EXO_MODELS_DIRS/Volumes/ExternalSSD/exo-models uv run exoQ不同规格的设备能混着用吗A可以。拓扑感知自动并行会按每台设备的实际资源和链路状况分配任务不要求机器同构。Q同一网络有多套 exo节点互相串了A设置EXO_LIBP2P_NAMESPACE环境变量给集群指定独立命名空间实现隔离。QLinux 上性能如何A目前 Linux 走 CPUGPU 加速在开发中现阶段更适合在 macOS 上玩。写在最后建议你从手头现有的两台 Mac 起步装好、跑起来先跑一个小模型熟悉流程跑通后再扩到 4 节点用仓库自带的bench/exo_bench.py测一测大模型在张量并行下的实际吞吐。RDMA 一旦启用速度的差别会比任何图表都直观。【免费下载链接】exoRun frontier AI locally.项目地址: https://gitcode.com/GitHub_Trending/exo8/exo创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/11/4 10:57:59

Joplin 笔记管理:五端同步,数据握在自己手里

Joplin 笔记管理:五端同步,数据握在自己手里 【免费下载链接】joplin Joplin - the privacy-focused note taking app with sync capabilities for Windows, macOS, Linux, Android and iOS. 项目地址: https://gitcode.com/GitHub_Trending/jo/joplin…

2026/10/24 2:30:39

Bruno 中文使用实用指南:3 个搜索技巧快速定位 API 接口

Bruno 中文使用实用指南:3 个搜索技巧快速定位 API 接口 【免费下载链接】bruno Opensource IDE For Exploring and Testing APIs (lightweight alternative to Postman/Insomnia) 项目地址: https://gitcode.com/GitHub_Trending/br/bruno Bruno 是一款开源…

2026/10/30 7:09:54

Umi-OCR 实测:300 张照片加 536 页扫描 PDF,全程离线数字化

Umi-OCR 实测:300 张照片加 536 页扫描 PDF,全程离线数字化 【免费下载链接】Umi-OCR OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维…

2026/11/4 10:55:11

网络安全学习路线:从TCP/IP到渗透测试实战

1. 网络安全学习路线全景解析作为一名从业多年的网络安全工程师,我经常被问到这样一个问题:"网络安全到底应该从哪开始学?"今天我就用最接地气的方式,把我这些年摸爬滚打总结出的学习路线和实战经验分享给大家。1.1 为什…

2026/11/4 10:55:11

消息队列技术选型与RocketMQ架构解析

1. 为什么需要消息队列:从业务场景到技术选型 消息队列(MQ)作为分布式系统的核心组件,其价值远不止于"发消息"这么简单。让我们从一个真实的电商场景切入: 用户完成一笔订单后,系统需要依次执行…

2026/11/4 10:55:11

Git交互式变基(rebase -i)完全指南:从入门到精通

1. 理解git rebase -i的核心价值第一次接触git rebase -i HEAD~n这个命令时,我正深陷在一个包含十几个混乱提交的分支里。那些"临时保存"、"修复小问题"、"再试一次"的提交消息像杂草一样丛生,而rebase -i就像一把精准的园…

2026/11/4 10:55:11

MySQL架构解析与生产环境部署指南

1. MySQL架构深度解析 1.1 软件架构:C/S模型详解 MySQL采用经典的客户端/服务器架构(Client/Server),这种设计模式在现代数据库系统中非常普遍。让我们用一个更贴近开发实际的例子来理解: 想象你正在开发一个电商网站…

2026/11/4 10:55:11

Claude-Code国内使用指南:解决访问与API集成难题

1. 项目概述 "Claude-Code国内使用教程"这个标题指向的是一个非常实用的技术指南,主要解决国内开发者在访问和使用Claude-Code服务时可能遇到的各种实际问题。作为一个长期关注开发者工具生态的技术博主,我发现很多国内同行在尝试使用这类海外…

2026/11/4 10:50:10

哈希表原理与LeetCode实战指南

1. 哈希表理论基础与实战应用哈希表(Hash Table)是算法面试和工程实践中最重要的数据结构之一。作为从业多年的工程师,我见过太多因为不理解哈希表底层原理而导致的性能问题和逻辑错误。今天我们就从底层实现到LeetCode实战,彻底掌…

2026/11/3 7:47:06

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/3 14:24:53

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/4 0:03:20

AI辅助技术栈评估:提升研发决策效率60%

1. 项目背景与核心价值技术决策一直是研发团队面临的重大挑战。随着技术生态的快速演进,技术栈的选择、维护和迭代变得愈发复杂。我们团队在过去两年里,先后经历了三次重大技术栈迁移,每次都需要投入大量人力进行技术评估和风险分析。直到去年…

2026/11/4 0:03:20

从生成Token到直接决策:Jev如何重塑AI Agent工程实践

1. 从"生成文字"到"拍板决策":Jev 到底在解决什么问题大多数人第一次接触大模型,脑子里建立的模型是"输入问题、输出文字"。你问它今天天气怎么样,它给你一段描述;你让它写个周报,它给你…

2026/11/4 0:03:20

32G统一内存跑大模型:内存账、TPS实测与端云分流

想在一台 32G 统一内存的小主机上把大模型跑成"日常可用",这件事我前后折腾了小半年。标题里说的这台 Mac mini M6,是我们这次讨论的目标平台,具体到手规格以实物为准;但下面这套推算方法和实测思路,对任何统…

2026/11/3 7:47:06

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/3 14:24:53

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑