LiteRT 是 Google 的设备端框架,用于在边缘平台上进行高性能机器学习和生成式 AI 部署,它使用高效的转换、运行时和优化。
最新发布的 LiteRT 2.x 引入了 CompiledModel API,这是一个旨在最大限度地提高硬件加速的现代运行时接口。虽然 Interpreter API(以前称为 TensorFlow Lite)仍然可用于实现向后兼容性,但对于希望在设备端 AI 应用中获得最先进性能的开发者来说,我们建议使用 CompiledModel API。
LiteRT 的主要功能
使用 LiteRT 简化开发
自动选择加速器,而不是显式创建委托。高效的 I/O 缓冲区处理和异步执行,可实现卓越的性能。 请参阅设备端推理文档。
一流的 GPU 性能
由 ML Drift 提供支持,现在支持 GPU API 上的机器学习模型和生成式 AI 模型。请参阅 GPU 加速文档。
统一的 NPU 加速
使用主要芯片组提供商提供的简化 NPU 访问权限来加速模型。请参阅 NPU 加速文档。
卓越的 LLM 支持
LiteRT 可在移动设备、桌面设备和 Web 平台上为生成式 AI 模型提供高性能部署。请参阅 生成式 AI 部署文档。
广泛的机器学习框架支持
LiteRT 支持从 PyTorch、TensorFlow 和 JAX 框架到 .tflite 或 .litertlm 格式的简化转换。请参阅
模型转换文档。
开始使用 CompiledModel API
对于经典机器学习模型,请参阅以下演示应用。
- 图像分割 Kotlin 应用:CPU/GPU/NPU 推理。
- 图像分割 C++ 应用:CPU/GPU/NPU 推理,并进行 异步 执行。
对于生成式 AI 模型,请参阅以下演示应用:
- EmbeddingGemma 语义相似度 C++ 应用: CPU/GPU/NPU 推理。
开发工作流程
LiteRT 完全在 Android、iOS、Web、IoT 和桌面设备/笔记本电脑上进行设备端推理。无论使用哪种设备,以下都是最常见的工作流程,其中包含指向进一步说明的链接。
确定最适合解决机器学习挑战的解决方案
在解决机器学习问题时,LiteRT 为用户提供了高度的灵活性和可自定义性,因此非常适合需要特定模型或专门实现的用户。对于寻求 即插即用解决方案的用户,他们可能更喜欢 MediaPipe Tasks, 后者为常见的机器学习任务(例如对象检测、 文本分类和 LLM 推理)提供了现成的 解决方案。

