0.3B 模型上手机:173MB 是文件,228MB 才是峰值内存

源自20位全网作者

14:34

淘宝 MNN 团队开源 MNN-Pocket-0.3B 后,传播最广的两个数字是 173MB 和 350 token/s。前者是 INT4 部署包体积,后者是 iPhone 18 Pro 上的离线解码速度。但对准备把它接进 App 的开发者来说,这两个数字都不是预算表上的最终值。

173MB 是 INT4 的 MNN 部署包:171MB 权重,加上计算图、分词器和配置。它决定安装包或按需下载模块的下限,不是运行时内存。换成 BF16 的 safetensors 走 Transformers,权重文件是 723MB,存储和内存都要另算。在这个 INT4 包上,512 token 上下文下,iPad Pro M5 的 Metal 后端能跑到 466 token/s。MNN 技术报告

真正要留在内存里的是另一回事。官方在 iPad Pro M5、Metal 后端、512 token 上下文的受控测试里,推理峰值内存比加载前多 228MB。 官方给整机应用定的峰值预算是 300MB,解码目标是 200 token/s。也就是说,173MB 只是文件大小;按这个口径、短上下文算,开发者要预留的是 230MB 左右的峰值水位,而不是 173MB。MNN 技术报告

上下文一拉长,账还会变。模型 28 层、2 个 KV head、head_dim 64;按 FP16 的 KV cache 粗算,每 token 约 14KB,512 token 约 7MB,32K token 就是 450MB 左右。官方说支持 32K,但 228MB 的峰值是 512 token 口径;如果运行时对 KV cache 做了低精度压缩,这个数会小一些,但长上下文仍然不能照抄 228MB。

算力也不是一个统一的数字。官方在 512 token 上下文下的对照表里,iPad Pro M5 的 Metal 是 466 token/s,CPU 是 231。骁龙 8 Gen 5 用 CPU 是 251,用 OpenCL 反而只有 138。 同一颗芯片,GPU 后端不一定比 CPU 快;能不能达标,取决于后端和机型,不是跑分海报。iPhone 18 Pro 的 350 token/s 是官方演示里的数字。 技术报告的受控表里并没有把这台机器列进去。MNN 技术报告虎嗅

除了芯片,还有运行时。MNN 包面向 Android、iOS 和 HarmonyOS;官方测试用 MNN 3.6.2、4 个 CPU 线程、低精度和低内存模式,INT4 量化。想用 NPU,可能还要做后端专用的图转换、校准和编译产物,不是打开开关就能跑。

如果嫌 200 token/s 不够,可以加 DFlash2 草稿模型,但它是另一笔账:3 层、BF16 约 130MB。 iPad 上平均 1.65 倍,骁龙 8 Gen 5 上 1.15 倍;数学和代码受益更多,聊天负载的增益明显更小。多花的 130MB 买不买得到流畅,要看你的任务和设备。Hugging Face

所以,集成这枚 0.3B 模型的硬件清单,不是一句“173MB、能离线跑”。按官方受控数据:存储留 173MB(加草稿模型约 303MB);内存按 512 token 上下文留 230MB 左右峰值,长上下文另算;算力目标 200 token/s,但要在目标机型和后端上实测;运行时用匹配的 MNN 版本,4 线程起步,GPU 后端按需编译。模型确实小了,但适配没有变简单。

内容由AI生成
0
扫一下,分享更方便,购买更轻松
0评论

当前文章无评论,是时候发表评论了
提示信息

取消
确认
评论举报

最新文章 热门文章