淘宝 MNN-Pocket-0.3B:iPhone 350 token/s 实测

淘宝 MNN 团队开源的 MNN-Pocket-0.3B 是一个约 3 亿参数的稠密语言模型,INT4 部署体积 173 MB,在 iPad Pro M5 上解码吞吐达 466 token/s,在 iPhone 18 Pro 上真机离线跑出 350 token/s,而同尺寸的 Qwen3-0.6B 部署体积是它的近两倍。11 项基准平均分 50.00,超过 MiniCPM4-0.5B 的 46.81 和 Qwen3-0.6B 的 44.28。更值得看的是它在淘宝电商评论情感抽取任务上拿到 80.15 的 F1,比 1.7B 的 Qwen3-1.7B 还高 1.56 分。这是一份把”端侧模型到底能做到什么程度”用实测数据讲清楚的技术报告。

为什么 0.3B 这个尺寸值得单独做

淘宝和天猫的技术团队把目标写得很直接:一个综合类手机应用里,大模型不能独占算力、内存和带宽,它要和页面、图片、视频这些业务模块抢资源,还要在持续调用和多任务并发下兼顾响应时延、功耗与温升。基于这个前提,MNN 团队定义了四条硬约束:解码吞吐超过 200 token/s,峰值内存低于 300 MB,典型推理负载下单次增量能耗不超过参考手机电池能量的万分之一,以及在指定业务场景达到 8B 级模型的效果。

这四条约束直接决定了模型结构的搜索空间。团队在 iPad Pro M5 上覆盖约 50M 到 1.3B 的稠密模型配置逐一测试,峰值内存低于 300 MB 且解码吞吐高于 200 token/s 的最大候选规模落在约 300M。随后在相近参数预算内联合调整深度、隐藏层宽度与前馈网络尺寸:16 层提到 28 层带来了明显的评测分提升,但继续加到 36 层评测均分不再上升,解码吞吐反而从 355 token/s 掉到 323 token/s。最终定型为 28 层架构。

参数 取值
层数 28
隐藏层维度 896
注意力头数 14
键值头数 2(分组查询注意力)
单头维度 64
前馈网络类型 SwiGLU,尺寸 2560
词表规模 65,536
嵌入层与输出层 权重绑定
最大上下文 32,768 token

词表从 151K 砍到 64K 意味着什么

对 0.3B 这种规模,词嵌入和输出层会吃掉相当比例的参数,词表大小直接影响存储成本与逐 token 的输出投影开销。团队基于 Qwen3 分词器做依赖感知剪枝,把词表从约 151K 精简到 64K,词条数量缩减约 57%。剪枝过程用覆盖中英文、代码、数学与指令格式的语料筛选词条,同时保留特殊 token、字节回退 token 和必要的 BPE 合并依赖。

词表变小带来的直接收益是内存与体积。同样的 512 token 上下文测试条件下,MNN-Pocket-0.3B 的 INT4 MNN 部署文件为 173 MB,Qwen3-0.6B 是 340 MB,前者少了约 49%;峰值 Metal 驻留内存增量分别是 228 MB 和 427 MB,少了约 47%。对手机应用来说,这两个数字比跑分更能决定能不能塞进一个已经装了很多东西的 App 里。

11 项基准:0.3B 打赢 0.5B 和 0.6B

评测覆盖知识、推理、数学、代码与指令遵循五个维度共 11 项任务,基线包括 Gemma-3-270M、ERNIE-4.5-0.3B、LFM2.5-350M、SmolLM2-360M、Hunyuan-0.5B、MiniCPM4-0.5B 与 Qwen3-0.6B,参数跨度从 0.27B 到 0.6B。

模型 参数量 11 项平均分
MNN-Pocket-0.3B 0.3B 50.00
MNN-Pocket-0.3B-INT4 0.3B 49.59
MiniCPM4-0.5B 0.5B 46.81
Qwen3-0.6B 0.6B 44.28
ERNIE-4.5-0.3B 0.3B 31.99
Hunyuan-0.5B 0.5B 31.22
LFM2.5-350M 0.35B 31.28
SmolLM2-360M 0.36B 18.43
Gemma-3-270M 0.27B 6.42