获取和准备模型
LiteRT 模型以名为
FlatBuffers 的高效可移植格式表示,该格式使用 .tflite
文件扩展名。
您可以通过以下方式获取 LiteRT 模型:
获取预训练模型 :适用于热门机器学习工作负载,例如图片分割、对象检测等。
最简单的方法是使用已采用
.tflite格式的 LiteRT 模型。这些模型不需要任何额外的转换步骤。模型类型 预训练模型来源 经典机器学习
(.tflite格式)访问 Kaggle 或 HuggingFace
例如 图像分割模型 和 示例应用生成式 AI
(.litertlm格式)LiteRT Hugging Face 页面
例如 Gemma 系列如果您选择不使用预训练模型,请将所选的 PyTorch、TensorFlow 或 JAX 模型转换 为 LiteRT 模型。[专业版用户]
模型框架 示例模型 转换工具 PyTorch Hugging Face
Torchvision链接 TensorFlow Kaggle 模型
Hugging Face链接 Jax Hugging Face 链接 编写 LLM 以使用 Generative API 进行进一步优化 [专业版用户]
我们的 Generative API 库提供了 PyTorch 内置构建块,用于使用适合移动设备的抽象来组合 Transformer 模型(例如 Gemma、TinyLlama 和 others),通过这些抽象,我们可以保证转换,并在我们的移动运行时 LiteRT 上执行高性能操作。请参阅 Generative API 文档。
优化 [专业版用户]
AI Edge Quantizer 是一款面向高级开发者的工具,用于量化转换后的 LiteRT 模型。它旨在帮助高级用户努力在资源密集型模型(例如生成式 AI 模型)上实现最佳性能。
如需了解详情,请参阅 AI Edge Quantizer 文档。
将模型集成到边缘平台上的应用中
借助 LiteRT,您可以在 Android、iOS、Web、桌面设备和 IoT 平台上完全在设备端以高性能运行机器学习模型。
请使用以下指南在您偏好的平台上集成 LiteRT 模型:
| 支持的平台 | 支持的设备 | 支持的 API |
|---|---|---|
| 在 Android 上运行 | Android 移动设备 | C++/Kotlin |
| 在 iOS/macOS 上运行 | iOS 移动设备、Macbook | C++/Swift |
| 使用 LiteRT.js 在 Web 上运行 | 安装了 Chrome、Firefox 或 Safari 的设备 | JavaScript |
| 在 Linux 上运行 | Linux 工作站或基于 Linux 的 IoT 设备 | C++/Python |
| 在 Windows 上运行 | Windows 工作站或笔记本电脑 | C++/Python |
| 在 IoT 上运行 | 嵌入式设备 | C++ |
以下代码段展示了 Kotlin 和 C++ 中的基本实现。
Kotlin
// Load model and initialize runtime
val compiledModel = CompiledModel.create(
"/path/to/mymodel.tflite",
CompiledModel.Options(Accelerator.CPU))
// Preallocate input/output buffers
val inputBuffers = compiledModel.createInputBuffers()
val outputBuffers = compiledModel.createOutputBuffers()
// Fill the input buffer
inputBuffers.get(0).writeFloat(input0)
inputBuffers.get(1).writeFloat(input1)
// Invoke
compiledModel.run(inputBuffers, outputBuffers)
// Read the output
val output = outputBuffers.get(0).readFloat()
C++
// Load model and initialize runtime
LITERT_ASSIGN_OR_RETURN(auto env, GetEnvironment());
LITERT_ASSIGN_OR_RETURN(auto options, GetOptions());
LITERT_ASSIGN_OR_RETURN(
auto compiled_model,
CompiledModel::Create(env, "/path/to/mymodel.tflite", options));
// Preallocate input/output buffers
LITERT_ASSIGN_OR_RETURN(auto input_buffers,compiled_model.CreateInputBuffers(signature_index));
LITERT_ASSIGN_OR_RETURN(auto output_buffers,compiled_model.CreateOutputBuffers(signature_index));
// Fill the input buffer
LITERT_ABORT_IF_ERROR(input_buffers[0].Write(input0));
LITERT_ABORT_IF_ERROR(input_buffers[1].Write(input1));
// Invoke
LITERT_ABORT_IF_ERROR(compiled_model.Run(signature_index, input_buffers, output_buffers));
// Read the output
LITERT_ABORT_IF_ERROR(output_buffers[0].Read(output0));
选择后端
在 LiteRT 中加入后端的最直接方法是依赖于运行时的内置智能。借助 CompiledModel API,LiteRT 可以将目标后端指定为选项,从而显著简化设置。如需了解详情,请参阅设备端推理指南。
| Android | iOS / macOS | Web | Linux | Windows | IoT | |
|---|---|---|---|---|---|---|
| CPU | XNNPACK | XNNPACK | XNNPACK | XNNPACK | XNNPACK | XNNPACK |
| GPU | OpenGL OpenCL |
Metal WebGPU |
WebGPU | WebGPU OpenCL |
WebGPU OpenCL |
WebGPU |
| NPU | MediaTek Qualcomm |
- | - | Qualcomm | - | Qualcomm |
其他文档和支持
对于 TensorFlow Lite 的现有用户,请参阅迁移指南。
如需了解性能、分析、错误报告等信息,请参阅 **LiteRT 工具页面** 。