❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发感兴趣,我会每日分享大模型与 AI 领域的开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!
🥦 微信公众号|搜一搜:蚝油菜花 🥦
大家好,我是蚝油菜花,今天跟大家分享一下 exo 这个开源项目,它能让你利用家中的日常设备构建强大的 AI 集群。
🚀 快速阅读
exo 是一个开源项目,旨在让你利用家中的日常设备(如 iPhone、iPad、Android、Mac 和 Linux)构建强大的 AI 集群。
- 核心功能:支持多种大模型、自动设备发现、动态模型分区。
- 技术原理:通过 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?"
资源
- GitHub 仓库:https://github.com/exo-explore/exo
❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发感兴趣,我会每日分享大模型与 AI 领域的开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!
🥦 微信公众号|搜一搜:蚝油菜花 🥦