本文参考了AI225导航的详细评测文章:Exo:在家用日常设备构建AI集群

前言

在AI技术飞速发展的今天,大型语言模型的能力越来越强大,但运行这些模型通常需要昂贵的硬件设备。Exo项目的出现改变了这一现状,它允许用户将家中的日常设备连接起来,构建一个强大的AI集群,让每个人都能体验大型AI模型的魅力。

Exo Logo

什么是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
    

安装步骤:

  1. 克隆仓库

    git clone https://github.com/exo-explore/exo
    
  2. 构建仪表板

    cd exo/dashboard && npm install && npm run build && cd ..
    
  3. 运行Exo

    uv run exo
    

这将在http://localhost:52415/启动Exo仪表板和API。

macOS应用

Exo还提供了一个macOS应用程序,可以在您的Mac上后台运行。该应用需要macOS Tahoe 26.2或更高版本。

您可以从这里下载最新构建:EXO-latest.dmg

应用会请求权限修改系统设置并安装新的网络配置文件,相关改进正在开发中。

macOS App

使用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生态系统中发挥越来越重要的作用。

参考资源

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