exo - 使用日常设备运行AI集群


一、关于 exo


在家中使用日常设备运行自己的AI集群📱💻🖥️⌚

exo:在家中使用日常设备运行您自己的AI集群。由 exolabs维护。

忘掉昂贵的NVIDIA GPU,将您现有的设备统一到一个强大的GPU中:iPhone、iPad、Android、Mac、Linux,几乎任何设备!


特点


1、广泛的模型支持

exo支持不同的模型,包括LLaMA(MLXtinygrad)、Mistral、LlaVA、Qwen和Deepsearch。


2、动态模型分区

exo根据当前的网络拓扑和可用的设备资源优化地分割模型。这使您能够运行比在任何单个设备上都能运行的更大的模型。


3、自动设备发现

exo将使用可用的最佳方法自动发现 其他设备。零手动配置。


4、ChatGPT兼容API

exo为运行模型提供了一个ChatGPT兼容的API。使用exo在您自己的硬件上运行模型只是应用程序中的一行更改


5、设备平等

与其他分布式推理框架不同,exo不使用主工架构,相反,exo设备连接p2p,只要一个设备连接到网络的某个地方,就可以用来运行模型。

exo支持不同的分区策略来跨设备拆分模型。默认分区策略是环形内存加权分区。这在一个环中运行推理,其中每个设备运行与设备内存成比例的模型层数量。


二、安装

当前推荐使用远吗 安装exo方法


先决条件

  • Python>=3.12.0是必需的,因为在以前的版本中有asyncio的问题
  • 对于支持 NVIDIA GPU 的 Linux(仅限Linux,如果不使用Linux或NVIDIA,请跳过):

从源码安装

git clone https://github.com/exo-explore/exo.git
cd exo
pip install .
# alternatively, with venv
source install.sh

故障排除

  • 如果在Mac上运行,MLX 有一个带有故障排除步骤的安装指南

性能

用户根据经验发现,可以提高Apple Silicon Mac的性能:

  1. 升级到最新版本的MacOS 15。
  2. 运行./configure_mlx.sh。这会运行命令来优化苹果硅Mac上的GPU内存分配。


三、使用

1、在多个macOS设备上的示例使用


设备1:
python3 main.py

设备2:
python3 main.py

就是这样!无需配置-exo将自动发现其他设备。

exo启动一个类似ChatGPT的 WebUI(由tinygrad tinychat提供支持http://localhost:8000

对于开发人员,exo还会在 http://localhost:8000/v1/chat/completions 上启动一个ChatGPT兼容的API端点。

curl http://localhost:8000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
     "model": "llama-3.1-8b",
     "messages": [{"role": "user", "content": "What is the meaning of exo?"}],
     "temperature": 0.7
   }'

curl http://localhost:8000/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
   }'

2、多个异构设备(MacOS+Linux)上的示例用法


设备1(MacOS):
python3 main.py --inference-engine tinygrad

这里我们明确告诉exo使用tinygrad推理引擎。


设备2(Linux):
python3 main.py

Linux设备将自动默认使用tinygrad推理引擎。

您可以在此处阅读有关tinygrad特定环境变量的信息。例如,您可以通过指定CLANG=1来配置tinygrad以使用cpu。


四、调试

使用DEBUG环境变量(0-9)启用调试日志。

DEBUG=9 python3 main.py

对于tinygrad推理引擎,有一个单独的DEBUG标志TINYGRAD_DEBUG可用于启用调试日志(1-6)。

TINYGRAD_DEBUG=2 python3 main.py

已知问题

在某些版本的MacOS/Python上,证书未正确安装,这可能会导致SSL错误(例如huggingface.co的SSL错误)。

要解决此问题,请运行安装证书命令,通常:

/Applications/Python 3.x/Install Certificates.command

🚧由于库的发展如此之快,iOS的实现已经落后于Python。

我们现在决定不发布有缺陷的iOS版本,也不会收到一堆过时代码的GitHub问题。

我们正在努力解决这个问题,并将在准备好后发布公告。

如果您现在想访问iOS实现,请发送电子邮件alex@exolabs.net使用您的GitHub用户名解释您的用例,您将被授予在GitHub上的访问权限。


推理引擎

exo支持以下推理引擎:


网络模块


五、其它

  • exo正在招聘
    更多详情见: https://exolabs.net/
  • 参与
    exo是实验性软件。尽早发现错误。创建问题以便修复。exo实验室团队将努力快速解决问题。
  • 贡献
    我们也欢迎社区的贡献。我们在这张表上有一份赏金清单。

2024-11-14(四)

### 搭建和配置 DeepSeek 异构集群 #### 1. 准备工作环境 为了成功部署 DeepSeek 异构集群,需先准备适当的工作环境。对于不同类型的硬件资源(如配备强大 GPU 的服务器以及仅具备集成显卡或 CPU 的机器),应确保每台设备都已安装必要的依赖项并满足最低系统要求。 #### 2. 安装 GPUStack 管理工具 通过官方提供的脚本快速设置 GPUStack 来简化 deepseek 各版本模型的启动过程[^1]: ```bash curl -fsSL https://raw.githubusercontent.com/GPUStack/gpu-cluster-manager/main/install.sh | bash - ``` 此命令会自动下载最新的稳定版软件包,并完成基本初始化操作。 #### 3. 获取 exo 并构建本地副本 针对特定需求定制化开发时可考虑从 GitHub 上克隆 exo 项目仓库,在本地环境中编译打包后再投入使用[^2]: ```bash git clone https://github.com/exo-explore/exo.git cd exo pip install -e . # 或者使用虚拟环境来隔离依赖关系 source install.sh ``` 上述步骤能够帮助开发者更灵活地调整参数以适应不同的应用场景。 #### 4. 配置多节点通信机制 为了让各个计算单元之间高效协作交流数据流信息,建议采用成熟的分布式框架作为底层支撑平台;同时也要注意网络拓扑结构设计合理性和带宽利用率最大化等问题。 #### 5. 测试与调优阶段 最后一步是对整个系统的稳定性进行全面验证测试,包括但不限于负载均衡策略评估、异常情况下的自我修复能力检验等方面的内容。此外还可以尝试应用一些技巧提升基于 Apple Silicon 架构 Mac 设备的表现效果,比如定期更新操作系统至最新版本以便获得更好的兼容性支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程乐园

请我喝杯伯爵奶茶~!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值