当前位置: 首页 > news >正文

4台Mac跑671B大模型:exo 分布式AI集群本地推理指南

4台Mac跑671B大模型:exo 分布式AI集群本地推理指南

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

exo 是一个本地大模型分布式推理框架:在多台 Apple Silicon 或 Linux 机器上各跑一条命令,设备就会自动发现彼此、组成集群,把单机装不下的大模型切开并行运行。Mac 用户也可以直接brew install --cask exo装菜单栏应用,省去源码构建。

一句话看懂它

  • 组网零配置:每台机器装好就上线,自动互相发现并展示实时拓扑,不用手动填地址
  • 跑更大的模型:把模型分片到多台设备的内存里,总容量决定你能跑多大的本地大模型
  • 加机器真的会更快:张量并行官方数据是 2 台最高 1.8 倍、4 台最高 3.2 倍
  • 换机器不换代价:OpenAI、Claude、Ollama 等 API 格式全兼容,现有客户端改个 base_url 就能用

最短路径跑通

第 1 步:拉代码并构建仪表盘

git clone https://gitcode.com/GitHub_Trending/exo8/exo cd exo/dashboard && npm install && npm run build

会看到:构建完成,产物生成在dashboard/build,这是后面网页控制界面的来源(macOS 源码运行还需 Xcode、uv、node、rust nightly,按 README 准备即可)。

第 2 步:在第一台机器上启动

cd exo uv run exo

会看到:本机集群服务和仪表盘启动在http://localhost:52415,页面里出现当前这台节点。

第 3 步:在第二台机器上执行同样两条命令

uv run exo

会看到:两台设备自动发现并组网成功,仪表盘拓扑图和聊天界面里都能同时看到两个节点,点 LAUNCH INSTANCE 就能分配第一个模型实例。

按设备组合选玩法

旧设备凑算力(异构集群)

新旧配置差异大的机器可以直接混编,调度器会按各设备的内存和链路带宽决定每个模型分片放哪台。内存有限但网络好的机器还能只当"协调员",不参与推理:

uv run exo --no-worker

分片决策逻辑在 placement.py,它对每条设备链路实时评估延迟与带宽后再给出放置方案。

多台机器分摊大模型(RDMA 高速直连)

4 台 512GB 的 M3 Ultra Mac Studio 通过 Thunderbolt 5 全互联,把 DeepSeek v3.1 671B(8-bit,约 671GB,远超单台容量)切开后跑起来。开启 RDMA 需要 macOS 26.2+:关机后长按电源 10 秒进恢复模式,在终端执行rdma_ctl enable,重启后 exo 会自动接管。

断网环境跑本地推理

模型放在外置硬盘或共享存储里,关掉联网即可完全离线:

EXO_OFFLINE=true EXO_MODELS_DIRS=/Volumes/SSD/exo-models uv run exo

多集群共用一个局域网时,再用EXO_LIBP2P_NAMESPACE=名字给各自集群划分隔离空间,避免误连。

实测表现

结论:只要内存加得够、链路够快,前沿规模模型可以在消费级 Mac 集群上本地推理,且加机器有实测加速。以下数据来自 Jeff Geerling 的公开测试(4 × M3 Ultra Mac Studio,张量并行 + RDMA over Thunderbolt 5):

  • 集群总内存:4 × 512GB = 2TB
  • 成功运行的模型:DeepSeek v3.1 671B(8-bit)、Qwen3-235B(8-bit)、Kimi K2 Thinking(4-bit)
  • 扩展速度:张量并行下 2 台最高 1.8x、4 台最高 3.2x(官方 README 口径)
  • 设备间通信延迟:RDMA over TB5 相比普通网络降低约 99%

常见坑速查

现象:两台机器在同一局域网,但始终发现不了彼此原因:不在同一子网、防火墙拦了局域网流量,或两边的EXO_LIBP2P_NAMESPACE不一致解法:确认同子网、放行本地网络权限,统一命名空间后重启 exo,必要时看~/.cache/exo/exo_log/下的日志

