EXO:用消费级硬件运行AI集群

在这篇博文中,我们将深入探讨 EXO Labs 如何使用家用设备实现 AI 推理任务的划分和分配。

EXO:用消费级硬件运行AI集群

在这篇博文中,我们将深入探讨 EXO Labs 如何使用家用设备实现 AI 推理任务的划分和分配。我们将探索核心组件及其功能。最后,我们将介绍使用你拥有的设备设置自己的 AI 集群的步骤。

从本质上讲,EXO 将大型 AI 模型拆分成较小的部分(“碎片”)并将它们分布在多个设备上。可以把它想象成一场接力赛,每个跑步者(设备)处理旅程的一部分(模型处理)。

1、EXO的工作原理

关键组件:

  • 碎片管理:EXO 将 AI 模型分成可管理的块。
  • 智能分区:系统根据每台设备的功能找出最佳的任务分割方式。
  • gRPC 通信:设备使用这种高速协议相互通信。
  • 环形拓扑:数据以环形流动,每台设备先处理自己的部分,然后再传递。

任务如何在网络中流动:

  • 你提出问题:向 EXO 网络发送提示。
  • 任务分配:系统将你的请求分割到可用设备中。
  • 处理:每台设备都在其模型部分上工作。
    结果编译:一台设备收集所有部分并组装最终答案。

网络拓扑:

拓扑模块充当管理和与设备网络交互的框架,每个设备都具有特定的功能以及它们之间的连接。其中节点代表网络中的设备(例如 MacBook、iPhone 等),边缘代表设备之间的连接。

2、快速上手:设置你的 AI 集群

现在我们了解了程序的工作原理,让我们尝试在本地设备上运行它。

先决条件:

  • Python 3.12+:确保已安装 Python。
  • Git:确保已安装 Git 以克隆存储库。

步骤 1:克隆 EXO 存储库:从 GitHub 克隆 EXO 存储库:

git clone https://github.com/exo-explore/exo.git
cd exo

步骤 2:安装依赖项:使用 pip 安装所需的依赖项:

pip install .
source install.sh

步骤 3:运行 EXO 框架:

在设备上启动 API:

python3 main.py

EXO 将自动发现网络上的其他设备,无需任何手动配置。

预期输出:

INFO: Starting server on port 8000
INFO: Discovering peers...
INFO: Peer discovered: node2 at localhost:8081

步骤 4:访问 API:服务器运行后,你可以通过 http://localhost:8000 访问 API。使用 curl 或 Postman 等工具测试端点。使用 curl 的示例:

curl http://localhost:8000/v1/chat/completions \
     -H "Content-Type: application/json" \
     -d '{
           "model": "llama-3-8b",
           "messages": [{"role": "user", "content": "Hello, how are you?"}],
           "temperature": 0.7
         }'

预期输出:

{
  "id": "chatcmpl-...",
  "object": "chat.completion",
  "created": 1626702890,
  "model": "llama-3-8b",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Hello! I am doing well. How can I assist you today?"
      },
      "finish_reason": "length"
    }
  ]
}

步骤 5:调试:在运行应用程序之前,通过设置 DEBUG 环境变量来启用调试日志:

DEBUG=9 python3 main.py

预期输出:

DEBUG: Loading model llama-3-8b
DEBUG: Tokenizer loaded successfully
DEBUG: Server started on port 8000
DEBUG: Received request: {"model": "llama-3-8b", "messages": [{"role": "user", "content": "Hello, how are you?"}], "temperature": 0.7}
DEBUG: Processing prompt...
DEBUG: Sending response..

3、结束语

通过遵循这些步骤,你可以在 MacBook 上成功设置和运行 EXO 框架。本指​​南提供了从环境设置到运行和测试 API 服务器的清晰路径,确保流程顺利高效。有关更多详细信息,请参阅 EXO GitHub 存储库和示例使用文档。


原文链接:Building an AI Cluster at Home: The EXO Labs Approach

汇智网翻译整理,转载请标明出处