exo:一个能让任何人利用日常设备构建AI集群的强大工具,组成一个虚拟GPU在多台设备上并行运行模型

Written by 30115776@qq.com

今天跟大家分享一下 exo 这个开源项目,它能让你利用家中的日常设备构建强大的 AI 集群。

🚀 快速阅读

exo 是一个开源项目,旨在让你利用家中的日常设备(如 iPhone、iPad、Android、Mac 和 Linux)构建强大的 AI 集群。

  1. 核心功能:支持多种大模型、自动设备发现、动态模型分区。
  2. 技术原理:通过 P2P 网络连接设备,优化模型分配,实现分布式推理。

exo 是什么

exo 是一个由 exo labs 维护的开源项目,旨在让任何人都能利用家中的日常设备(如 iPhone、iPad、Android、Mac 和 Linux)构建强大的 AI 集群。它允许用户将现有的设备统一成一个虚拟的 GPU,从而运行大型 AI 模型,而无需依赖昂贵的 NVIDIA GPU。

exo 支持多种流行的 AI 模型,并通过智能的资源管理和网络拓扑优化,使得用户可以在多台设备上并行运行模型,极大地提升了计算能力。此外,exo 采用了点对点(P2P)架构,避免了传统分布式系统的主从模式,确保每台设备都能平等地参与推理任务。

exo 的主要功能

  • 广泛模型支持:exo 支持多种大模型,包括 LLaMA、Mistral、LlaVA、Qwen 和 Deepseek。
  • 动态模型分区:exo 根据当前网络拓扑和设备资源,智能地分割模型,使用户能够在多台设备上运行比单个设备更大的模型。
  • 自动设备发现:exo 可以自动发现其他设备,无需手动配置,简化了使用流程。
  • ChatGPT 兼容 API:exo 提供了一个兼容 ChatGPT 的 API,只需在应用程序中进行一行更改,即可在自己的硬件上运行模型。
  • 设备平等:exo 采用 P2P 架构,所有设备都作为平等节点参与推理任务,避免了主从架构带来的瓶颈。

exo 的技术原理

  • P2P 网络连接:exo 通过点对点网络连接设备,避免了传统的主从架构,确保每台设备都能平等地参与推理任务。
  • 环形内存加权分区策略:exo 默认使用环形内存加权分区策略,根据设备的内存大小分配模型层,优化推理性能。
  • 异构设备支持:exo 支持不同类型的设备(如 GPU、CPU),并且可以根据设备的能力自动调整推理任务的分配,提升整体吞吐量。

如何运行 exo

1. 安装 exo

当前推荐的方式是从源码安装 exo。以下是详细的步骤:

git clone https://github.com/exo-explore/exo.git
cd exo
pip install -e .
# 或者使用虚拟环境
source install.sh

2. 硬件要求

exo 的唯一要求是所有设备的总内存必须足以容纳整个模型。例如,如果你要运行 LLaMA 3.1 8B (fp16),你需要 16GB 的总内存。以下是一些可能的配置组合:

  • 2 x 8GB M3 MacBook Air
  • 1 x 16GB NVIDIA RTX 4070 Ti 笔记本
  • 2 x Raspberry Pi 400(4GB RAM)+ 1 x 8GB Mac Mini

3. 示例用法

多个 macOS 设备

在每个设备上运行 exo 命令,exo 会自动发现其他设备并建立连接。

exo

exo 将启动一个类似 ChatGPT 的 WebUI,访问 http://localhost:52415 即可使用。

跨平台设备(macOS + Linux)

在 macOS 和 Linux 设备上分别运行 exo,它们会自动连接并使用不同的推理引擎。

# macOS 设备
exo

# Linux 设备
exo

Linux 设备默认使用 tinygrad 推理引擎,macOS 设备则可以根据需要选择 MLX 或 tinygrad。

单设备运行

你也可以在单个设备上直接运行模型:

exo run llama-3.2-3b

或指定自定义提示:

exo run llama-3.2-3b --prompt \"What is the meaning of exo?\"

资源

❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发感兴趣,我会每日分享大模型与 AI 领域的开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!

30115776@qq.com

Pretium lorem primis lectus donec tortor fusce morbi risus curae. Dignissim lacus massa mauris enim mattis magnis senectus montes mollis taciti accumsan semper nullam dapibus netus blandit nibh aliquam metus morbi cras magna vivamus per risus.

Eino:字节跳动开源基于Golang的AI应用开发框架

复合 AI 模型,融合多个开源 AI 模型组合解决复杂推理问题

发表评论