exo-explore/exo
Run frontier AI locally.
exo – 适用于Apple silicon(及Linux)集群的分布式AI推理
产品简介 – exo(由Exo Labs提供)是一个本地运行平台,可将多台Mac(或Linux机器)组合成单个AI“集群”。它能自动发现设备,通过网络共享模型分片,并通过熟悉的OpenAI兼容API和Web仪表板暴露整个系统。核心推理引擎是MLX(Apple基于Metal的机器学习库),系统还增加了自己的拓扑感知并行性和通过Thunderbolt 5的RDMA,以减少节点间延迟。
主要功能(如README中所述)
| 功能 | 说明 |
|---|---|
| 自动设备发现 | 运行exo的节点无需手动配置即可在局域网中相互发现。 |
| 通过Thunderbolt 5的RDMA | 通过Thunderbolt 5对远程直接内存访问的Day-0支持,声称可将节点间延迟减少约99%。 |
| 拓扑感知自动并行化 | exo检查每个节点的资源和网络带宽/延迟,然后决定如何在集群中拆分模型。 |
| 张量并行化 | 在设备间分片模型,2个节点加速约1.8倍,4个节点约3.2倍(根据README)。 |
| MLX后端 | 使用MLX库进行推理,使用MLX-distributed进行通信。 |
| 多种API兼容性 | 暴露OpenAI Chat Completions、Claude Messages、OpenAI Responses和Ollama API,因此现有客户端可开箱即用。 |
| 自定义模型加载 | 拉取任何HuggingFace模型(包括4位/8位量化变体)并在集群上运行。 |
| 仪表板 | 内置Web UI(http://localhost:52415)显示集群状态、模型实例,并允许与模型聊天。 |
| 跨平台 | 提供macOS应用(通过Homebrew cask或DMG)以及macOS和Linux的源代码构建(目前在Linux上仅支持CPU)。 |
快速入门摘要
- 安装 – macOS用户可
brew install --cask exo或下载DMG;Linux/macOS源代码构建需要uv、node、rust,以及macOS上需要Xcode(Metal工具链)。 - 运行 –
uv run exo在端口52415启动协调器、仪表板和API。应用会自动发现其他运行exo的机器。 - 启用RDMA(macOS 26.2+) – 重启进入恢复模式,运行
rdma_ctl enable,然后重新启动。 - 部署模型 – 使用仪表板或REST端点(
/instance/previews、/instance、/v1/chat/completions等)将模型放置到集群并开始聊天。
示例API流程(来自README)
# 1. 查看模型可放置的位置
curl "http://localhost:52415/instance/previews?model_id=mlx-community/Llama-3.2-1B-Instruct-4bit"
# 2. 创建实例(使用步骤1的JSON负载)
curl -X POST http://localhost:52415/instance \
-H 'Content-Type: application/json' -d '{"instance": {...}}'
# 3. 等待实例就绪
curl -N "http://localhost:52415/instance/await?model_id=mlx-community/Llama-3.2-1B-Instruct-4bit"
# 4. 聊天(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 Llama 3.2 1B?"}],"stream":true}'
# 5. 完成后删除
curl -X DELETE http://localhost:52415/instance/<INSTANCE_ID>
仓库中显示的基准测试
README包含三个基准测试截图(Qwen-3 235B、DeepSeek v3.1 671B和Kimi K2 Thinking),在四台M3 Ultra Mac Studio上使用张量并行和RDMA运行,来源为Jeff Geerling的博客文章。它们展示了多TB级VRAM使用量和多倍加速,但仓库未以文本形式提供原始数据。
安装说明与平台注意事项
- macOS – RDMA支持需要macOS 26.2(或更高版本)和兼容Thunderbolt 5的Mac(M4 Pro/Max、M3 Ultra等)。应用会安装网络配置文件,可能需要用户权限来修改系统设置。
- Linux – 目前仅支持CPU;GPU支持“正在开发中”。README建议仅协调流量的节点使用
--no-worker标志。 - 模型存储 – 可通过
EXO_DEFAULT_MODELS_DIR、EXO_MODELS_DIRS和EXO_MODELS_READ_ONLY_DIRS配置。支持离线模式(EXO_OFFLINE=true)。 - 命名空间隔离 – 设置
EXO_ZENOH_NAMESPACE(或--namespaceCLI标志)可在同一局域网上运行多个独立集群。
谁可能使用此工具?
- 拥有多台Apple silicon机器、希望在本地运行超大LLM(数千亿参数)的研究人员或爱好者。
- 需要可在本地运行且无云成本的OpenAI兼容端点的开发人员。
- 希望尝试通过Thunderbolt 5进行低延迟节点间通信的团队。
总结
exo是一个真正的开源项目,旨在利用Apple的MLX堆栈和Thunderbolt 5 RDMA,在本地硬件上实现前沿规模语言模型的分布式推理。该仓库提供了从底层设备发现到即用型HTTP API和UI的完整技术栈,并明确将其定位为本地AI工作负载的工具,而非简单的教程或列表。
写过它的文章
相关
- 项目
- 项目
- 项目
- 项目
- 项目