Lihat yang baru dari Firebase di Google I/O 2022. Pelajari lebih lanjut

Gunakan model TensorFlow Lite khusus dengan Flutter

Tetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda.

Jika aplikasi Anda menggunakan model TensorFlow Lite kustom, Anda dapat menggunakan Firebase ML untuk menerapkan model Anda. Dengan menerapkan model dengan Firebase, Anda dapat mengurangi ukuran unduhan awal aplikasi Anda dan memperbarui model ML aplikasi Anda tanpa merilis versi baru aplikasi Anda. Dan, dengan Remote Config dan Pengujian A/B, Anda dapat menyajikan model yang berbeda secara dinamis ke kumpulan pengguna yang berbeda.

Model TensorFlow Lite

Model TensorFlow Lite adalah model ML yang dioptimalkan untuk berjalan di perangkat seluler. Untuk mendapatkan model TensorFlow Lite:

Sebelum kamu memulai

  1. Instal dan inisialisasi SDK Firebase untuk Flutter jika Anda belum melakukannya.

  2. Dari direktori root proyek Flutter Anda, jalankan perintah berikut untuk menginstal plugin pengunduh model ML:

    flutter pub add firebase_ml_model_downloader
    
  3. Bangun kembali proyek Anda:

    flutter run
    

1. Terapkan model Anda

Deploy model TensorFlow kustom Anda menggunakan Firebase console atau Firebase Admin Python dan Node.js SDK. Lihat Menyebarkan dan mengelola model khusus .

Setelah menambahkan model kustom ke proyek Firebase, Anda dapat mereferensikan model di aplikasi menggunakan nama yang Anda tentukan. Kapan saja, Anda dapat menerapkan model TensorFlow Lite baru dan mengunduh model baru ke perangkat pengguna dengan memanggil getModel() (lihat di bawah).

2. Unduh model ke perangkat dan inisialisasi penerjemah TensorFlow Lite

Untuk menggunakan model TensorFlow Lite di aplikasi Anda, pertama-tama gunakan pengunduh model untuk mengunduh model versi terbaru ke perangkat. Kemudian, buat instance interpreter TensorFlow Lite dengan model tersebut.

Untuk memulai pengunduhan model, panggil metode getModel() pengunduh model, tentukan nama yang Anda tetapkan untuk model saat Anda mengunggahnya, apakah Anda ingin selalu mengunduh model terbaru, dan kondisi di mana Anda ingin mengizinkan pengunduhan.

Anda dapat memilih dari tiga perilaku unduhan:

Jenis unduhan Keterangan
localModel Dapatkan model lokal dari perangkat. Jika tidak ada model lokal yang tersedia, ini berperilaku seperti latestModel . Gunakan jenis unduhan ini jika Anda tidak tertarik untuk memeriksa pembaruan model. Misalnya, Anda menggunakan Remote Config untuk mengambil nama model dan Anda selalu mengunggah model dengan nama baru (disarankan).
localModelUpdateInBackground Dapatkan model lokal dari perangkat dan mulai perbarui model di latar belakang. Jika tidak ada model lokal yang tersedia, ini berperilaku seperti latestModel .
latestModel Dapatkan model terbaru. Jika model lokal adalah versi terbaru, kembalikan model lokal. Jika tidak, unduh model terbaru. Perilaku ini akan diblokir hingga versi terbaru diunduh (tidak disarankan). Gunakan perilaku ini hanya jika Anda secara eksplisit membutuhkan versi terbaru.

Anda harus menonaktifkan fungsionalitas terkait model—misalnya, menyamarkan atau menyembunyikan sebagian UI—sampai Anda mengonfirmasi bahwa model telah diunduh.

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;

      // ...
    });

Banyak aplikasi memulai tugas pengunduhan dalam kode inisialisasinya, tetapi Anda dapat melakukannya kapan saja sebelum Anda perlu menggunakan model tersebut.

3. Lakukan inferensi pada data input

Sekarang setelah Anda memiliki file model di perangkat, Anda dapat menggunakannya dengan penerjemah TensorFlow Lite untuk melakukan inferensi. Untuk ini, Anda memiliki beberapa opsi:

Lampiran: Keamanan model

Terlepas dari cara Anda membuat model TensorFlow Lite tersedia untuk Firebase ML, Firebase ML menyimpannya dalam format protobuf serial standar di penyimpanan lokal.

Secara teori, ini berarti siapa pun dapat menyalin model Anda. Namun, dalam praktiknya, sebagian besar model sangat spesifik untuk aplikasi dan dikaburkan oleh pengoptimalan sehingga risikonya mirip dengan risiko pesaing membongkar dan menggunakan kembali kode Anda. Namun demikian, Anda harus menyadari risiko ini sebelum menggunakan model khusus di aplikasi Anda.