现象:RDMA 没生效或直连不稳定原因:两边 macOS 版本必须精确一致(含 beta 版本号),线缆非 TB5 规格,或在 Mac Studio 上用了紧邻以太网口的那个 TB5 口解法:对齐系统版本、换正规 TB5 线缆、避开以太网口旁边的端口

现象:Linux 节点推理速度远低于预期原因:exo 在 Linux 上目前只跑 CPU,没有 GPU 加速解法:推理负载交给 Apple Silicon 机器,Linux 机用--no-worker只做协调

接入现有工具链

exo 对外同时提供 OpenAI Chat Completions、Claude Messages、OpenAI Responses 和 Ollama 四套 API 端点,意味着 LangChain、OpenWebUI 这类现成工具改个base_url就能指向你的集群;自定义 HuggingFace 模型也能通过/models/add端点加载,完整端点清单见 docs/api.md。最小可用示例:

import openai client = openai.OpenAI(base_url="http://localhost:52415/v1", api_key="not-needed") r = client.chat.completions.create( model="mlx-community/Llama-3.2-1B-Instruct-4bit", messages=[{"role": "user", "content": "你好"}], )

到这里集群已经能服务真实流量了。建议的下一步:

  • 先用 1B 小模型在两台设备上跑通,观察仪表盘里的自动并行方案
  • /instance/previews预览不同放置策略,再决定用流水线还是张量并行
  • 有 TB5 的机器按上文开启 RDMA,用bench/exo_bench.py量化加机器前后的吞吐差异

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

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

http://www.cnnetsun.cn/news/4323778.html

相关文章:

  • obsidian-skills 实战:5 个 Agent 技能让 AI 正确读写和检索 Obsidian 笔记
  • DBeaver 插件优化完整教程:3 步解决启动缓慢与卡顿,内存占用降低一半
  • 途虎养车数据分析岗笔试题解析:从SQL到业务案例的考察逻辑
  • 用友2018秋招Java笔试题复盘:基础、集合、JVM与多线程要点解析
  • C语言零基础入门:掌握printf和scanf的四个关键点
  • 双星不同轨卫星目标探测Matlab仿真源码详解
  • agentmemory远程部署安全加固指南:HMAC密钥、Bearer令牌与HTTPS强制三件套
  • 不确定性引导的潜在扩散模型:实现忠实图像超分辨率
  • Linux重定向与追加重定向详解:文件描述符、2>1与日志收集实战
  • AI Agent概念验证实战:从Demo到工程落地的关键路径
  • Python爬虫实战:从抓包到反爬的完整数据采集方案
  • HyperMesh新手的三大卡点:网格质量、材料单位与节点显示
  • 手写MiniPin:从自引用到async彻底理解Rust Pin
  • iOS校招笔试高频考点拆解:从内存管理到GCD底层原理
  • 后台开发校招笔试备考全攻略:从乐信真题看考点与策略
  • STM32N6链接报错undefined reference?一文教你排查MX_USART1_UART_Init缺失问题
  • 快手2020秋招算法岗B卷:KMP、动态规划与机器学习考点全解析
  • DeepSeek接入Codex:配置Skill与插件打造Agent编程工作流
  • Spring 声明式事务在同类中失效的原因与解决方案汇总
  • RV1126准备-----RockX的使用
  • 【Python 多行字符串与三引号】
  • 从C语言到机器码:掌握编译与反汇编的核心原理
  • OpenAI 应用快照指南:锁定模型版本,告别输出漂移
  • 安卓开发环境配置避坑指南
  • 8K电视盒子配置指南:从双频Wi-Fi到蓝牙语音遥控全解析
  • Paperless-ngx 多语言配置:中文 OCR、日期解析与本地化界面的 4 步落地法
  • HyperMesh 12.0前处理实战:几何清理与网格划分完整流程解析
  • Stats 开箱即用:macOS 系统监控工具 DMG 安装全流程
  • MATLAB整车性能仿真指南:参数化建模与批量仿真高效流程
  • 车载NFC技术解析:从原理到Android实现与安全防御