跳到正文

借助 Google Play 服务中的 LiteRT 实现更小的应用体积与更快的 GPU 推理

了解 Google Play 服务中的 LiteRT 如何借助 ML Drift 和 CompiledModel API,实现更小的 Android 应用体积以及约 1.4 倍的 GPU 推理速度提升。

本文目录文章开头

2026年10月28日

Google Play 服务中的 LiteRT 是 Android 的自定义模型设备端推理运行时,每天在数十亿台设备上处理超过一万亿次推理。今天,它迎来了迄今最大的升级:GPU 推理速度比传统 GPU 委托快约 1.4 倍,由 ML Drift 提供支持,并可通过新的 CompiledModel API 使用——这是 LiteRT 对传统 Interpreter API 的现代化替代。

在此之前,要利用这一更快的 GPU 技术栈,需要将 LiteRT 打包到您的应用中。在我们的测试中,改用 Google Play 服务中 LiteRT 的应用体积小约 8 MB,下载更快,对用户设备的负担也更轻,因为该运行时(包括 GPU 加速器)随 Play 服务一次性发布,而不是内置于每个应用中。目前有超过 10 万个 Android 应用捆绑了自己的 LiteRT 或 TensorFlow Lite 副本,因此随着应用的切换,节省的总量会迅速累积。

如果您的 Android 应用在 CPU 或 GPU 上运行自定义 ML 模型,我们建议您改用 Google Play 服务中的 LiteRT。您可以在 Google AI Edge Gallery 应用中看到它的实际运行效果,其中 Scrapbook 功能的图像分割就是在 Google Play 服务中的 LiteRT 上运行的。

为什么使用 Google Play 服务中的 LiteRT

采用 Google Play 服务中 LiteRT 的开发者可以立即获得以下好处:

  • 应用更小,可用存储空间更多:由于不会将 ML 运行时捆绑到您的 APK 中,您的应用体积更小、下载更快。此外,由于应用共享同一个运行时,每有一个应用切换过来,节省的存储和内存就会增加。
  • 自动更新:性能改进、错误修复和安全补丁通过 Play 服务以分阶段方式推出,可以及早发现特定设备的问题,而无需您发布应用更新。
  • 更多运行场所:Play 服务中的 LiteRT 可在 Android 7(API 级别 24)及更高版本的手机上运行,现在还可用于 Wear OS 4+ 和 Android Automotive OS(Android 11+)。
  • 大规模验证:ML Kit 的视觉和文本 API(如 主体分割 和 文档扫描)已经在数十亿台 Android 设备上大规模使用 Google Play 服务中的 LiteRT 提供支持。通过采用 Google Play 服务中的 LiteRT,您在自己的应用中使用的也是同一套经过实战检验的基础设施。

CompiledModel API


LiteRT 是 TensorFlow Lite 的演进版本。它保留了您所依赖的相同 .tflite 模型格式,并新增了 CompiledModel API,使跨碎片化硬件的加速变得可靠:

  • 更简单:CPU 和 GPU 加速使用同一套工作流程,而不是为每种加速器使用不同的委托和设置路径。LiteRT 在可用时使用 OpenCL,否则使用 OpenGL。如果您同时请求 GPU 和 CPU,在没有可用 GPU 的设备上它会回退到 CPU。
  • 更快:由 ML Drift 提供支持,LiteRT 最新的开源 GPU 引擎已由 Google 应用在数百万台设备上每日使用。GPU 推理速度比传统 TensorFlow Lite GPU 委托快约 1.4 倍。
  • 可移植:跨平台支持,同一个 .tflite 模型可在 Android、iOS、桌面和 Web 上运行。
  • 灵活:传统 Interpreter API 在 CPU 上仍然受支持,因此您可以分阶段迁移。

入门与升级

无论您是全新开始还是从捆绑的 LiteRT 切换过来,使用 Google Play 服务中的 LiteRT 只需几行代码:

  1. 添加 com.google.android.gms:play-services-litert:17.0.0(或更高版本)。如果您目前捆绑了 LiteRT,请移除 litert 依赖项。
  2. 从 Play 服务获取 LiteRT 环境:
val liteRtEnvironment =
    LiteRt.initialize(
        context,
        LiteRtDsl.initializationOptions { setEnableGpu(true) }
    ).await()
  1. 在创建 CompiledModel 时传入 LiteRT environment。其余代码保持不变。

如果你已经在 Google Play 服务中使用旧版 Interpreter API,切换到 play-services-litert 后,你的 Interpreter 代码在 CPU 上仍可继续运行。若要在 GPU 上运行,请迁移到 CompiledModel API。

让你的编码代理来完成这项工作。在 Agent Mode 中,Android Studio 的新 LiteRT 技能可自动完成向 Google Play 服务中 LiteRT 和 CompiledModel API 的迁移。你可以要求它“将我的 TFLite 代码迁移到 CompiledModel”,或者输入 @litert-runtime,它会将你的应用切换到 play-services-litert、重写你的 Interpreter 调用,并设置 GPU 加速及 CPU 回退。它还可以搭建一个新的 LiteRT 应用框架。请将其视为一个强有力的初稿:请审查差异、构建,并在真实设备上比较输出结果。在 GitHub 上获取该技能。

正在从旧版 API 升级?旧版 GPU 委托和自定义委托 API 已弃用,改用 CompiledModel GPU 加速以及 Compiler Plugin 和 Dispatch API,NNAPI 将从 2027 年起移除。旧版 SDK 现在仅接收关键安全修复。你已发布的应用仍可继续运行,但请现在就规划迁移到 CompiledModel API:使用已弃用 API 的代码将无法针对最新 SDK 进行编译,而停留在旧版 SDK 上可能会随着其他依赖项的更新而产生冲突。详情请参阅发行说明。

后续计划

展望未来,Google Play 服务中的 LiteRT 是我们在 Android 上运行你自己的特定任务模型的基础,支持 CPU 和 GPU 加速。

  • LiteRT 将持续获得定期更新,包括更好的 GPU 加速和更广泛的模型支持。
  • Play 服务中的 NPU 支持正在积极开发中。

准备开始?

我们迫不及待想看到你构建的作品。

阅读显示设置

调整正文排版

当前浏览器记住选择,应用于文章正文。手机上正文宽度以屏幕可用空间为限。

图表完整性提示

普通文章遇到图表保存问题时显示提示。