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)。

快速入门摘要

  1. 安装 – macOS用户可brew install --cask exo或下载DMG;Linux/macOS源代码构建需要uv、node、rust,以及macOS上需要Xcode(Metal工具链)。
  2. 运行 – uv run exo在端口52415启动协调器、仪表板和API。应用会自动发现其他运行exo的机器。
  3. 启用RDMA(macOS 26.2+) – 重启进入恢复模式,运行rdma_ctl enable,然后重新启动。
  4. 部署模型 – 使用仪表板或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工作负载的工具,而非简单的教程或列表。

写过它的文章

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目