LiteRT 是 Google 的设备端框架,可在边缘平台上高效部署高性能 ML 和 GenAI,并使用高效的转换、运行时和优化。
LiteRT 2.x 包含最新的运行时 API(即 CompiledModel API),该 API 改进了 Interpreter API(又称 TensorFlow Lite API),尤其是在硬件加速和整体性能方面,可用于设备端 ML 和 AI 应用。CompiledModel API 处于 Beta 版发布状态,提供 Kotlin 和 C++ 两种版本。
LiteRT 的主要功能
支持的模型
LiteRT 支持从 Pytorch、TensorFlow 和 JAX 框架到 .tflite 或 .litertlm 格式的简化转换。
利用 LiteRT 简化开发
自动加速器选择与显式委托创建。简单的 NPU 运行时和模型分发。 高效的 I/O 缓冲区处理和异步执行,可实现卓越的性能。
一流的 GPU 性能
由 ML Drift 提供支持,现在支持 GPU API 上的机器学习模型和生成式 AI 模型。
统一的 NPU 加速
通过主要芯片组提供商提供的简化 NPU 访问权限来加速模型。
利用 LiteRT 简化 LLM 支持
您可以使用由 LiteRT 提供支持的 LiteRT-LM。 LiteRT-LM 支持最新的 LLM 和实用功能,例如多模态、受限解码等。
开发工作流程
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 模型,请参阅 AI-Edge-Quantization 文档。
入门前提条件
- Python 3.10-3.12
.tflite模型文件- 如需了解更多详情,请参阅相应平台部分
将模型集成到边缘平台上的应用中
您可以实现 LiteRT 模型,以便在 Android、iOS、Web、IoT 和桌面设备上完全在设备端运行推理。LiteRT 包含适用于 Python、Android 的 Java 和 Kotlin、iOS 的 Swift 和微设备的 C++ 的 API。
请按照以下指南在您偏好的平台上实现 LiteRT 模型:
| 模型框架 | 示例模型 | 转换工具 |
|---|---|---|
| 在 Android 设备上运行 | Android 移动设备 | C++/Kotlin API |
| 在 iOS 设备上运行 | iOS 移动设备 | C++/Swift* API |
| 使用 LiteRT.js 在 Web 上运行 | 安装了 Chrome、Firefox 或 Safari 的设备 | JavaScript API |
| 在 Micro 上运行 | 嵌入式设备 | C++ API |
*即将推出
Kotlin 代码示例
// Load model and initialize runtime
val compiledModel = CompiledModel.create("/path/to/mymodel.tflite", CompiledModel.Options(Accelerator.CPU))
// Prepare I/O buffers and fill in the data
val inputBuffers = compiledModel.createInputBuffers()
inputBuffers.get(0).writeFloat(input0)
inputBuffers.get(1).writeFloat(input1)
val outputBuffers = compiledModel.createOutputBuffers()
// Execute model
compiledModel.run(inputBuffers, outputBuffers)
// Access model output
val output = outputBuffers.get(0).readFloat()
inputBuffers.forEach { it.close() }
outputBuffers.forEach { it.close() }
compiledModel.close()
C++ 代码示例
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));
LITERT_ASSIGN_OR_RETURN(auto input_buffers,compiled_model.CreateInputBuffers(signature_index));
LITERT_ASSIGN_OR_RETURN(auto output_buffers,compiled_model.CreateOutputBuffers(signature_index));
LITERT_ABORT_IF_ERROR(input_buffers[0].Write(input0));
LITERT_ABORT_IF_ERROR(input_buffers[1].Write(input1));
LITERT_ABORT_IF_ERROR(compiled_model.Run(signature_index, input_buffers, output_buffers));
LITERT_ABORT_IF_ERROR(output_buffers[0].Read(output0));
选择后端
在 LiteRT 中纳入后端的最直接方法是依赖于运行时的内置智能。借助最新更改,LiteRT 能够将目标后端指定为选项,从而显著简化设置。
LiteRT v2.x 的核心是 CompiledModel 对象。加载模型时,LiteRT 会使用系统的可用硬件和内部优先级逻辑来选择最佳后端,而无需手动配置。如需了解详情,请参阅后端。
| Android | 桌面设备 | Web | iOS | macOS | IoT | |
|---|---|---|---|---|---|---|
| CPU | XNNPack | XNNPack | XNNPack | XNNPack | XNNPack | XNNPack |
| GPU | WebGPU OpenCL |
WebGPU OpenCL |
WebGPU | WebGPU Metal |
WebGPU Metal |
WebGPU |
| NPU | MediaTek Qualcomm |
- | - | - | - | - |
其他文档和支持
LiteRT v2.x 示例应用 请参阅 LiteRT 图像分割示例应用
对于 TensorFlow Lite 的现有用户 请参阅迁移指南
运营覆盖范围 兼容的运营商
支持的 LLM 模型 LiteRT Hugging Face 和 Gen API - 示例
工具 LiteRT 工具页面 - 性能、分析、错误报告等。