指令遵循是它最突出的一项。英文 IFEval 得分 73.20,中文 IFEval-zh 得分 74.59,都是对比模型中的最高分,中文数学 MGSM-zh 得 51.20,代码生成 HumanEval 得 53.66。INT4 版本平均 49.59,只比 BF16 低 0.41 分,说明量化感知训练基本保住了浮点性能。对比 小米开源 Xiaomi-OCR-0 走 0.8B 参数拿 95.24 分文档解析那条路线可以发现,端侧小模型竞争的关键不在参数堆料,而在场景对齐。

多教师在线策略蒸馏带来了多大增益

后训练分三段:指令微调、多教师在线策略蒸馏(MOPD)、量化感知训练。SFT 阶段用了约 316 万条样本,团队开发的 SFT Loop Engine 通过 Agent 编排训练、评测与数据改进形成闭环,把失败回答映射到细粒度任务类别,再决定下一轮补充哪些类别、语言与样本数量,合成环节还会执行去重与泄漏检查。

真正拉开差距的是 MOPD。四条经过领域强化学习优化的教师路线分别覆盖知识、指令遵循、数学与代码,按样本所属领域选择教师,共同监督一个学生模型。On-Policy 的关键在于由学生先生成,教师读取学生实际产生的上下文来提供 token 分布监督。效果是 11 项评测平均分从 35.79 提升到 50.00,10 项提升 1 项持平,最大增幅在 MGSM-zh(+28.00)、IFEval-zh(+25.17)和 MATH500(+22.40)。多教师只在训练期存在,部署端仍是一个 0.3B 学生模型,这是它能把能力塞进小体积的根本原因。

真机吞吐与内存:跑在 iPhone 和骁龙上是什么样

端侧效率评测在 iPad Pro M5 与骁龙 8 Gen 5 上进行,跑 MNN 3.6.2、INT4 量化,四线程,预热一次测量五次取中位数,prefill 与 decode 独立测量。

设备与后端 Prefill (token/s) Decode (token/s)
iPad Pro M5 / Metal 8,721 466
iPad Pro M5 / CPU 2,228 231
骁龙 8 Gen 5 / OpenCL 3,403 138
骁龙 8 Gen 5 / CPU 930 251

对照同设备同后端的其它模型,MNN-Pocket-0.3B 在 iPad Pro M5 Metal 后端的 466 token/s 解码吞吐高于 Hunyuan-0.5B 的 262 和 Qwen3-0.6B 的 286,也高于 MiniCPM4-0.5B 的 357。在骁龙 8 Gen 5 的 CPU 后端则是 251 token/s,同样领先同组的 137 到 199 区间。引擎层面的做法是针对 Arm 点积与矩阵指令定制低比特内核,为高通 Hexagon 提供专用后端,并做 QKV、FFN 算子融合与 GPU 命令复用。功耗方面,团队在一加 13(骁龙 8 至尊版)上以 CPU 四线程、输入 1024 输出 128 的负载测试,平均增量能耗约 2.7J 每轮,100 次同等负载约占 6000mAh 电池总电量的 0.3%。

投机解码与两个真实业务落地

为了进一步提升 batch size 为 1 的解码效率,团队把权重量化与 DFlash2 结合,草稿模型一次并行提出一块 token,主模型单次前向完成校验。默认块大小为 8,在 iPad Pro M5 上代码类负载的自回归吞吐是 5.73 token/s,投机解码后 895 token/s,加速 2.06 倍;数学类 435 提升到 709,1.63 倍;对话类 3.51 提升到 547,1.26 倍,平均加速 1.65 倍。官方另提供了 DFlash2 草稿模型、Dec 决策头版本等独立权重供集成。

