Jika Anda menggunakan Firebase Machine Learning untuk menghosting model kustom, Anda harus bermigrasi ke solusi lain sebelum layanan hosting Firebase ML ditutup pada 15 Juni 2027.
Salah satu alternatif yang dapat Anda gunakan adalah menghosting model menggunakan Cloud Storage for Firebase. Ikuti panduan ini untuk memigrasikan model Anda dari Firebase ML ke Cloud Storage.
Mendownload model TensorFlow Lite
Jika Anda belum menyimpan model secara lokal, download model dari project Firebase Anda. Anda memiliki dua opsi untuk melakukannya:
Download satu per satu dari Firebase console
- Buka bagian halaman Machine Learning di Firebase console.
- Untuk setiap model yang ingin Anda migrasikan, klik menu tambahan tiga titiknya, lalu klik Download model.
Mendownload semua model yang dihosting secara massal
- Buka halaman Machine Learning di Firebase console.
- Klik tombol Get command for bulk download untuk mendapatkan perintah
curlyang mendownload semua model dalam project. Masa berlaku URL ini akan berakhir dalam 7 hari. - Jalankan perintah di terminal lokal atau di
Cloud Shell. Jika menggunakan Cloud Shell, perhatikan batas penyimpanan disk 5 GB.
Perintah ini akan mendownload model Anda ke folder lokal bernama
hosted_models.
Menghosting model menggunakan Cloud Storage
Setelah memiliki model secara lokal, Anda perlu menguploadnya ke bucket Cloud Storage.
Pilih metode upload yang sesuai dengan kebutuhan Anda:
Mengupload model satu per satu
- Buat bucket Storage: di Firebase console, buka Databases & Storage > Storage dan ikuti langkah-langkah aktivasi untuk membuat bucket jika Anda belum melakukannya. Perhatikan bahwa hal ini memerlukan akun penagihan; lihat harga Firebase untuk mengetahui detailnya.
- Masih di bagian Storage, upload file model
.tfliteke jalur yang diinginkan.
Mengupload model secara massal
- Buat bucket Storage: di konsol Firebase, buka Databases & Storage > Storage dan ikuti langkah-langkah aktivasi untuk membuat bucket jika Anda belum melakukannya. Perhatikan bahwa tindakan ini memerlukan akun penagihan; lihat Harga Firebase untuk mengetahui detailnya.
Gunakan perintah
gcloudberikut untuk mengupload semua model dari folderhosted_modelslokal Anda:gcloud storage rsync --recursive ./hosted_models gs://<your-storage-bucket>/models/
Mengonfigurasi integrasi keamanan dan aplikasi
Pastikan aturan keamanan Storage Anda mengizinkan aplikasi Anda membaca file model. Misalnya, Anda dapat membatasi akses ke pengguna yang diautentikasi.
Tambahkan Storage ke aplikasi Anda: ikuti panduan penyiapan untuk Android, Apple, atau Flutter.
Perbarui kode aplikasi Anda untuk mendownload file
.tflitedari bucket Storage baru Anda.Android
modelRef = storage.getReferenceFromUrl("gs://YOUR_BUCKET/path/to/model.tflite") val localFile = File.createTempFile("models", "tflite") modelRef.getFile(localFile).addOnSuccessListener { // Local temp file has been created }.addOnFailureListener { // Handle any errors }Apple
let gsReference = storage.reference(forURL: "gs://YOUR_BUCKET/path/to/model.tflite") // Create local filesystem URL let localURL = URL(string: "path/to/model.tflite")! // Download to the local filesystem let downloadTask = gsReference.write(toFile: localURL) { url, error in if let error = error { // Uh-oh, an error occurred! } else { // Local file URL for "model.tflite" is returned } }Flutter
final modelRef = FirebaseStorage.instance.refFromURL("gs://YOUR_BUCKET/path/to/model.tflite"); final appDocDir = await getApplicationDocumentsDirectory(); final filePath = "${appDocDir.absolute}/models/model.tflite"; final file = File(filePath); final downloadTask = modelRef.writeToFile(file); downloadTask.snapshotEvents.listen((taskSnapshot) { switch (taskSnapshot.state) { case TaskState.running: // TODO: Handle this case. break; case TaskState.paused: // TODO: Handle this case. break; case TaskState.success: // TODO: Handle this case. break; case TaskState.canceled: // TODO: Handle this case. break; case TaskState.error: // TODO: Handle this case. break; } });Setelah model didownload, Anda dapat menggunakan library Tensorflow Lite yang ada untuk memuat dan menggunakan model.
(Opsional) Pertimbangkan untuk menggunakan Firebase Remote Config untuk memperbarui jalur model secara dinamis di aplikasi Anda tanpa memerlukan rilis baru.
Opsional: Bermigrasi ke LiteRT CompiledModel API
Jika aplikasi Anda masih menggunakan TensorFlow Lite Interpreter API lama, pertimbangkan untuk bermigrasi ke LiteRT CompiledModel API, yang menawarkan dukungan akselerasi hardware yang lebih baik dan peningkatan lainnya dibandingkan dengan API lama.