你在安卓手机上跑本地模型,回复一个字一个字往外蹦。想早点拿到同样的答案,又不想换成更小的模型,也不想研究什么草稿模型。Off Grid AI Mobile(OGAM)现在支持 MTP,也就是多词元预测(multi-token prediction)。为它构建的模型会提前猜出后面几个词,在一次前向计算里全部校验,只保留模型本来就会写出的那些词。你只需要打开一个开关。如果模型需要额外文件,应用会替你下载。
先说清楚前提条件,缺一样都跑不起来:
- 手机内存要够跑你用的模型。Gemma 4 E4B是目录里带已发布 MTP 头的最小模型,标称最低6 GB内存;Gemma 4 12B 标称12 GB
- OGAM 版本0.0.116或更高。0.0.116 在开关背后加上了 MTP 头自动下载;当前版本 0.0.118 还会把 MTP 头和模型放在同一条进度条里一起下载。
- 一个能在 llama.cpp 上跑的 GGUF 聊天模型。MTP 不适用于 Gemma 4 的 LiteRT 版本,那些走的是谷歌的 LiteRT 引擎。
- 不需要账号,不需要付费。MTP 是免费应用的一部分。
普通模型每穿过一次权重只写一个词元。带 MTP 层的模型一次草拟几个词元,然后用一次前向计算把它们全部校验。通过校验的每一个词元,都恰好是模型自己本来会产出的那个词元,所以答案不会变,你只是少等了几轮计算。
有些模型把这些草稿层直接装在自己的 GGUF 文件里,另一些则以一个单独的小文件形式发布,叫 MTP 头。OGAM 的模型目录认得已发布的头:Gemma 4 E4B 约99 MB,Gemma 4 12B 约465 MB,Qwen 3.8 27B 约1.37 GB,并且无论你下载哪个量化版本,都会把头与对应模型匹配上。在安卓手机上,多数人能跑的是 Gemma 4 E4B;Gemma 4 12B 需要 12 GB 内存的手机,Qwen 3.8 27B 标称 32 GB。
第一步,找带 MTP 徽标的模型。打开 OGAM,点底栏的 Models,在模型卡片的徽标行开头找那个带快进图标的 MTP 徽标——它表示该模型有已发布的 MTP 头,开启后回复更快。读屏软件会把它读作“MTP:回复更快”。点模型下载即可。在 0.0.118 里,一次点击会在同一条进度条上下载模型、视觉文件和 MTP 头;对 Gemma 4 E4B 来说,就是 4.98 GB 的模型、0.99 GB 的视觉文件和 99 MB 的头。同一个徽标也会出现在聊天内的模型面板里,不用离开对话就能确认当前用的是哪个模型。如果你在 0.0.118 之前就下过模型,或者头下载失败过,不必重新下载模型:下次加载模型时,应用会在后台补下缺失的头,那一次加载不带 MTP,再下一次加载就会用上头。
第二步,打开投机解码(MTP)。点底栏 Settings,进 Model Settings(系统提示词、生成与性能),打开 Text Generation 一节,点 Advanced,找到 Speculative Decoding (MTP) 并设为 On。在聊天里也能做同样的事:点右上角的滑块图标,打开 TEXT GENERATION,进 Advanced,把同一项设为 On。两个入口改的是同一个设置。如果当前模型有已发布的头但手机上还没有,你一按 On 下载就开始,进度显示在开关下方,写着“Getting MTP head...”并带百分比;失败的话原地出现一个重试图标,点一次重试。
第三步,重新加载模型再聊。MTP 是在 llama.cpp 把模型构建进内存时设定的,所以要下次加载才生效,设置项上也标着“Requires model reload”。回到聊天,会有一条带警告图标的横幅提示设置已变,并给出重新加载的选项。点它,等模型加载完,发一条消息。之后改 Draft Tokens 也会出现同样的横幅。想看速度,就在同一个 Text Generation 一节里打开 Show Generation Details,每条回复会显示每秒词元数,方便和关掉 MTP 时对比。
如果模型文件自带 MTP 层,OGAM 会在聊天里主动提示,而不是等你自己去找设置。一张卡片写着“This model can reply faster”,说明模型一次草拟几个词元、一次计算完成校验,并提供“开启投机解码并重新加载模型”的按钮。点一下,应用一步完成开启和重载。点关闭图标可以收起卡片。没有草稿层的模型不会出现这张卡片,MTP 已开启后也不会再出现。
MTP 打开后,开关下方会出现 Draft Tokens 滑块,设定每步草拟多少个词元,范围 1 到 8,默认3,这也是 llama.cpp 自己的默认值。草稿更长,在模型猜得准时有帮助,猜不准时就是白做功。从 3 开始,只在实测速度支持你改的时候再改。
它做不到的事也得说清楚:
- 不是所有模型都能加速。只有文件里带 MTP 层、或有已发布 MTP 头的模型才能草拟。其他模型上,即使开关打开,应用也不会启用 MTP,因为把 MTP 传给没有草稿层的模型可能让引擎卡死。
- 长对话里第一个词可能更慢。开启 MTP 后,llama.rn 每一轮都会重新处理整个提示词,所以从第二条消息起,等到第一个词的时间会随对话变长而增加。这也是 MTP 默认关闭、以及“Use fastest settings”会把它关掉的原因。测完速度后如果你更想要它,自己再打开。
- 不适用于 LiteRT 模型、远程服务器和图像模型。
- MTP 头不是模型。从 0.0.117 起,只用于加速另一个模型的文件不再作为可加载的模型提供;如果你导入一个,应用会拒绝并提示“This file only speeds up another model. It cannot run on its own.”
顺带回答几个常见疑问。MTP 就是多词元预测,模型带着额外层去猜接下来的几个词元,主模型一次计算完成校验,猜对的留下,于是同样的回复用更少的轮次拿到。MTP 是投机解码的一种形式:经典投机解码用单独的小草稿模型,MTP 用的是与模型一起训练的草稿层,或在 GGUF 内,或在已发布的 MTP 头里。能用的手机,就是能在 OGAM 里跑带 MTP 层模型的任何安卓机,瓶颈是模型的内存需求。Gemma 4 支持 MTP 吗?GGUF 版本支持,Gemma 4 E4B 和 12B 的 MTP 头发布在 Unsloth 的 GGUF 构建旁边,OGAM 会随模型下载匹配的头;LiteRT 版本不用 MTP。MTP 需要联网吗?只在需要下载 MTP 头时联网一次,之后完全在手机上离线运行。
热门跟贴