如果您的應用程式使用自訂 TensorFlow Lite 模型 如何運用 Firebase ML 部署模型透過 Firebase 部署模型後 可縮減應用程式的初始下載大小,並更新應用程式的機器學習模型 不必發布新版應用程式然後利用遠端設定和 A/B 功能 透過測試,您可以針對不同的使用者群組動態提供不同的模型。
TensorFlow Lite 模型
TensorFlow Lite 模型是最佳化的機器學習模型,適合在行動裝置上執行 裝置。如要取得 TensorFlow Lite 模型,請按照下列步驟操作:
請注意,如果沒有供 Dart 維護的 TensorFlow Lite 程式庫, 則需要與原生 TensorFlow Lite 程式庫整合 平台。這裡並未記錄這項整合。
事前準備
在 Flutter 專案的根目錄中執行下列指令 安裝機器學習模型下載工具外掛程式的指令:
flutter pub add firebase_ml_model_downloader
重新建構您的專案:
flutter run
1. 部署模型
您可以使用 Firebase 控制台或 Firebase Admin Python 和 Node.js SDK詳情請見 部署及管理自訂模型。
在 Firebase 專案中加入自訂模型後,您就能參照
在應用程式中使用您指定的名稱您隨時可以將
新的 TensorFlow Lite 模型,並將新模型下載至使用者的裝置劃分依據:
呼叫 getModel()
(請見下方)。
2. 將模型下載至裝置,然後初始化 TensorFlow Lite 解譯器
如要在應用程式中使用 TensorFlow Lite 模型,請先使用模型下載工具 下載最新版本的模型到裝置。接著,將 TensorFlow Lite 解譯器搭配模型。
如要開始下載模型,請呼叫模型下載工具的 getModel()
方法。
指定您在上傳模型時為模型指派的名稱
因此建議您一律下載最新模型
需要允許下載
有三種下載行為可供選擇:
下載類型 | 說明 |
---|---|
localModel
|
取得裝置的本機模型。
如果沒有本機模型可用,這個
的運作方式與 latestModel 類似。使用這份草稿
然後下載
檢查模型更新狀態例如:
就是使用遠端設定
而且每次都會將模型上傳到
的新名稱 (建議)。 |
localModelUpdateInBackground
|
取得裝置的本機模型,並
開始在背景更新模型
如果沒有本機模型可用,這個
的運作方式與 latestModel 類似。 |
latestModel
|
取得最新模型。如果本機模型 最新版本,會傳回本機 模型否則,請下載最新版本 模型這項行為會封鎖,直到 就會下載最新版本 建議)。這個行為僅限用於 明確需要 版本。 |
您應該停用模型相關功能,例如 隱藏部分使用者介面,直到您確認下載模型為止。
FirebaseModelDownloader.instance
.getModel(
"yourModelName",
FirebaseModelDownloadType.localModel,
FirebaseModelDownloadConditions(
iosAllowsCellularAccess: true,
iosAllowsBackgroundDownloading: false,
androidChargingRequired: false,
androidWifiRequired: false,
androidDeviceIdleRequired: false,
)
)
.then((customModel) {
// Download complete. Depending on your app, you could enable the ML
// feature, or switch from the local model to the remote model, etc.
// The CustomModel object contains the local path of the model file,
// which you can use to instantiate a TensorFlow Lite interpreter.
final localModelPath = customModel.file;
// ...
});
許多應用程式會在初始化程式碼中啟動下載工作,但您可以這麼做 因此在您需要使用模型前
3. 對輸入資料執行推論
將模型檔案儲存在裝置上後,就能將模型檔案與 TensorFlow Lite 解譯器來執行推論。在沒有維護 適用於 Dart 的 TensorFlow Lite 程式庫,您需要與 原生 TensorFlow Lite 程式庫 分為 iOS 和 Android 版
附錄:模型安全性
無論您是以何種方式將 TensorFlow Lite 模型提供給 Firebase ML、Firebase 機器學習會以標準的序列化 protobuf 格式儲存檔案, 本機儲存空間
理論上,這代表任何人都可以複製您的模型不過 實務上,大多數模型 都特別適合應用程式,並經過模糊處理 並預測其他可能與競爭對手拆解及 重複使用程式碼然而,在使用 之前,請務必先瞭解此風險 在應用程式中加入自訂模型