在一个智能化迅猛发展的时代,如何有效利用身边的智能设备来构建强大的人工智能集群,已成为许多技术爱好者的梦想。而现在,这个梦想通过 exo 项目的出现变为现实。exo
是一个实验性开源软件,允许用户利用家中普通设备如智能手机、平板电脑、电脑等,轻松构建自己的 AI 集群。在下面的文章中,我们将详细介绍这一项目的功能、使用方法和相关应用场景。
exo 项目简介
exo:在家用普通设备上运行自己的 AI 集群。 由 exo labs 维护。该项目旨在统一您现有的设备,将它们整合成一台强大的 GPU 设备;无论是 iPhone、iPad、Android 手机,还是 Mac,NVIDIA GPU,甚至 Raspberry Pi,几乎任何设备都可参与构建。
项目特点
-
广泛的模型支持
exo 支持多种模型,包括 LLaMA、Mistral、LlaVA、Qwen 以及 Deepseek。用户可以灵活选择适合自己需求的模型进行运行。
-
动态模型分割
exo 根据当前的网络拓扑结构和设备资源,智能地分割模型,使得用户能够运行超出单个设备能力的更大模型。这一功能帮助用户充分利用网络中所有设备的计算能力。
-
自动设备发现
exo 可以自动识别网络中的其他设备,零配置,用最优方法连接,从而简化了用户的设置过程。
-
兼容 ChatGPT 的 API
exo 提供兼容 ChatGPT 的 API,用户只需简单修改一行代码,就可以在自己的硬件上通过 exo 运行模型,方便快捷。
-
设备平等
exo 不同于其他分布式推断框架,它采用对等连网方式(p2p),不使用主从架构。只要设备在网络中都能连接,就可以用于模型运行。

安装 exo
前提条件
- Python 版本要求:确保您的 Python 版本在 3.12.0 及以上,因为早期版本存在 async 相关问题。
- 硬件要求:您必须在所有设备上拥有足够的内存,以容纳整个模型。例如,如果运行 LLaMA 3.1 8B(fp16),则需要在所有设备上总共拥有 16GB 的内存。
从源代码安装
git clone https://github.com/exo-explore/exo.git
cd exo
pip install -e .
# 或使用 venv
source install.sh
使用 exo
在多台 macOS 设备上使用示例
设备 1:
sh
exo
设备 2:
sh
exo
无需额外配置,exo 会自动发现其他设备,并建立连接。使用 exo 后,便可以在 http://localhost:52415 启动一个类似 ChatGPT 的 Web 界面。
使用 exo 进行 API 调用
对于开发者,exo 启动后还提供了一个 ChatGPT 兼容的 API 端点,用户可以向其发送 HTTP 请求。例如,要以 Llama 3.2 3B 模型进行聊天,可以使用如下命令:
sh
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
}'
单设备使用示例
您也可以选择在单一设备上运行。例如:
sh
exo run llama-3.2-3b
传入自定义提示:
sh
exo run llama-3.2-3b --prompt "What is the meaning of exo?"
模型下载与存储
所有模型默认存储在 ~/.cache/exo/downloads
目录。如果您在网络受限的国家,可以手动下载模型并放入该目录中。此外,用户可以通过设置 HF_ENDPOINT
环境变量来指定下载的代理端点。
调试与日志
您可以通过设置 DEBUG
环境变量来启用调试日志,详细了解 exo 的内部运行。示例如下:
sh
DEBUG=9 exo
总结
通过以上介绍,您可以看到 exo 是一个强大的工具,它能够将您日常使用的设备整合成一个大规模的 AI 计算集群。无论您是希望学习机器学习的学生,还是想要构建 AI 应用的开发者,exo 都为您提供了一个迈出第一步的绝佳机会。
同类项目比较
在这个领域,有几个类似的开源项目也提供了强大的功能,让用户可以更高效地利用其设备运行 AI 模型。例如:
- Docker:使用容器化技术将应用与依赖独立运行,但对于深度学习模型的支持相对有限。
- TensorFlow Serving:针对 TensorFlow 模型的高效服务,但主要依赖于云计算资源。
- ONNX Runtime:支持运行多种模型格式,可以在多种设备上高效推理,但配置和使用相对复杂。
这些项目各有其特点与适用场景,用户可以根据自身需求与资源来选择合适的解决方案。