SuperAPI AI 工具集

exo-distributed

智能体与模型

查看项目

更新于 10-17 03:15

技能介绍

用途:exo-distributed 是一个分布式 LLM 推理与集群编排技能,目标是让多台异构设备通过组成 GPU 集群来共同运行大模型,并尽量减少手动配置。其核心依托 exo 项目,面向 Apple Silicon 集群(macOS)。

主要能力:

  1. 自动对等发现:通过 Gossipsub/libp2p 的 mDNS/UDP 广播自动发现同网设备,无需手工配置,并构建节点拓扑图。
  2. RDMA over Thunderbolt 5:通过 Thunderbolt 5 直连内存访问(Jaccl 后端)降低设备间通信延迟,资料称其延迟约为 TCP/IP 的十分之一。
  3. MLX 后端:通过 mlx.distributed 获得 Apple Silicon 原生加速,支持 MlxRing(TCP/IP 回退)与 MlxJaccl(RDMA 首选)两种后端。
  4. 分片策略:支持流水线并行(按层切分,如设备 0 承载 0-15 层、设备 1 承载 16-31 层)与张量并行(各设备复制全部层,但注意力和 MLP 张量按设备划分,经 all-reduce 合并结果);提供 place_instance 等接口根据可用内存与 Thunderbolt 连接进行分片分配。
  5. OpenAI 兼容 API:集群对外暴露 REST 接口(默认 http://localhost:8080),提供 /v1/chat/completions,支持流式输出,且不需要 API key。
  6. 监控与管理:提供 Web 仪表盘(/dashboard),展示已连接节点、模型分片、推理吞吐与各设备内存占用;另提供基准测试命令 exo bench。

使用方式:先通过 pip install exo-explore 安装 exo;在首台设备运行 exo(若被选举则成为 master),在其余设备同样运行 exo,设备会自动组网并暴露 OpenAI 兼容 API。可用 exo --list-peers 查看发现的节点,用 --backend jaccl 或 --backend ring 指定后端,用 --model 指定模型,用 --port 设置 API 端口。客户端可用 openai SDK 将 base_url 指向 http://localhost:8080/v1,也可直接 curl 调用。硬件方面推荐使用 Thunderbolt 5 线缆搭建全互联拓扑(RDMA 需要 all-to-all 连接);若没有 RDMA 条件,可回退到 TCP/IP 的 ring 后端,但延迟更高。

适用场景:在多台 Apple Silicon 设备上运行单机显存放不下的大模型,例如资料中列出的 Llama 3.3 70B、DeepSeek R1 671B、Qwen 2.5 72B、Mixtral 8×22B、Llama 3.1 405B 等,并给出对应最少设备数与策略建议;也适合希望以本地集群方式获得 OpenAI 兼容接口的团队。

限制与注意:资料主要面向 macOS 上的 Apple Silicon 集群;RDMA 依赖 Thunderbolt 5 全互联布线,若不可用则需使用延迟更高的 TCP/IP 回退;显存不足时需减小批量或增加设备。资料还提到可将推理事件记录到 DuckLake 表并通过 SQL 查询历史与延迟统计,但该部分属于示例性集成内容。