免费获取学习方案
ARTICLE DETAIL

资讯详情

深耕编程基础知识与建站技术分享的一线实战洞察。

Exo:把闲置 Mac 拼成分布式 AI 集群,从组网到容错的实战全解

Exo:把闲置 Mac 拼成分布式 AI 集群,从组网到容错的实战全解 Exo把闲置 Mac 拼成分布式 AI 集群从组网到容错的实战全解【免费下载链接】exoRun frontier AI locally.项目地址: https://gitcode.com/GitHub_Trending/exo8/exoExo 把同一网络下的多台 Mac 和电脑拼成一个分布式 AI 集群让多节点大模型推理跑在普通人的硬件上。问题在于节点掉线了谁来顶多台机器加入时谁来当主单机内存装不下模型又怎么切这篇按先跑起来→再让它稳的顺序把 AI 集群部署中容错的几个坑一次踩完。让节点互相看见零配置组网省去手动配置多人组网最容易卡住的地方是手工配置IP、端口、成员列表每加一台机器就要改一圈配置。Exo 直接跳过了这一步。每台机器启动后会持续往局域网发 UDP 组播报文相当于在网段里喊一嗓子同时竖起耳朵听别人喊并监听回应的邻居。新节点一上线就被现有节点识别、自动并入集群不需要你填任何地址。整套发现逻辑由独立的 Rust 模块实现和 Python 主进程解耦节点发现模块节点掉线不慌主节点选举与分布式容错机制组网通了之后真正的麻烦才开始——多机协作需要一个主来负责调度和状态管理而主节点自己也可能挂掉。主节点一旦失联整个集群就没人下发指令、没人更新状态全部任务原地冻结。Exo 的做法是轻量选举每个节点维护一个逻辑时钟每来一轮就递增的序号只要检测到任意对端连接状态变化就触发新一轮竞选。投票结束时的裁定规则是确定性的——先比时钟再比资历历史当选轮数再比处理过的命令数最后才看节点 ID。所有节点用同一套规则各自比较必然收敛到同一个结果不会出现两个主互相打架的情况主节点选举逻辑四节点 Exo 集群的拓扑视图任一节点失联后剩余节点会重新完成主节点选举。模型装不下单机拓扑感知的分片放置集群稳了下一个问题是模型往哪放。一个 600B 参数的模型上百 GB单台机器的统一内存根本装不下。Exo 的答案是基于实时拓扑视图自动分片。主节点会收集每台设备的内存余量、设备之间链路的带宽与延迟枚举各种放置方案张量并行或流水线并行过滤掉内存超标的组合再挑出和实际网络结构最匹配的那个。实测数据张量并行在 2 台机器上约 1.8 倍加速4 台机器上约 3.2 倍加速。放置算法的入口在这里放置与分片算法内置 Dashboard 的集群视图实时查看每台 Mac Studio 的内存与负载直接辅助多节点大模型推理的放置判断。推理进程崩了盯着 runner 的监管者放置完成运行过程中还会遇到进程崩溃。推理进程是独立的子进程遇到内存溢出或驱动异常被系统杀掉时它手上正在跑的任务就成了悬案。Exo 给每个推理进程配了一个 supervisor监管者进程持续盯着它接管 runner 的标准输出与错误流做诊断采集同时用两套超时计时——预填充 60 秒、逐词解码 5 秒进程只要在窗口内不再回话就被判定失败对应任务标记为异常并清理资源而不是让整个实例僵死等人工处理Runner 监管者在 RDMA 互联与这套分布式容错机制下四台 M3 Ultra 跑 DeepSeek 671B 的推理吞吐量对比。跑起来从克隆到集群的最短路径前面讲的都是它怎么稳最后 30 秒让它跑起来git clone https://gitcode.com/GitHub_Trending/exo8/exo cd exo uv run exo启动后浏览器打开 52415 端口的 Dashboard其余机器装好同款软件连上同一网络就会自动入伙。家里有吃灰 Mac 又想在本地跑 DeepSeek 这类大模型的人基本就是它的目标用户。【免费下载链接】exoRun frontier AI locally.项目地址: https://gitcode.com/GitHub_Trending/exo8/exo创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表