iPhone 也能跑 35B 大模型?Edge0 端侧推理深度体验与五大平台横向对比
【免费下载链接】Edge0项目地址: https://gitcode.com/gh_mirrors/ed/Edge0
Edge0是一个开源的流式 MoE 推理框架,核心配方是「SSD 专家卸载 + Recover-LoRA + Prerouter 路由预测」,能把 35B 级别的混合专家(MoE)大模型完整跑在 iPhone、Mac、Android、Windows 等消费级设备上。这篇文章带你实测它的 iPhone 端侧推理 App,并横向对比 iOS、macOS、Android、Windows、Python 五大平台的性能表现。
一、为什么 35B MoE 能塞进手机?
传统认知里,35B 参数模型至少要几十 GB 显存。Edge0 的解法很巧妙:MoE 模型每个 token 只会激活一小部分专家,所以不必把全部权重装进内存——
- SSD 专家卸载:专家权重以 4-bit 量化后放在磁盘上,按需流式加载进内存/GPU,峰值内存由「活跃专家集」决定,而不是总参数量;
- Prerouter 路由预测:一个训练好的小型预测头提前一个 token 预判下一层要用哪些专家,让权重加载与生成过程并行,解码吞吐最高提升 59%;
- Recover-LoRA:4-bit 基座冻结不动,用蒸馏训练的 LoRA 适配器找回大部分量化损失。
详细原理可以阅读 docs/streaming.md、docs/prerouter.md 和 docs/moe.md。
二、iPhone 端:Edge0 35B 实测体验
iOS 版 App(源码位于 ios/)是一个 SwiftUI 应用,推理核心为Edge0MLX(Swift + MLX Swift,计算走 Metal),检查点解析在Edge0Core模块,部署目标是 iOS 17+。
手机 App 的实际表现
| 模型 | 设备 | Prefill | 首 token 延迟 (TTFT) | Decode |
|---|---|---|---|---|
| 8B | iPhone 16 Pro (iOS 26.6.2) | 7.2 tok/s | 3.6 s | 10.9 tok/s |
| 35B | iPhone 16 Pro (iOS 26.6.2) | 4.9 tok/s | 2.1 s | 6.4 tok/s |
几条值得注意的体验细节:
- 35B 版本需要把原始检查点重打包:官方发布格式每个专家是「19 GB 大文件里的 9 次散读」,在 iPhone 上太慢,构建时用 ios/tools/repack_experts.py 重写成「每个专家一次顺序读 + 每层一个文件」,打包后约 20 GB;
- 模型选择后才会加载,8B 与 35B不会同时驻留内存,切换模型即卸载上一个;
- 每条回复下方直接显示 token 数、TTFT、prefill/decode 速率和峰值内存,数据透明;
- 前缀缓存(Prefix Cache)存放在 Application Support 目录,源码见 ios/Sources/Edge0MLX/Edge035B/PrefixCache.swift。
6.4 tok/s 的解码速度意味着手机上「边想边打字」的体验已经成立——对于不需要实时交互的场景(写作、代码、问答)完全可用。
三、五大平台横向对比
Edge0 是「一套配方、五个运行时」:同一模型、同一套 LoRA + Prerouter 适配器,在不同平台各有一套原生引擎。以下是各平台的实测数据(数据取自各目录 README 的 Performance 章节):
| 平台 | 参考设备 | 35B Decode | 35B Prefill | 技术栈 |
|---|---|---|---|---|
| 📱iOS | iPhone 16 Pro | 6.4 tok/s | 4.9 tok/s | Swift + MLX Swift (Metal) |
| 💻macOS (App) | MacBook Air M3 | 10–12 tok/s | 70–130 tok/s | Rust + Tauri 2 |
| 🐧macOS (Python) | Mac mini M4 Pro 24GB | 14.9–17.7 tok/s | 113/140 tok/s | Python + MLX |
| 🤖Android | 骁龙 8 Elite · 16GB | 6–9 tok/s(持续 9.46) | 首个增量轮次约 1 s | Kotlin + llama.cpp (NEON) |
| 🪟Windows | i7-14700K + RX 9070 GRE | 约 27.7 tok/s | 约 70 tok/s | C++ + Vulkan |
(同机 8B 档参考:Android 约 10 t/s 稳态、Windows 约 44.8 t/s、iOS 约 10.9 t/s。)
几点横向观察:
- 桌面平台明显更快——Windows 版 35B 解码接近 28 tok/s,是 iPhone 的 4 倍多,得益于独立显卡(Vulkan)与更大内存带宽;
- 两个移动平台速度接近(6–9 tok/s),但工程路线完全不同:iOS 走 MLX/Metal 统一内存,Android 走纯 CPU + ARM-NEON 专家按需换页(12–16GB 内存即可跑 35B);
- 移动端有「冷池代价」:Android 版在全新话题的第一轮会冷启动专家池,TTFT 可达 10–15 s,之后热轮次降到 1.1 s 左右;
- 所有平台共用「峰值内存只算活跃专家」的设计,35B 在 Mac 上峰值活跃内存仅约2.9 GiB、iOS 上 4 GB 常驻。
各平台源码与构建指南:ios/README.md、macos/README.md、android/README.md、windows/README.md。
四、速度之外的关键:质量损失有多大?
端侧量化最大的顾虑是「变慢还能忍,变笨怎么办」。官方用 OpenCompass 对 int4 管线与 fp16 原模型做了同条件评测:
| Benchmark | edge0-35b (int4) | 基座 fp16 | 差距 |
|---|---|---|---|
| AIME 2026 | 86.6 | 92.7 | -6.1 |
| HumanEval | 90.9 | 95.1 | -4.2 |
| GPQA-Diamond | 79.8 | 81.8 | -2.0 |
| MMLU-Pro | 81.0 | 84.6 | -3.6 |
| 平均 | 79.2 | 83.2 | -3.9 |
平均只掉 3.9 分(8B 档掉 2.8 分),MMLU-Pro 甚至超过部分基线——这正是 Recover-LoRA 的作用。评测细节见主 README.md 的 Quality 章节。
五、快速上手指南
- 想体验 iOS 版:需要 Apple Silicon Mac + Xcode + iOS 17 以上的 iPhone(开启开发者模式)。按 ios/README.md 下载模型放入
Models/目录,35B 额外执行一次repack_experts.py重打包,Xcode 里改好签名后 Run 即可; - Python 玩法(macOS):
pip install -e '.[dev,fetch]'后一条命令起步,edge0 serve还提供 OpenAI 兼容的/v1/chat/completions接口,源码在 python/src/edge0/server/; - 进阶研究:整体架构见 docs/architecture.md,35B 模型规格(40 层 × 256 专家、Top-4、33 个 Prerouter 头)见 docs/models/edge0-35b.md。
六、总结:Edge0 适合谁?
- ✅ 想在手机上离线跑大模型、看重隐私与无网可用;
- ✅ 开发者想研究「SSD 流式 MoE 推理」这套方法论(框架、补丁集、各平台引擎全部开源,Apache-2.0);
- ✅ 需要 OpenAI 兼容 API 自托管端侧模型的团队。
它的取舍也很明确:移动端解码速度在 6–12 tok/s 量级,换来的是隐私、离线、无需服务器;桌面端(尤其 Windows + 独显)体验则接近可用的流畅度。项目规划中 2026 Q4 还将发布统一推理框架,一套 API 自动适配五大平台——这是端侧大模型领域少见的、把「系统工程」做到底子的开源项目。
【免费下载链接】Edge0项目地址: https://gitcode.com/gh_mirrors/ed/Edge0
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考