Android Lite 版

您可以在 Android 應用程式中,透過 LiteRT 執行 TensorFlow、PyTorch 和 JAX 模型。LiteRT 系統提供預先建構及可自訂的執行環境,可在 Android 上快速有效率地執行模型,包括硬體加速選項。

如需使用 LiteRT 的 Android 應用程式範例,請參閱 LiteRT 範例存放區。

機器學習模型

LiteRT 會使用 TensorFlow、PyTorch 和 JAX 模型,並轉換為更小、可攜式且更有效率的機器學習模型格式。您可以在 Android 上使用 LiteRT 預先建構的模型,也可以自行建構模型並轉換為 LiteRT 格式。

本頁面討論如何使用已建構的機器學習模型,不涵蓋模型的建構、訓練、測試或轉換。如要進一步瞭解如何挑選、修改、建構及轉換適用於 LiteRT 的機器學習模型,請前往「模型」頁面。

在 Android 上執行模型

在 Android 應用程式中執行的 LiteRT 模型會接收資料、處理資料,並根據模型的邏輯產生預測結果。LiteRT 模型需要特殊的執行階段環境才能執行,且傳遞至模型的資料必須採用特定資料格式,稱為張量。模型處理資料時 (稱為執行推論),會以新張量形式產生預測結果,並將結果傳遞至 Android 應用程式,以便採取行動,例如向使用者顯示結果或執行其他商業邏輯。

Android 應用程式中 LiteRT 模型的執行流程

圖 1. Android 應用程式中 LiteRT 模型的執行流程。

在功能設計層級,Android 應用程式需要下列元素才能執行 LiteRT 模型:

  • LiteRT 執行階段環境,用於執行模型
  • 模型輸入處理常式,可將資料轉換為張量
  • 模型輸出處理常式,用於接收輸出結果張量,並將其解讀為預測結果

以下各節說明 LiteRT 程式庫和工具如何提供這些功能元素。

使用 LiteRT 建構應用程式

本節說明在 Android 應用程式中導入 LiteRT 的建議做法,也是最常見的做法。您應特別注意「執行階段環境」和「開發程式庫」部分。如果您已開發自訂模型,請務必參閱「進階開發路徑」一節。

執行階段環境選項

您可以使用幾種方式,在 Android 應用程式中啟用執行階段環境來執行模型。建議使用下列選項:

一般來說,您應使用 Google Play 服務提供的執行階段環境,因為這種環境會動態載入,比標準環境更節省空間,可縮小應用程式大小。Google Play 服務也會自動使用 LiteRT 執行階段的最新穩定版本,隨著時間推移,您將能享有更多功能和更優異的效能。如果您在未搭載 Google Play 服務的裝置上提供應用程式,或是需要密切管理 ML 執行階段環境,則應使用標準 LiteRT 執行階段。這個選項會將額外程式碼併入應用程式,讓您能更有效控管應用程式中的機器學習執行階段,但應用程式的下載大小會增加。

如要在 Android 應用程式中存取這些執行階段環境,請將 LiteRT 開發程式庫新增至應用程式開發環境。如要瞭解如何在應用程式中使用標準執行階段環境,請參閱下一節。

程式庫

您可以使用 Google Play 服務存取 Interpreter API。您可以在 Android 應用程式中使用 LiteRT 核心支援程式庫。如要瞭解如何使用 LiteRT 程式庫和執行階段環境的程式設計詳細資料,請參閱「Android 開發工具」。

取得模型

如要在 Android 應用程式中執行模型,需要使用 LiteRT 格式的模型。您可以使用預先建構的模型,也可以自行建構模型並轉換為 Lite 格式。如要進一步瞭解如何為 Android 應用程式取得模型,請參閱 LiteRT Models 頁面。

處理輸入資料

傳遞至機器學習模型的任何資料都必須是具有特定資料結構的張量,通常稱為張量的「形狀」。如要使用模型處理資料,應用程式程式碼必須將資料從原生格式 (例如圖片、文字或音訊資料) 轉換為模型所需的張量形狀。

執行推論

透過模型處理資料以產生預測結果,稱為執行「推論」。在 Android 應用程式中執行推論時,需要 LiteRT 執行階段環境模型輸入資料

模型在特定裝置上產生推論的速度,取決於處理的資料大小、模型複雜度,以及可用的運算資源,例如記憶體和 CPU,或是稱為加速器的專用處理器。機器學習模型可在圖形處理單元 (GPU) 和張量處理單元 (TPU) 等專用處理器上,使用稱為「委派」的 LiteRT 硬體驅動程式,以更快的速度執行。如要進一步瞭解委派和模型處理的硬體加速功能,請參閱硬體加速總覽

處理輸出結果

模型會以張量形式產生預測結果,您的 Android 應用程式必須採取行動或向使用者顯示結果,藉此處理這些張量。模型輸出結果可能很簡單,例如圖片分類的單一結果對應的數字 (0 = 狗、1 = 貓、2 = 鳥),也可能非常複雜,例如圖片中多個分類物件的多個定界框,預測信賴度評分介於 0 和 1 之間。

進階開發路徑

使用更精細的自訂 LiteRT 模型時,您可能需要採用比上述更進階的開發方法。以下各節說明在 Android 應用程式中,執行及開發 LiteRT 模型的高階技術。

進階執行階段環境

除了 LiteRT 的標準執行階段和 Google Play 服務執行階段環境外,您還可以在 Android 應用程式中使用其他執行階段環境。如果您使用的機器學習模型包含 LiteRT 標準執行階段環境不支援的機器學習作業,就很有可能需要使用這些環境。

LiteRT Flex 執行階段可讓您納入模型所需的特定運算子。如要以進階選項執行模型,您可以為 Android 建構 LiteRT,納入執行 TensorFlow 機器學習模型所需的運算子和其他功能。詳情請參閱「為 Android 建構 LiteRT」。

C 和 C++ API

LiteRT 也提供 API,可使用 C 和 C++ 執行模型。如果您的應用程式使用 Android NDK,建議使用這個 API。如果您想在多個平台之間共用程式碼,也可以考慮使用這個 API。如要進一步瞭解這項開發選項,請參閱「開發工具」頁面。

以伺服器為基礎的模型執行作業

一般來說,您應在 Android 裝置上執行應用程式中的模型,以利用較低的延遲時間,並提升使用者資料隱私權。不過,在某些情況下,在雲端伺服器上執行模型 (而非在裝置上執行) 是更好的解決方案。舉例來說,如果您的模型很大,無法輕鬆壓縮到適合使用者 Android 裝置的大小,或無法在這些裝置上以合理的效能執行,如果優先考量模型在各種裝置上的效能一致性,這個方法可能也是您的首選解決方案。

Google Cloud 提供全套服務,可執行 AI 模型。詳情請參閱 Google Cloud 的 AI 和機器學習產品頁面。

自訂模型開發與最佳化

進階開發路徑可能包括開發自訂機器學習模型,以及針對 Android 裝置使用這些模型進行最佳化。如果您打算建構自訂模型,請務必考慮對模型套用量化技術,以降低記憶體和處理成本。如要進一步瞭解如何建構高效能模型,以便搭配 LiteRT 使用,請參閱「模型」一節中的「效能最佳做法」。

支援的 Android 版本

LiteRT 版本 狀態 最低 SDK 級別 最低 NDK 層級 (如使用) 發布日期
v1.2.0 ✅ 有效 21 (Android 5 Lollipop) r26a 2025-03-13

重要事項: 請務必更新依附元件,確保與最新功能和安全性更新相容。