在端侧跑大模型,推理速度一直是最大的拦路虎。Google 最新发布的 LiteRT-LM 框架引入了对 Gemma 4 Multi-Token Prediction(MTP)drafter 的原生支持,在本地推理场景下最高可达 2.2 倍加速。与此同时,框架的 API 覆盖面也在拓宽——新增了 Swift 和 JavaScript 绑定,不再局限于 Kotlin 和 C++。
多token预测:用"猜下一步"换速度
传统自回归推理每次只生成一个 token,逐个解码,速度受限于模型每步的计算量。MTP 的思路是:让一个轻量 drafter 模型同时预测接下来多个 token,作为"草稿"提交给主模型验证。草稿命中则直接采纳,跳过主模型对这些位置的完整前向计算;未命中则回退到主模型重新生成。
这本质上是一种 speculative decoding 的变体,但关键区别在于——Gemma 4 的 MTP drafter 不是外部拼接的小模型,而是与主模型联合训练的,草稿质量更高,命中率自然也更高。LiteRT-LM 这次做的是把这个 drafter 原生集成进推理引擎,不需要开发者手动编排 draft-verify 流程。
2.2 倍加速是上限值,实际收益取决于任务类型和草稿命中率。短上下文、高确定性输出(如代码补全、格式化文本)场景收益最大;开放式创意生成因为草稿命中率低,加速幅度会收窄。
API 扩展:从 Android 到全平台
LiteRT-LM 此前只提供 Kotlin(面向 Android)和 C++(面向嵌入式/高性能场景)接口。这次新增的 Swift API 直接瞄准 iOS/macOS 生态,JavaScript API 则覆盖 Web 和 Node.js 环境。
这意味着同一套 MTP 加速逻辑,可以在 Android 手机、iPhone、浏览器和服务器端统一使用,模型文件和加速策略跨平台一致,迁移成本大幅降低。
实践:在 Android 上启用 MTP 加速推理
下面是一个可直接运行的 Kotlin 示例,展示如何在 Android 项目中使用 LiteRT-LM 加载带 MTP drafter 的 Gemma 4 模型并执行推理。
首先,在 build.gradle.kts 中添加依赖:
dependencies {
// LiteRT-LM 核心 + MTP 支持
implementation("com.google.ai.litert:litert-lm:0.3.0")
// Gemma 4 模型任务库(含 MTP drafter 配置)
implementation("com.google.ai.litert:litert-lm-gemma:0.3.0")
}
推理代码:
import com.google.ai.litert.lm.LiteRTLM
import com.google.ai.litert.lm.Gemma4MTPConfig
fun runMTPInference() {
// 1. 加载模型——指定 MTP drafter 配置
val mtpConfig = Gemma4MTPConfig(
draftTokenCount = 5, // drafter 每步预测的草稿 token 数
temperature = 0.7f,
topK = 40
)
val engine = LiteRTLM.createEngine(
modelPath = "/data/local/tmp/gemma4-1b-it-mtp.task", // 含 drafter 的任务包
config = mtpConfig
)
// 2. 创建会话并推理
val session = engine.createSession()
val prompt = "Write a Python function that reverses a linked list:"
val result = session.generate(prompt, maxTokens = 256)
println("输出: ${result.text}")
println("推理耗时: ${result.latencyMs} ms")
println("草稿命中率: ${result.draftAcceptRate}") // MTP 特有指标
// 3. 释放资源
session.close()
engine.close()
}
几个需要注意的点:
draftTokenCount设得越高,单步草稿覆盖范围越大,但命中率可能下降。5 是一个经过调优的起步值,可以根据实际输出观察draftAcceptRate再调整。- 模型文件必须是包含 MTP drafter 的
.task包,普通 Gemma 4 权重无法直接启用 MTP。 result.draftAcceptRate是关键诊断指标——如果低于 60%,加速效果会明显打折,这时应考虑降低draftTokenCount或换用更确定性的 prompt。
在 Web 端用 JavaScript 跑 MTP 推理
新增的 JavaScript API 让浏览器端也能享受同样的加速。以下是一个在 Node.js 环境下的示例:
import { LiteRTLM, Gemma4MTPConfig } from "@google/litert-lm";
async function runMTPInference() {
const mtpConfig = new Gemma4MTPConfig({
draftTokenCount: 5,
temperature: 0.7,
topK: 40,
});
const engine = await LiteRTLM.createEngine(
"./models/gemma4-1b-it-mtp.task",
mtpConfig
);
const session = engine.createSession();
const result = await session.generate(
"Explain the difference between speculative decoding and traditional autoregressive decoding:",
{ maxTokens: 200 }
);
console.log("输出:", result.text);
console.log("耗时:", result.latencyMs, "ms");
console.log("草稿命中率:", result.draftAcceptRate);
session.close();
engine.close();
}
runMTPInference();
浏览器端使用时,模型文件需要通过 HTTP 加载,建议先下载到本地或 CDN,避免首次加载耗时过长。
iOS 端 Swift 调用示例
import LiteRTLM
func runMTPInference() {
let mtpConfig = Gemma4MTPConfig(
draftTokenCount: 5,
temperature: 0.7,
topK: 40
)
let engine = try! LiteRTLM.createEngine(
modelPath: Bundle.main.path(forResource: "gemma4-1b-it-mtp", ofType: "task")!,
config: mtpConfig
)
let session = engine.createSession()
let result = try! session.generate(
prompt: "Summarize the key idea of multi-token prediction in one sentence:",
maxTokens: 64
)
print("输出: \(result.text)")
print("耗时: \(result.latencyMs) ms")
print("草稿命中率: \(result.draftAcceptRate)")
session.close()
engine.close()
}
加速效果的现实边界
2.2 倍是理想条件下的数据,实际部署时需要考虑几个因素:
| 因素 | 对加速的影响 |
|---|---|
| 输出确定性高(代码、结构化文本) | 草稿命中率高,加速接近上限 |
| 输出开放性强(创意写作、对话) | 命中率下降,加速可能只有 1.3–1.5 倍 |
| 模型规模增大 | drafter 相对开销占比降低,加速比例更稳定 |
| 硬件算力受限(低端手机) | 主模型和 drafter 争抢资源,加速效果被压缩 |
此外,MTP drafter 本身有额外内存占用(大约增加 10–15% 的模型体积),在内存极度紧张的嵌入式设备上需要权衡。
上手建议
- 先跑基准:用不带 MTP 的同一模型测量原始推理速度和内存占用,作为对照。
- 观察命中率:启用 MTP 后,重点看
draftAcceptRate。低于 50% 时加速意义有限,应调整draftTokenCount或优化 prompt 结构。 - 选对场景:代码补全、摘要生成、格式化输出是 MTP 的甜区;开放式聊天收益较小。
- 跨平台统一模型文件:
.task包在 Android、iOS、Web 通用,避免为不同平台维护多份权重。 - 留意包体积:含 drafter 的模型比纯主模型大,如果应用对安装包大小敏感,考虑按需下载而非内置。
LiteRT-LM 把 MTP 从研究概念推到了可直接调用的工程层面,配合多语言 API 的扩展,端侧大模型推理的实用性又往前走了一步。对于已经在端侧部署 Gemma 的团队,这是一个值得立刻测试的升级路径。