插上iPhone就能让Mac本地跑大模型快近一半

秃头产品狗 高级 40分钟前 644 浏览 6 点赞 约 4 分钟

Backburner把iPhone变成Mac的外接推理引擎,专门分担大模型最吃资源的预填充阶段。在16k到48k上下文区间,它能让预填充提速29%到44%,同时把可用上下文从Mac本身的64k顶到十几万token,而且输出结果和纯Mac跑完全一致。对于手里有旧iPhone、又受够了Mac本地推理慢的开发者来说,这个开源工具等于白捡了一块加速卡。

为什么本地跑大模型总是卡在预填充

跑过大模型本地推理的人都有这个体会: prompt 短的时候还能忍,一旦上下文拉长到几万token,光是把输入 token 喂进模型的预填充阶段就能耗掉几十秒甚至更久。预填充指的是模型在生成第一个输出 token 之前,把整个输入序列逐层计算一遍的过程——它不产生任何输出,却占用了绝大部分推理时间。Mac 的 CPU 和统一内存在这一步尤其吃力,因为预填充是矩阵乘法密集型任务,CPU 的单核性能再强也扛不住长序列的并行计算。更麻烦的是,Mac 的内存容量有限,24GB 的 MacBook Pro 已经算顶配,但 8-bit 量化下也只能装下大约 64k token 的上下文,再长就直接爆内存了。

Backburner 怎么做到的

Backburner 的思路很直接:找一块闲置的 GPU 来分担预填充。它把 iPhone 通过 10 Gb/s 的 USB-C 线连到 MacBook,然后让 iPhone 的 GPU 接手模型的一部分层。具体来说,对于每一批 prompt token,Mac 负责跑模型的第 1 到 40 层,iPhone 跑第 41 到 64 层,两者流水线并行。这样一来,agent 每次要读取一个长文件或者工具返回的大量结果时,等待时间就明显缩短了。
更实用的是它对上下文的扩展。Mac 的 24GB 内存本身只能容纳 64k token 的 8-bit 上下文,但 Backburner 会把最旧的一部分上下文“卸载”到 iPhone 的内存里,让 iPhone 的 GPU 在预填充阶段计算注意力,生成输出时则动用 iPhone 的 GPU 和 Neural Engine。项目作者实测,一台 iPhone 17 Pro Max 在 8-bit 下可以额外提供 196k 到 229k token 的上下文空间,端到端跑通 128k token 的 8-bit 推理和 140k token 的 4-bit 推理。这意味着在 Mac 上就能处理整本书或者一个大型代码库的上下文,而不用频繁截断。
最关键的一点是,用了 iPhone 和没用 iPhone,贪心解码的输出是逐 token 完全一致的。测试中在 8k 和 32k 上下文下各跑了 256 个 token,结果完全相同——也就是说,Backburner 带来的加速和扩展是无损的,不会因为把计算拆到手机上而改变模型行为。

你需要什么硬件

要搭这套系统,你需要三样东西:一台 MacBook(推荐 24GB 内存版本,效果最明显)、一台 iPhone(项目作者用的是 iPhone 17 Pro Max,但理论上支持 GPU 和 Neural Engine 的 iPhone 应该都能用),以及一根 10 Gb/s 的 USB-C 线。线材质量对稳定性影响不小,别用劣质第三方线。

怎么安装和使用

Backburner 本身是一个开源项目,代码在 GitHub 上。安装步骤大致如下:

  1. 确保你的 MacBook 和 iPhone 都升级到最新系统,然后用 USB-C 线连接。
  2. 在 Mac 上安装 llama.cpp,Backburner 是基于 llama.cpp 的插件机制工作的。
  3. 从 Backburner 的 Release 页面下载对应版本的二进制文件,或者从源码编译。
  4. 准备好 Qwen3.8-27B 的 GGUF 量化模型文件,项目作者推荐用 LessThanThreeAI 在 Hugging Face 上发布的 Humanlike Chat 版本,那个版本在对话场景下表现比较自然。
  5. 按照项目 README 的指引,用 llama.cpp 加载模型时指定 Backburner 的后端参数,剩下的就是正常的模型推理流程了。
插上iPhone就能让Mac本地跑大模型快近一半

具体命令和参数项目文档里写得很详细,这里不展开,因为 llama.cpp 的命令行选项比较多,而且 Backburner 的配置会根据你的硬件环境(Mac 内存大小、iPhone 型号)有所调整。第一次跑的时候可能要调试一下线缆识别或者内存分配,但整体流程不算复杂。

实际效果如何

根据项目作者给出的测试数据,在 16k 到 48k 的上下文长度下,预填充阶段比纯 Mac 快了 29% 到 44%。这个提升幅度取决于上下文长度和 batch size,但即使是下限的 29%,对于原本要等半分钟以上的场景来说也是质的改变。上下文扩展方面,Mac 本身只能装 64k token,接上 iPhone 之后,端到端跑通 128k 的 8-bit 推理和 140k 的 4-bit 推理都很稳定。对于需要处理长文档、大型代码库或者多轮对话的 agent 应用来说,这个扩展非常实用。
输出一致性方面,测试结果很干净:8k 和 32k 上下文下各生成 256 个 token,有手机和没手机的输出完全一样。这意味着你不需要在“更快”和“更准”之间做取舍。

有什么局限

首先,它需要一台 iPhone。如果你是纯 Windows 或者纯 Linux 用户,这个方案就不适用。其次,USB-C 线的带宽和稳定性会影响实际体验,10 Gb/s 是理想值,实际跑起来可能会有波动。另外,iPhone 在长时间高负载推理下会发热,夏天可能需要取下手机壳或者暂停一下。最后,Backburner 目前主要针对 Qwen3.8-27B 做了优化,其他模型能不能跑取决于层的划分方式,不一定能直接用。

值不值得用

如果你正在 Mac 上跑本地大模型,又被预填充慢和上下文短折腾得够呛,那 Backburner 值得试一试。它不需要额外买硬件,只要有一台闲置的 iPhone 就能白捡一块“外接 GPU”,加速效果和上下文扩展都很实在。对于做 agent 开发、需要频繁读取长文件或者长对话的场景,这个提升是能明显感知到的。但如果你没有 iPhone,或者主要跑的是其他架构的模型,那就不太划算了。总之,它是一个针对性很强的小工具,解决的问题很具体,用上了就是赚到。

llama.cpp本地推理Qwen3.8-27BiPhoneBackburner

全部回复 (1)

想当场把话说完?进全球 AI 聊天室,登录就能开口。

折
折腾党小雨 中级 38分钟前

64k token就爆内存了?我那台16GB的MacBook Air跑个8k上下文的模型都够呛。

0 回复

发表回复

支持 Markdown 格式