LiteRT 是 Google 的裝置端架構,可透過高效轉換、執行階段和最佳化功能,在邊緣平台部署高效能 ML 和 GenAI。
LiteRT 2.x 包含最新的執行階段 API CompiledModel API,可改善 Interpreter API (又稱 TensorFlow Lite API),特別是透過硬體加速和整體效能,提升裝置端 ML 和 AI 應用程式的效能。
LiteRT 的主要功能
支援的機型
LiteRT 支援從 PyTorch、TensorFlow 和 JAX 架構簡化轉換為 .tflite 或 .litertlm 格式。
使用 LiteRT 簡化開發作業
自動選取加速器 與明確建立委派項目。簡化 NPU 執行階段和模型發布作業。 有效處理 I/O 緩衝區,並執行非同步作業,以提升效能。
頂尖的 GPU 效能
這項功能採用 ML Drift 技術,目前支援 GPU API 上的機器學習和生成式 AI 模型。請參閱 GPU 加速說明文件。
統一 NPU 加速
透過主要晶片組供應商提供的簡化 NPU 存取權,加快模型運作速度。請參閱 NPU 加速說明文件。
優質 LLM 支援
LiteRT 可在行動裝置、電腦和網路平台,以高效能部署生成式 AI 模型。請參閱生成式 AI 部署說明文件。
開發工作流程
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 說明文件。
將模型整合至邊緣平台上的應用程式
您可以實作 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 工具頁面 - 效能、分析、錯誤回報等。