如果你手头恰好有闲置的 iPhone、iPad、MacBook 等硬件设备,不妨尝试这个全新的 AI 玩法。
没错,你手中的 iPhone、iPad、MacBook 等设备,如今也能在 AI 推理领域大展拳脚。通过将它们组合起来,即可搭建一套“异构集群推理方案”,流畅运行 Llama3 等大语言模型。
更令人兴奋的是,该异构集群不仅支持 Windows、Linux 和 iOS 系统,对 Android 设备的支持也已在开发中。
异构集群实际运行效果展示。
项目作者 @evilsocket 公开了他的实际配置清单:iPhone 15 Pro Max、iPad Pro、MacBook Pro (M1 Max)、NVIDIA GeForce 3080,以及两块 NVIDIA Titan X Pascal。相关代码已全部开源至 GitHub。
看到这里,不少网友称赞作者技术实力不俗。当然,也有人开始关注能耗问题——暂且不论推理速度,数据在设备间频繁搬运带来的损耗,电费开销恐怕不容小觑。


项目介绍
这一切的关键,是一个名为 Cake 的 Rust 框架。Cake 专为大模型的分布式推理而生,例如 Llama3。其目标清晰明确:将各种消费级硬件——无论是 iOS、Android、macOS、Linux 还是 Windows 设备——整合为异构集群,使 AI 推理更加平民化、触手可及。

GitHub 项目地址:https://github.com/evilsocket/cake
Cake 的核心策略是将 transformer 块分片至多个设备,从而让原本因单个设备 GPU 内存不足而无法运行的模型,也能够顺利执行。同一工作线程上的连续 transformer 块会分批进行推理,以最大限度地降低数据传输延迟。
目前 Cake 已支持以下系统与设备:

编译
安装 Rust 开发环境后,执行以下命令进行编译:
cargo build --release
如果你想在应用里生成 iOS 绑定,可以执行:
make ios
使用
启动 worker 节点:
cake-cli --model /path/to/Meta-Llama-3-8B # 模型路径,关于如何优化模型大小往下看 --mode worker # 以 worker 模式运行 --name worker0 # worker 在拓扑文件中的名称 --topology topology.yml # 拓扑文件 --address 0.0.0.0:10128 # 绑定地址
启动 master 节点:
cake-cli --model /path/to/Meta-Llama-3-8B --topology topology.yml
拓扑文件 topology.yml 定义了各层由哪个 worker 负责,示例如下:
linux_server_1:
host: 'linux_server.host:10128'
description: 'NVIDIA Titan X Pascal (12GB)'
layers:
- 'model.layers.0-5'
linux_server_2:
host: 'linux_server2.host:10128'
description: 'NVIDIA GeForce 3080 (10GB)'
layers:
- 'model.layers.6-16'
iphone:
host: 'iphone.host:10128'
description: 'iPhone 15 Pro Max'
layers:
- 'model.layers.17'
ipad:
host: 'ipad.host:10128'
description: 'iPad'
layers:
- 'model.layers.18-19'
macbook:
host: 'macbook.host:10128'
description: 'M1 Max'
layers:
- 'model.layers.20-31'
关于内存和磁盘空间的优化,如果您只想为 worker 提供模型实际所需的数据,而非整个文件夹,可使用 cake-split-model 工具。例如,生成一个精简版 Llama3 safetensors 文件:
cake-split-model --model-path path/to/Meta-Llama-3-8B # 待分割的源模型 --topology path/to/topology.yml # 拓扑文件 --output output-folder-name # 输出文件夹
