Android 版 LiteRT

借助 LiteRT,您可以在 Android 应用中运行 TensorFlow、PyTorch 和 JAX 模型。LiteRT 系统提供预构建且可自定义的执行环境,可在 Android 上快速高效地运行模型,包括硬件加速选项。

如需查看使用 LiteRT 的 Android 应用示例,请参阅 LiteRT 示例代码库。

机器学习模型

LiteRT 使用 TensorFlow、PyTorch 和 JAX 模型,这些模型会转换为更小、更便携、更高效的机器学习模型格式。您可以在 Android 上使用预构建模型搭配 LiteRT,也可以构建自己的模型并将其转换为 LiteRT 格式。

本页面讨论了如何使用已构建的机器学习模型,但未涵盖模型的构建、训练、测试或转换。如需详细了解如何为 LiteRT 选择、修改、构建和转换机器学习模型,请参阅模型页面。

在 Android 上运行模型

在 Android 应用内运行的 LiteRT 模型会接收数据、处理数据,并根据模型的逻辑生成预测结果。LiteRT 模型需要特殊的运行时环境才能执行,并且传递给模型的数据必须采用特定的数据格式,称为张量。当模型处理数据(称为运行推理)时,它会生成预测结果作为新的张量,并将其传递给 Android 应用,以便该应用采取相应行动,例如向用户显示结果或执行其他业务逻辑。

Android 应用中 LiteRT 模型的功能执行流程

图 1. Android 应用中 LiteRT 模型的功能执行流程。

在功能设计层面,您的 Android 应用需要以下元素才能运行 LiteRT 模型:

  • 用于执行模型的 LiteRT 运行时环境
  • 用于将数据转换为张量的模型输入处理程序
  • 模型输出处理程序,用于接收输出结果张量并将其解读为预测结果

以下部分介绍了 LiteRT 库和工具如何提供这些功能元素。

使用 LiteRT 构建应用

本部分介绍了在 Android 应用中实现 LiteRT 的推荐最常见路径。您应重点关注运行时环境开发库部分。如果您开发了自定义模型,请务必查看高级开发途径部分。

运行时环境选项

您可以通过多种方式为 Android 应用中的模型执行启用运行时环境。以下是首选选项:

一般来说,您应使用 Google Play 服务提供的运行时环境,因为与标准环境相比,它更节省空间,并且会动态加载,从而使应用大小更小。Google Play 服务还会自动使用最新的稳定版 LiteRT 运行时,让您随着时间的推移获得更多功能并提升性能。如果您在不包含 Google Play 服务的设备上提供应用,或者需要密切管理 ML 运行时环境,则应使用标准 LiteRT 运行时。此选项会将额外的代码捆绑到您的应用中,让您可以更好地控制应用中的 ML 运行时,但代价是应用下载大小会增加。

您可以通过将 LiteRT 开发库添加到应用开发环境,在 Android 应用中访问这些运行时环境。如需了解如何在应用中使用标准运行时环境,请参阅下一部分。

您可以使用 Google Play 服务访问 Interpreter API。您可以在 Android 应用中使用 LiteRT 核心支持库。如需详细了解如何使用 LiteRT 库和运行时环境进行编程,请参阅 Android 开发工具

获取模型

在 Android 应用中运行模型需要使用 LiteRT 格式的模型。您可以使用预构建的模型,也可以自行构建模型并将其转换为 Lite 格式。如需详细了解如何为 Android 应用获取模型,请参阅 LiteRT 模型页面。

处理输入数据

您传递到机器学习模型中的任何数据都必须是具有特定数据结构的张量,通常称为张量的“形状”。如需使用模型处理数据,您的应用代码必须将数据从其原生格式(例如图片、文本或音频数据)转换为模型所需的张量形状。

运行推理

通过模型处理数据以生成预测结果的过程称为运行推理。在 Android 应用中运行推理需要 LiteRT 运行时环境模型输入数据

模型在特定设备上生成推理的速度取决于处理的数据量、模型的复杂程度以及可用的计算资源(例如内存和 CPU)或称为加速器的专用处理器。机器学习模型可以在图形处理单元 (GPU) 和张量处理单元 (TPU) 等专用处理器上更快地运行,方法是使用名为委托的 LiteRT 硬件驱动程序。如需详细了解委托和模型处理的硬件加速,请参阅硬件加速概览

处理输出结果

模型会以张量的形式生成预测结果,您的 Android 应用必须通过采取行动或向用户显示结果来处理这些张量。模型输出结果可以很简单,例如对于图片分类,结果只是一个对应于单个结果的数字(0 = 狗,1 = 猫,2 = 鸟);也可以非常复杂,例如对于图片中的多个分类对象,结果是多个边界框,并附带介于 0 到 1 之间的预测置信度评分。

高级开发途径

使用更复杂和自定义的 LiteRT 模型时,您可能需要使用比上述方法更高级的开发方法。以下各部分将介绍在 Android 应用中执行模型并针对 LiteRT 开发模型的高级技巧。

高级运行时环境

除了 LiteRT 的标准运行时和 Google Play 服务运行时环境之外,您还可以将其他运行时环境用于 Android 应用。如果您使用的机器学习模型包含 LiteRT 的标准运行时环境不支持的机器学习操作,则最有可能需要使用这些环境。

借助 LiteRT 灵活的运行时,您可以添加模型所需的特定运算符。作为运行模型的高级选项,您可以为 Android 构建 LiteRT,以包含运行 TensorFlow 机器学习模型所需的操作符和其他功能。如需了解详情,请参阅为 Android 构建 LiteRT

C 和 C++ API

LiteRT 还提供了一个 API,用于使用 C 和 C++ 运行模型。如果您的应用使用 Android NDK,则应考虑使用此 API。如果您希望能够在多个平台之间共享代码,也可以考虑使用此 API。如需详细了解此开发选项,请参阅开发工具页面。

基于服务器的模型执行

一般来说,您应该在 Android 设备上运行应用中的模型,以便为用户提供更低的延迟时间和更好的数据隐私保护。不过,在某些情况下,在云服务器上运行模型(而非在设备上运行)是更好的解决方案。例如,如果您有一个大型模型,但该模型无法轻松压缩到适合用户 Android 设备的大小,或者无法在这些设备上以合理的性能执行。如果您最看重的是模型在各种设备上的一致性能,那么此方法也可能是您的首选解决方案。

Google Cloud 提供了一整套用于运行 AI 模型的服务。如需了解详情,请参阅 Google Cloud 的 AI 和机器学习产品页面。

自定义模型开发和优化

更高级的开发途径可能包括开发自定义机器学习模型,以及针对在 Android 设备上使用这些模型进行优化。如果您计划构建自定义模型,请务必考虑对模型应用量化技术,以降低内存和处理费用。如需详细了解如何构建高性能模型以搭配 LiteRT 使用,请参阅“模型”部分中的性能最佳实践

支持的 Android 版本

LiteRT 版本 状态 最低 SDK 级别 最低 NDK 级别(如果使用) 发行日期
v1.2.0 ✅ 有效 21 (Android 5 Lollipop) r26a 2025-03-13

重要提示请及时更新依赖项,以确保与最新功能和安全更新保持兼容。