歡迎瞭解 LiteRT 總覽

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 開發工作流程圖

找出最適合解決機器學習挑戰的方案

LiteRT 可讓使用者在解決機器學習問題時享有高度彈性和自訂空間,因此非常適合需要特定模型或專門實作方式的使用者。如果使用者需要即插即用的解決方案,可能更適合使用 MediaPipe Tasks,這項工具提供現成的解決方案,可執行常見的機器學習工作,例如物件偵測、文字分類和 LLM 推論。

取得及準備模型

LiteRT 模型以 FlatBuffers 這種高效率可攜格式呈現,並使用 .tflite 副檔名。

您可以透過下列方式取得 LiteRT 模型:

  • 取得預先訓練的模型:適用於熱門的機器學習工作負載,例如圖像分割、物件偵測等。

    最簡單的方法是使用 .tflite 格式的 LiteRT 模型。這些模型不需要任何額外的轉換步驟。

    模型類型 預先訓練模型來源
    傳統機器學習
    (.tflite 格式)
    前往 KaggleHuggingFace
    例如:圖片區隔模型範例應用程式
    生成式 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 模型,例如 GemmaTinyLlama其他模型,藉此確保轉換作業,並在行動執行階段 LiteRT 上執行高效能作業。請參閱生成 API 說明文件

量化 [PRO USER]

AI Edge Quantizer 適用於進階開發人員,可量化轉換後的 LiteRT 模型。這項功能旨在協助進階使用者,盡可能提升耗用大量資源的模型 (例如 生成式 AI 模型)。

如要瞭解機器學習模型和生成式 AI 模型,請參閱 AI-Edge-Quantization 說明文件

開始使用前的必要條件

  • Python 3.10-3.12
  • .tflite 模型檔案
  • 詳情請參閱各平台專區

將模型整合至邊緣平台上的應用程式

您可以實作 LiteRT 模型,在 Android、iOS、網頁、IoT 和桌機裝置上完全在裝置端執行推論。LiteRT 包含適用於 PythonJava 和 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 工具頁面 - 效能、分析、錯誤回報等。