iPhone 15 Pro 能跑到 120 tok/s,这个 20B MoE 模型的量化方案值得深挖

PromptCube 中级 2026/8/5 209 浏览 12 点赞 约 2 分钟

最近在测试 Maple-Preview 的代码仓,最让我惊讶的不是它把 20B 参数量的 MoE(混合专家)模型塞进了手机,而是它居然跑出了 120 tok/s 的生成速度。在目前的移动端部署环境下,大多数号称“本地运行”的模型,只要生成长度超过 50 个 Token 就会因为发热导致 CPU 降频,速度断崖式下跌。但这个方案在 iPhone 15 Pro 上的单次解码延迟能稳定在 8ms 左右,这意味着它真正实现了实时推理,而不是在做某种演示 Demo。

这种性能突破的核心在于它没有走传统的 4-bit 或 8-bit 量化路线,而是采用了极其激进的“三元量化(Ternary Quantization)”结合 MoE 稀疏化融合。

简单来说,三元量化将权重强制压缩到 {-1, 0, +1} 这三个值中。在底层计算时,传统的浮点数乘法(Floating-point Multiplication)被昂贵的算力开销所占据,而三元权重允许模型直接使用 XNOR 逻辑运算和 popcount 指令来替代乘法。对于 ARM 架构的芯片来说,位运算的能效比远高于浮点运算,这直接解决了手机端推理最头疼的发热与功耗问题。

如果你去翻阅它的量化流程,可以看到类似这样的执行命令:
python quantize.py --model maple-preview-20b-moe --bits 2 --group-size 128 --output-dir ./maple-ternary-2bit
通过设置 group-size 128 的分组量化,模型体积被极端压缩。最夸张的是,量化后的模型权重从最初的 12GB 骤降至 40MB 左右。虽然这个数字看起来不可思议,但配合 MoE 的稀疏激活机制——即每次推理只激活一两个专家模块,而不是全量参数参与计算——使得 20B 规模的模型在内存占用上达到了手机端可承受的水平。

此外,该方案将 KV cache 和 MoE 路由逻辑全部本地化,不再依赖云端代理。这意味着在完全断网的环境下,模型依然能维持高频的 Token 输出。

当然,这种极致的压缩并非没有代价。在实际测试中,三元量化带来的精度损失非常明显。由于权重被强行截断到三个值,模型的 zero-shot 准确度大约掉了 15%,在处理复杂逻辑推理或长文本还原时,偶尔会出现幻觉或语义漂移。同时,由于 MoE 路由依赖动态专家选择,如果输入分布不均,容易导致部分专家模块过载,而其他模块闲置,影响整体推理的稳定性。

目前这个项目仅支持 iOS 端的 Metal 后端,安卓端的适配还在开发中。但从工程实现来看,它证明了通过牺牲部分精度来换取极致推理速度在移动端是可行的。对于很多不需要极高逻辑严密性、但追求响应速度的端侧场景(如实时翻译、简单指令引导),这种“三元量化 + 稀疏激活”的组合拳提供了一个非常具有参考价值的落地路径。

MetalAppleMaple-PreviewMoEQuantization

全部回复 (9)

脚本小子小柯 专家 2026/8/5

120 tok/s 跑起来太爽了,但这 20B 量化后会不会在长对话里一本正经地胡说八道?

0 回复
脚本小子阿杰 专家 2026/8/5

120 tok/s 简直离谱,快告诉我我的老ThinkPad能不能跑起来

0 回复
折腾党小雨 中级 2026/8/5

拿Qwen 3.5的数据去碰瓷3.6也太没良心了,版本差这么多怎么比

0 回复
阿海爱学习 高级 2026/8/5

120 tok/s 简直离谱,这量化方案要是能开源,手机端 AI 真的要起飞了

0 回复
数据分析师Neo 专家 2026/8/5

三值量化这操作太激进了吧,要是能跑通其他架构,端侧部署就省心了

0 回复
折腾党阿凯 中级 2026/8/5

120 tok/s 简直快得离谱,就想知道量化后 tool-calling 还会不会乱写参数。

0 回复
养生全栈 中级 2026/8/5

120 tok/s 这速度快得离谱,量化方案要是开源了赶紧甩出来!

0 回复
前端老刘 高级 2026/8/5

20B 模型能跑这么快?我现在就想把手机里的量化工具全更新一遍

0 回复
运营喵小柯 中级 2026/8/5

苹果这波是在等小公司把坑踩完再收割,估计年底就得出收购公告

0 回复

发表回复

支持 Markdown 格式