歡迎瞭解 LiteRT 總覽

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 可在行動裝置、電腦和網路平台,以高效能部署生成式 AI 模型。請參閱生成式 AI 部署說明文件

支援多種機器學習架構

LiteRT 支援從 PyTorch、TensorFlow 和 JAX 架構簡化轉換為 .tflite.litertlm 格式。請參閱模型轉換說明文件

開始使用 CompiledModel API

開發工作流程

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 Edge Quantizer 說明文件

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

LiteRT 可讓您完全在裝置端執行機器學習模型,並在 Android、iOS、網頁、電腦和 IoT 平台發揮高效能。

請參閱下列指南,在偏好的平台上整合 LiteRT 模型:

支援的平台 支援的裝置 支援的 API
在 Android 裝置上執行 Android 行動裝置 (不含平板電腦) C++/Kotlin
在 iOS/macOS 上執行 iOS 行動裝置、Macbook C++/Swift
使用 LiteRT.js 在網頁上執行 安裝 Chrome、Firefox 或 Safari 的裝置 JavaScript
在 Linux 上執行 Linux 工作站或 Linux 裝置 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 網頁 Linux / Windows IoT
CPU XNNPACK XNNPACK XNNPACK XNNPACK XNNPACK
GPU WebGPU
OpenCL
WebGPU
Metal
WebGPU WebGPU
OpenCL
WebGPU
NPU MediaTek
Qualcomm
- - - -

其他說明文件和支援