LiteRT 是 Google 的设备端框架,可在边缘平台上高效部署高性能 ML 和 GenAI,并使用高效的转换、运行时和优化。
最新的 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 模型提供高性能部署。请参阅 GenAI 部署文档。
广泛的机器学习框架支持
LiteRT 支持从 PyTorch、TensorFlow 和 JAX 框架到 .tflite 或 .litertlm 格式的简化转换。请参阅模型转换文档。
开发工作流程
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 模型。[PRO USER]
模型框架 示例模型 转换工具 PyTorch Hugging Face
Torchvision链接 TensorFlow Kaggle 模型
Hugging Face链接 Jax Hugging Face 链接 创作 LLM,以便使用 Generative API 进一步优化 [专业版用户]
我们的 Generative API 库提供 PyTorch 内置构建块,用于使用移动设备友好的抽象概念来组合 Transformer 模型,例如 Gemma、TinyLlama 和其他模型。通过这些构建块,我们可以保证在移动运行时 LiteRT 上进行转换和高性能执行。请参阅生成式 API 文档。
量化 [专业版用户]
AI Edge Quantizer 是一款面向高级开发者的工具,用于量化转换后的 LiteRT 模型。它旨在帮助高级用户在需要大量资源的模型(例如,生成式 AI 模型)。
如需了解详情,请参阅 AI Edge 量化器文档。
将模型集成到边缘平台上的应用中
借助 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 |
| 在 Micro 上运行 | 嵌入式设备 | 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 |
| GPU | WebGPU OpenCL |
WebGPU Metal |
WebGPU | WebGPU OpenCL |
WebGPU |
| NPU | MediaTek Qualcomm |
- | - | - | - |
其他文档和支持
LiteRT-Samples GitHub 代码库,查看更多 LiteRT 示例应用。
对于 TensorFlow Lite 的现有用户,请参阅迁移指南。
LiteRT 工具页面,用于性能、分析、错误报告等。