Jika Anda menggunakan Firebase Machine Learning untuk menghosting model kustom, Anda harus bermigrasi ke solusi lain sebelum layanan hosting Firebase ML dihentikan 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 dari Firebase ML ke Cloud Storage.
Mendownload model TensorFlow Lite
Jika Anda belum menyimpan model secara lokal, download model dari project Firebase. Anda memiliki dua opsi untuk melakukannya:
Mendownload model satu per satu dari Firebase console
- Buka bagian halaman Machine Learning di Firebase console.
- Untuk setiap model yang ingin Anda migrasikan, klik menu overflow tiga titik, 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. URL ini akan berakhir masa berlakunya 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 ke folder lokal bernama
hosted_models.
Menghosting model menggunakan Cloud Storage
Setelah memiliki model secara lokal, Anda harus 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 orientasi untuk membuat bucket jika Anda belum melakukannya. Perhatikan bahwa tindakan 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 Firebase console, buka Databases & Storage > Storage dan ikuti langkah-langkah orientasi 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:gcloud storage rsync --recursive ./hosted_models gs://<your-storage-bucket>/models/
Mengonfigurasi keamanan dan integrasi aplikasi
Pastikan aturan keamanan Storage Anda mengizinkan aplikasi 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 untuk mendownload file
.tflitedari bucket Storage baru.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 model dan menggunakannya.
(Opsional) Pertimbangkan untuk menggunakan Firebase Remote Config untuk memperbarui jalur model secara dinamis di aplikasi 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 ditingkatkan dan peningkatan lainnya dibandingkan
API lama.