综合介绍
Exo是一个开源项目,旨在利用日常设备(如iPhone、iPad、Android、Mac、Linux等)运行自己的AI集群。通过动态模型分区和自动设备发现,Exo能够将多个设备统一成一个强大的GPU,支持多种模型如LLaMA、Mistral、LlaVA、Qwen和Deepseek。Exo还提供了一个ChatGPT兼容的API,使用户可以轻松地在自己的硬件上运行模型。

功能列表
- 宽泛的模型支持:支持LLaMA、Mistral、LlaVA、Qwen和Deepseek等多种模型。
- 动态模型分区:根据当前网络拓扑和设备资源,优化模型分区。
- 自动设备发现:自动发现其他设备,无需手动配置。
- ChatGPT兼容API:提供一个兼容ChatGPT的API,便于在自己的硬件上运行模型。
- 设备平等:设备之间采用点对点连接,不使用主从架构。
- 多种分区策略:支持环形内存加权分区等多种分区策略。
使用帮助
使用帮助
安装流程
- 准备工作:- 确保Python版本>=3.12.0。
- 如果使用Linux并支持NVIDIA GPU,请安装NVIDIA驱动、CUDA工具包和cuDNN库。
 
- 从源码安装:- 克隆项目:git clone https://github.com/exo-explore/exo.git
- 进入项目目录:cd exo
- 安装依赖:pip install -e .
- 或者使用虚拟环境安装:source install.sh
 
- 克隆项目:
功能操作流程
- 运行模型:- 在多台MacOS设备上运行示例:- 设备1:exo
- 设备2:exo
- Exo会自动发现其他设备并启动一个类似ChatGPT的WebUI(由tinygrad tinychat提供支持),地址为http://localhost:52415。
 
- 设备1:
- 在单台设备上运行示例:- 使用命令:exo run llama-3.2-3b
- 使用自定义提示符:exo run llama-3.2-3b --prompt "What is the meaning of exo?"
 
- 使用命令:
 
- 在多台MacOS设备上运行示例:
- 模型存储:- 默认情况下,模型存储在~/.cache/huggingface/hub。
- 可以通过设置环境变量HF_HOME来更改模型存储位置。
 
- 默认情况下,模型存储在
- 调试:- 使用环境变量DEBUG(0-9)启用调试日志:DEBUG=9 exo
- 对于tinygrad推理引擎,使用单独的调试标志TINYGRAD_DEBUG(1-6):TINYGRAD_DEBUG=2 exo
 
- 使用环境变量
- 格式化代码:- 使用yapf格式化代码:- 安装格式化要求:pip3 install -e '.[formatting]'
- 运行格式化脚本:python3 format.py ./exo
 
- 安装格式化要求:
 
- 使用
使用方法
- 启动EXO:
   exo
EXO将自动发现并连接其他设备,无需额外配置。
- 运行模型:- 使用默认模型:
 exo run llama-3.2-3b- 自定义提示:
 exo run llama-3.2-3b --prompt "EXO的意义是什么?"
- API使用示例:- 发送请求: bash
 curl http://localhost:52415/v1/chat/completions \
 -H "Content-Type: application/json" \
 -d '{
 "model": "llama-3.2-3b",
 "messages": [{"role": "user", "content": "EXO的意义是什么?"}],
 "temperature": 0.7
 }'
 
- 发送请求: 
性能优化
- MacOS用户:- 升级到最新版本的MacOS。
- 运行./configure_mlx.sh优化GPU内存分配。
 
常见问题
- SSL错误:在某些MacOS/Python版本上,证书未正确安装。运行以下命令修复:
  /Applications/Python 3.x/Install Certificates.command
- 调试日志:启用调试日志:
  DEBUG=9 exo© 版权声明
文章版权归 AI分享圈  所有,未经允许请勿转载。
相关文章
暂无评论...





 简体中文
简体中文  English
English  日本語
日本語  한국어
한국어  Русский
Русский  Español
Español