LiteRT 是 Google 的裝置端架構,可透過高效轉換、執行階段和最佳化功能,在邊緣平台部署高效能 ML 和 GenAI。
LiteRT 2.x 包含最新的執行階段 API「CompiledModel 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 效能
這項功能採用機器學習漂移技術,目前支援 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 Models
Hugging Face連結 Jax Hugging Face 連結 使用 Generative API [專業版使用者] 撰寫 LLM,進一步最佳化。
我們的 Generative API 程式庫提供 PyTorch 內建的建構區塊,可使用適合行動裝置的抽象化功能,編寫 Transformer 模型,例如 Gemma、TinyLlama 和其他模型,藉此確保轉換作業,並在行動執行階段 LiteRT 上執行高效能作業。請參閱生成 API 說明文件。
量化 [PRO USER]
AI Edge Quantizer 適用於進階開發人員,可量化轉換後的 LiteRT 模型。這項功能旨在協助進階使用者,盡可能提升耗用大量資源的模型 (例如 生成式 AI 模型)。
如要瞭解機器學習模型和生成式 AI 模型,請參閱 AI-Edge-Quantization 說明文件。
開始使用前的必要條件
- Python 3.10-3.12
.tflite模型檔案- 詳情請參閱各平台專區
將模型整合至邊緣平台上的應用程式
您可以實作 LiteRT 模型,在 Android、iOS、網頁、IoT 和桌機裝置上完全在裝置端執行推論。LiteRT 包含適用於 Python、Java 和 Kotlin (Android 專用)、Swift (iOS 專用) 和 C++ (微型裝置專用) 的 API。
請參閱下列指南,在偏好的平台上導入 LiteRT 模型:
| 模型架構 | 範例模型 | 轉換工具 |
|---|---|---|
| 在 Android 裝置上執行 | Android 行動裝置 (不含平板電腦) | C++/Kotlin API |
| 在 iOS 上執行 | iOS 行動裝置 (不含平板電腦) | C++/Swift* API |
| 使用 LiteRT.js 在網頁上執行 | 安裝 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 | 電腦 | 網頁 | 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 工具頁面 - 效能、分析、錯誤回報等。