Exo:低成本打造异构 AI 集群
Unify your existing devices into one powerful GPU.
支持 iPhone、iPad、Android、Mac、NVIDIA、Raspberry Pi 等设备。
Exo 介绍
Exo 允许你将多个设备组合成一个分布式 AI 计算集群,支持 LLaMA、Mistral、LlaVA、Qwen、Deepseek 等模型,提供 ChatGPT 兼容 API,开源且无需复杂配置即可自动发现设备。
核心功能
? 广泛的模型支持
支持 LLaMA(MLX & tinygrad)、Mistral、LlaVA、Qwen、Deepseek 等。
? 动态模型分片
可根据设备资源自动划分模型,提高运行效率。
? 自动设备发现
无需手动配置,Exo 可自动检测并连接集群中的设备。
? 无主从架构
所有设备均为平等节点,支持 P2P 互联,无中心服务器。
? ChatGPT 兼容 API
仅需 一行代码修改 即可在本地硬件上运行 AI 模型。
? 异构设备支持
支持 不同算力的设备混合使用(如 GPU + CPU 组合)。
安装 Exo
系统要求
? Python ≥ 3.12
? (Linux + NVIDIA GPU 用户)需安装
? NVIDIA 驱动 (nvidia-smi)
? CUDA 工具包 (nvcc --version)
? cuDNN 库
安装步骤
git clone https://github.com/exo-explore/exo.git
cd exo
pip install -e .
# 或使用 venv 安装
source install.sh
快速上手
多设备自动发现
设备 1(如 Mac)
exo
设备 2(如 Linux)
exo
WebUI(ChatGPT-like)自动启动,访问:
? http://localhost:52415
ChatGPT API 端点:
? http://localhost:52415/v1/chat/completions
示例:API 调用
运行 LLaMA 3.2 3B
curl http://localhost:52415/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "llama-3.2-3b",
"messages": [{"role": "user", "content": "What is the meaning of exo?"}],
"temperature": 0.7
}'
运行 DeepSeek R1(671B)
curl http://localhost:52415/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-r1",
"messages": [{"role": "user", "content": "What is the meaning of exo?"}],
"temperature": 0.7
}'
运行 Llava 1.5 7B(多模态)
curl http://localhost:52415/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "llava-1.5-7b-hf",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "What are these?"
},
{
"type": "image_url",
"image_url": {
"url": "http://images.cocodataset.org/val2017/000000039769.jpg"
}
}
]
}
],
"temperature": 0.0
}'
模型管理
? 默认存储路径:~/.cache/exo/downloads
? 自定义存储路径:
export EXO_HOME=/your/custom/path
? 代理下载(适用于 Hugging Face 受限地区):
HF_ENDPOINT=https://hf-mirror.com exo
?? 性能优化
Mac 用户优化指南:
1. 升级 macOS Sequoia
2. 优化 GPU 内存分配
./configure_mlx.sh
调试模式(日志级别 0-9)
DEBUG=9 exo
tinygrad 专属调试
TINYGRAD_DEBUG=2 exo
支持的计算框架
? MLX
? tinygrad
PyTorch(开发中)
llama.cpp(开发中)
网络发现
? UDP 自动发现
? 手动配置
? Tailscale
蓝牙 / 无线电(开发中)
P2P 连接方式
? gRPC
NCCL(开发中)
立即体验 Exo
exo run llama-3.2-3b --prompt "What is the meaning of exo?"
在本地设备上 免费运行大模型,探索分布式 AI 的无限可能!