1. EXO 简介
exo
项目的口号是 “在家中使用日常设备运行自己的 AI
集群”。exo
是一个开源项目,旨在利用日常设备(如 iPhone
、iPad
、Android
、Mac
、Linux
等)运行自己的 AI
集群。通过动态模型分区和自动设备发现,exo
能够将多个设备统一成一个强大的 GPU
,支持多种模型如 LLaMA
、Mistral
、LlaVA
、Qwen
和 Deepseek
。Exo 还提供了一个 ChatGPT
兼容的 API
,使用户可以轻松地在自己的硬件上运行模型。
2. 部署 EXO
笔者所使用环境为 Ubuntu24.04
的桌面系统。
先决条件:
- Python >= 3.12.0
- 对于支持 NVIDIA GPU 的 Linux(仅限 Linux,如果不使用 Linux 或 NVIDIA,请跳过)
- NVIDIA 驱动程序 - 验证 nvidia-smi
- CUDA 工具包 - 从 NVIDIA CUDA 指南安装,并使用以下工具进行验证 nvcc --version
- cuDNN 库 - 从 NVIDIA cuDNN 页面下载,按照以下步骤验证安装。
2.1. 安装 Python 3.12
步骤 1: 更新你的包管理器和系统
sudo apt update
sudo apt upgrade
步骤 2: 安装 Python 3.12
Python 3.12
目前还不是 Ubuntu
的官方发行版的一部分,但可以通过添加一个 PPA
(个人软件包存档)来安装它。以下是添加 PPA
并安装 Python 3.12
的步骤:
sudo apt install software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.12
sudo apt install python3.12-full
步骤 3: 安装 PIP
sudo apt install python3-pip
2.2. 下载并安装 EXO
通过 git
下载项目代码到本地。
git clone https://github.com/exo-explore/exo.git
cd exo
以“可编辑模式”(editable mode
)安装当前目录下的 Python
包,笔者在这里报错。
im02@ubuntu:exo$ pip install -e .
error: externally-managed-environment
× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
python3-xyz, where xyz is the package you are trying to
install.
If you wish to install a non-Debian-packaged Python package,
create a virtual environment using python3 -m venv path/to/venv.
Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
sure you have python3-full installed.
If you wish to install a non-Debian packaged Python application,
it may be easiest to use pipx install xyz, which will manage a
virtual environment for you. Make sure you have pipx installed.
See /usr/share/doc/python3.12/README.venv for more information.
note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.
安装 pipx
来代替 pip
以解决报错问题
sudo apt install pipx
再次执行安装命令。
im02@ubuntu:exo$ pipx install -e .
installed package exo 0.0.1, installed using Python 3.12.3
These apps are now globally available
- exo
⚠️ Note: '/home/im02/.local/bin' is not on your PATH environment variable. These apps will not be
globally accessible until your PATH is updated. Run `pipx ensurepath` to automatically add it,
or manually modify your PATH in your shell's config file (i.e. ~/.bashrc).
done! ✨ 🌟 ✨
笔者的机器没有搭载 GPU
,因此需要使用纯 CPU
进行推理,下面安装所需要的软件包。
sudo apt install clang
pipx install llvmlite
3. 启动 EXO 并下载模型
修改当前环境变量,并进入虚拟环境变量。
source install.sh
常规执行方式,直接运行 exo
命令即可。
exo
这将会在本地开启一个 WebUI
,在本地浏览器输入该地址 http://localhost:52415 即可访问。
浏览并点击左侧模型下的 download
按钮即可开始下载模型。
如果发现启动后左侧模型一直处于 “Checking download status…” 的状态则说明网络不好,推荐使用镜像地址下载,即在运行时执行如下命令。
HF_ENDPOINT=https://hf-mirror.com exo
若希望看到更多调试信息,则在前添加 DEBUG=9
,这些参数均可叠加,若希望指定仅用 CPU
进行推理则添加 CLANG=1
。
4. 多设备共享资源推理
exo
支持在多种同/异构设备上 p2p
连接使用,并能够跨设备分割模型,默认分区策略是环内存加权分区。这会在环中运行推理,其中每个设备运行的模型层数与设备的内存成比例。
只需要所有设备在同一个网络环境下即可,无需其它的配置,但需要注意的是,exo
开启时候会随机找一个靠后的端口作为自己连接端口,防火墙的存在可能会阻止设备之间的连接,建议关掉后尝试。