Exo:在家用日常设备构建AI集群,让AI计算民主化
Exo是一个开源项目,旨在利用日常设备构建分布式AI集群,实现大型语言模型的高效运行。它通过自动设备发现、Thunderbolt RDMA技术、拓扑感知并行等创新特性,显著提升模型推理速度。项目支持在Mac和Linux上运行,使用MLX作为推理后端,可处理高达671B参数的模型。Exo让用户无需昂贵硬件即可体验大规模AI计算,适用于研究、开发和教育场景,代表了AI计算民主化的重要进展。
本文参考了AI225导航的详细评测文章:Exo:在家用日常设备构建AI集群
前言
在AI技术飞速发展的今天,大型语言模型的能力越来越强大,但运行这些模型通常需要昂贵的硬件设备。Exo项目的出现改变了这一现状,它允许用户将家中的日常设备连接起来,构建一个强大的AI集群,让每个人都能体验大型AI模型的魅力。

什么是Exo?
Exo是一个开源项目,由exo labs维护,旨在将您拥有的所有设备连接成一个AI集群。它不仅能运行比单个设备内存更大的模型,还通过Thunderbolt上的RDMA(远程直接内存访问)技术,使模型在添加更多设备时运行速度更快。
这个项目的核心理念是"让AI计算民主化",充分利用现有设备资源,无需购买昂贵的专用硬件。
项目GitHub地址:https://github.com/exo-explore/exo
核心特性
1. 自动设备发现
运行Exo的设备会自动发现彼此,无需任何手动配置。这种零配置的体验大大降低了使用门槛,让普通用户也能轻松构建自己的AI集群。
2. Thunderbolt上的RDMA支持
Exo从第一天起就支持Thunderbolt 5上的RDMA技术,实现了设备间99%的延迟降低。这意味着当您添加更多设备时,模型不仅能够运行,而且运行速度会显著提升。
3. 拓扑感知自动并行
Exo能够基于设备拓扑的实时视图,找出将模型分割到所有可用设备的最佳方式。它考虑了设备资源以及每个链接之间的网络延迟/带宽,自动优化模型分布。
4. 张量并行
Exo支持模型分片,在2个设备上可实现高达1.8倍的加速,在4个设备上可实现3.2倍的加速。这种并行计算能力使得大型模型的推理变得更加高效。
5. MLX支持
Exo使用MLX作为推理后端,并使用MLX distributed进行分布式通信。MLX是苹果为机器学习设计的框架,特别适合在Apple Silicon设备上运行。
性能基准测试
Exo在多个大型模型上进行了基准测试,展示了其强大的分布式计算能力:
Qwen3-235B (8-bit)
在4台M3 Ultra Mac Studio上使用张量并行RDMA运行,展现了卓越的性能表现。
DeepSeek v3.1 671B (8-bit)
同样在4台M3 Ultra Mac Studio上成功运行,证明了Exo处理超大规模模型的能力。
Kimi K2 Thinking (原生4-bit)
在相同的硬件配置下运行,进一步验证了Exo对不同精度和架构模型的兼容性。
快速开始
从源代码运行(Mac和Linux)
前置条件:
- uv(用于Python依赖管理)
brew install uv - macmon(用于Apple Silicon上的硬件监控)
brew install macmon
安装步骤:
-
克隆仓库
git clone https://github.com/exo-explore/exo -
构建仪表板
cd exo/dashboard && npm install && npm run build && cd .. -
运行Exo
uv run exo
这将在http://localhost:52415/启动Exo仪表板和API。
macOS应用
Exo还提供了一个macOS应用程序,可以在您的Mac上后台运行。该应用需要macOS Tahoe 26.2或更高版本。
您可以从这里下载最新构建:EXO-latest.dmg
应用会请求权限修改系统设置并安装新的网络配置文件,相关改进正在开发中。

使用API
如果您更喜欢通过API与Exo交互,以下是创建小型模型实例、发送聊天完成请求和删除实例的示例:
1. 预览实例放置
/instance/previews端点将预览模型的所有有效放置方式:
curl "http://localhost:52415/instance/previews?model_id=llama-3.2-1b"
示例响应:
{
"previews": [
{
"model_id": "mlx-community/Llama-3.2-1B-Instruct-4bit",
"sharding": "Pipeline",
"instance_meta": "MlxRing",
"instance": {...},
"memory_delta_by_node": {"local": 729808896},
"error": null
}
// ...可能还有更多放置方式...
]
}
这将返回此模型的所有有效放置方式。选择您喜欢的放置方式。
要选择第一个,可以通过管道传递给jq:
curl "http://localhost:52415/instance/previews?model_id=llama-3.2-1b" | jq -c '.previews[] | select(.error == null) | .instance' | head -n1
2. 创建模型实例
向/instance发送POST请求,在instance字段中包含您想要的放置配置(完整负载必须与CreateInstanceParams中的类型匹配),可以从步骤1中复制:
curl -X POST http://localhost:52415/instance \
-H 'Content-Type: application/json' \
-d '{
"instance": {...}
}'
示例响应:
{
"message": "Command received.",
"command_id": "e9d1a8ab-...."
}
3. 发送聊天完成
现在,向/v1/chat/completions发送POST请求(与OpenAI API格式相同):
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
}'
4. 删除实例
完成后,通过实例ID删除实例(通过/state或/instance端点查找):
curl -X DELETE http://localhost:52415/instance/YOUR_INSTANCE_ID
其他有用的API端点:
- 列出所有模型:
curl http://localhost:52415/models - 检查实例ID和部署状态:
curl http://localhost:52415/state
硬件加速器支持
在macOS上,Exo使用GPU。在Linux上,Exo目前在CPU上运行。开发团队正在努力扩展硬件加速器支持。如果您希望支持新的硬件平台,可以在GitHub上搜索现有的功能请求并点赞,让团队了解社区认为哪些硬件最重要。
应用场景
1. 个人AI研究
研究人员和学生可以使用Exo在家中构建小型AI集群,进行实验和学习,而无需访问昂贵的云服务。
2. 小型企业和创业公司
对于预算有限的小型企业和创业公司,Exo提供了一种经济高效的方式来运行AI模型,开发AI驱动的产品和服务。
3. AI应用开发
开发者可以使用Exo测试和优化他们的AI应用,确保在不同硬件配置下的兼容性和性能。
4. 教育和培训
教育机构可以使用Exo为学生提供实践AI计算的机会,让他们了解分布式AI系统的工作原理。
与其他解决方案的比较
与传统的云计算AI服务相比,Exo具有以下优势:
- 成本效益:充分利用现有设备,无需购买昂贵的专用硬件
- 隐私保护:数据保留在本地设备上,不依赖第三方云服务
- 离线能力:无需互联网连接即可运行AI模型
- 可扩展性:随着设备增加,性能线性提升
- 开源透明:完全开源,代码透明可审计
未来发展
Exo项目仍在快速发展中,未来计划包括:
- 扩展对更多硬件平台的支持
- 改进用户界面和用户体验
- 增强安全性和隐私保护功能
- 优化更多模型的并行化策略
- 简化安装和配置过程
总结
Exo项目代表了AI计算民主化的重要一步,它让普通用户也能利用日常设备构建强大的AI集群。通过自动设备发现、RDMA技术、拓扑感知并行等创新特性,Exo大大降低了运行大型AI模型的门槛。
无论您是研究人员、开发者、学生还是AI爱好者,Exo都为您提供了一个探索AI世界的强大工具。随着项目的不断发展和社区的积极参与,我们有理由相信Exo将在未来的AI生态系统中发挥越来越重要的作用。
参考资源
更多推荐

所有评论(0)