两个业务场景的验证更说明问题。电商评论情感抽取任务要求同时正确输出方面词、观点词、类别与极性四个字段才算命中,MNN-Pocket-0.3B 拿到 80.15 的 F1,排在 Qwen3-1.7B 的 78.59、Qwen3-0.6B 的 77.47 之前,参数量不到次名的五分之一。端到端语音助手系统把流式 ASR、语音活动检测、语义轮次结束检测、流式生成、增量 TTS 与打断支持全部跑在本地,实测首字延迟 P50/P95 为 568/585 毫秒,首音延迟 1,055/1,113 毫秒,VoiceBench 九项任务综合分 45.44,高于 Qwen3-0.6B 的 41.15。

怎么上手用起来

官方开放了多个阶段的权重供不同用途选择:MNN-Pocket-0.3B-Base 用于继续预训练与领域适配,SFT 版用于后训练研究与蒸馏消融,通用版用于指令调用与业务任务适配,MNNW4A16QAT 是配合 MNN 推理引擎的端侧部署版本,DFlash2 是投机解码草稿模型,Dec 版通过决策头完成候选选择类任务。MNN 推理引擎已积累 16K GitHub Star,MNN-LLM 支持 200 多款大模型,相关模型累计下载超过百万次。

如果你关心的是端侧推理引擎本身的选型,可以对照 高通 AI Hub 中国版开放 230 个预优化模型与 GenieX 端侧运行时 这条路线;想了解小模型权重与算子的另一种优化思路,qgpu 把 GPU 编进 Qwen3.5-2B 权重 那篇提到 49 个 kernel 全对;而 百度文心 5.5 Flash Base 开源 280B 激活 14B 代表的是另一端的路线,参数规模比 MNN-Pocket-0.3B 高了三个数量级。

局限与适用边界

技术报告本身列出的局限很明确:知识密集型任务与复杂推理仍是短板,部署效率在不同设备与负载上差异明显,评测主要覆盖中英文与有限的应用和硬件场景。MNN-Pocket-0.3B 的 GSM8K 是 54.36、Qwen3-0.6B 是 45.49,但在 C-Eval 上是 38.86 对 44.06,MMLU-Redux 上是 44.00 对 51.63,知识类任务它并不占优。它的价值路径是”小体积 + 强指令遵循 + 场景微调”,而不是通用能力全面领先。

常见问题

MNN-Pocket-0.3B 能跑在手机上吗,具体多快

可以。MNN-Pocket-0.3B 在 iPhone 18 Pro 上通过 MNN 推理引擎完全离线运行,平均解码速度约 350 token/s,INT4 部署文件 173 MB。骁龙 8 Gen 5 上 CPU 后端解码 251 token/s,OpenCL 后端 138 token/s。

它和 Qwen3-0.6B、Gemma-3-270M 比怎么样

综合能力更强。11 项基准平均分 50.00,高于 Qwen3-0.6B 的 44.28 和 MiniCPM4-0.5B 的 46.81,参数只有 Qwen3-0.6B 的一半。部署侧也更轻,173 MB 对 340 MB,峰值内存增量 228 MB 对 427 MB。知识类任务如 C-Eval、MMLU-Redux 它仍落后于 Qwen3-0.6B。

开发者怎么获取模型并集成

六个版本权重都在 GitHub 的 alibaba/mnn 仓库与 ModelScope、Hugging Face 上开放,包含 Base、SFT、通用版、INT4 部署版、DFlash2 草稿版与 Dec 决策头版。技术报告 PDF 同仓库提供,完整记录了训练超参、评测配置与各平台吞吐数据。

小结

MNN-Pocket-0.3B 把端侧小模型的三个核心指标同时推到了可用区间:173 MB 的部署体积、350 到 466 token/s 的真机解码吞吐、50.00 的 11 项基准平均分。多教师在线策略蒸馏与量化感知训练是它能在 0.3B 尺寸上压过 0.6B 模型的直接原因,而 64K 词表与硬件感知架构搜索则解释了它为什么能塞进手机应用共享的那点内存预算。对于想把模型放进 App 而不是放进机房的团队,这份报告提供了少见的一手实测数据。

相关阅读