หากใช้ Firebase Machine Learning เพื่อโฮสต์โมเดลที่กำหนดเอง คุณต้องย้ายข้อมูลไปยังโซลูชันอื่นก่อนที่บริการโฮสติ้ง Firebase ML จะ ปิดตัวลงในวันที่ 15 มิถุนายน 2027
อีกทางเลือกหนึ่งที่คุณอาจใช้คือการโฮสต์โมเดลโดยใช้ Cloud Storage สำหรับ Firebase แทน ทำตามคำแนะนำนี้เพื่อย้ายข้อมูลโมเดลจาก Firebase ML ไปยัง Cloud Storage
ดาวน์โหลดโมเดล TensorFlow Lite
หากยังไม่ได้จัดเก็บโมเดลไว้ในเครื่อง ให้ดาวน์โหลดจากโปรเจ็กต์ Firebase คุณมี 2 ตัวเลือกในการดำเนินการดังกล่าว ดังนี้
ดาวน์โหลดทีละรายการจากคอนโซล Firebase
- เปิดส่วนของหน้าแมชชีนเลิร์นนิงในคอนโซล Firebase
- สำหรับแต่ละโมเดลที่ต้องการย้ายข้อมูล ให้คลิกเมนูรายการเพิ่มเติม 3 จุดของโมเดลนั้น แล้วคลิกดาวน์โหลดโมเดล
ดาวน์โหลดโมเดลที่โฮสต์ทั้งหมดพร้อมกัน
- เปิดหน้าแมชชีนเลิร์นนิงในคอนโซล Firebase
- คลิกปุ่มรับคำสั่งสำหรับการดาวน์โหลดแบบกลุ่มเพื่อรับคำสั่ง
curlที่ดาวน์โหลด โมเดลทั้งหมดในโปรเจ็กต์ URL เหล่านี้จะหมดอายุใน 7 วัน - เรียกใช้คำสั่งในเทอร์มินัลในเครื่องหรือใน Cloud Shell หากใช้ Cloud Shell โปรดทราบขีดจำกัดพื้นที่เก็บข้อมูลในดิสก์ 5 GB
คำสั่งนี้จะดาวน์โหลดโมเดลไปยังโฟลเดอร์ในเครื่องชื่อ
hosted_models
โฮสต์โมเดลโดยใช้ Cloud Storage
เมื่อมีโมเดลในเครื่องแล้ว คุณจะต้องอัปโหลดโมเดลไปยัง Bucket ของ Cloud Storage
เลือกวิธีอัปโหลดที่ตรงกับความต้องการของคุณ
อัปโหลดโมเดลทีละรายการ
- สร้างที่เก็บข้อมูล: ในคอนโซล Firebase ให้ไปที่ ฐานข้อมูลและพื้นที่เก็บข้อมูล > พื้นที่เก็บข้อมูล และทำตามขั้นตอนการเริ่มต้นใช้งานเพื่อสร้างที่เก็บข้อมูลหากยังไม่ได้สร้าง โปรดทราบว่าการดำเนินการนี้ต้องใช้บัญชีสำหรับการเรียกเก็บเงิน โปรดดูรายละเอียดในราคา Firebase
- ในส่วนพื้นที่เก็บข้อมูล ให้อัปโหลดไฟล์โมเดล
.tfliteไปยังเส้นทางที่ต้องการ
อัปโหลดโมเดลหลายรายการพร้อมกัน
- สร้างที่เก็บข้อมูล: ในคอนโซล Firebase ให้ไปที่ ฐานข้อมูลและพื้นที่เก็บข้อมูล > พื้นที่เก็บข้อมูล และทำตามขั้นตอนการเริ่มต้นใช้งานเพื่อสร้างที่เก็บข้อมูลหากยังไม่ได้สร้าง โปรดทราบว่าการดำเนินการนี้ต้องใช้บัญชีสำหรับการเรียกเก็บเงิน โปรดดูรายละเอียดในราคา Firebase
ใช้
gcloudคำสั่งต่อไปนี้เพื่ออัปโหลดโมเดลทั้งหมดจากโฟลเดอร์hosted_modelsในเครื่องgcloud storage rsync --recursive ./hosted_models gs://<your-storage-bucket>/models/
กำหนดค่าการรักษาความปลอดภัยและการผสานรวมแอป
ตรวจสอบว่ากฎความปลอดภัยของพื้นที่เก็บข้อมูล อนุญาตให้แอปอ่านไฟล์โมเดลได้ เช่น คุณสามารถจำกัด การเข้าถึงผู้ใช้ที่ได้รับการตรวจสอบสิทธิ์
เพิ่มพื้นที่เก็บข้อมูลลงในแอปโดยทำตามคู่มือการตั้งค่าสำหรับ Android Apple หรือ Flutter
อัปเดตโค้ดของแอปพลิเคชันเพื่อ ดาวน์โหลดไฟล์
.tfliteจาก Bucket Storage ใหม่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; } });เมื่อดาวน์โหลดโมเดลแล้ว คุณจะใช้ไลบรารี TensorFlow Lite ที่มีอยู่ เพื่อโหลดและใช้โมเดลได้
(ไม่บังคับ) ลองใช้การกำหนดค่าระยะไกลของ Firebase เพื่ออัปเดตเส้นทางโมเดลในแอปแบบไดนามิกโดยไม่ต้องเผยแพร่เวอร์ชันใหม่
ไม่บังคับ: ย้ายข้อมูลไปยัง LiteRT CompiledModel API
หากแอปยังคงใช้ TensorFlow Lite Interpreter API รุ่นเดิมอยู่ ให้พิจารณา
ย้ายข้อมูลไปยัง LiteRT CompiledModel API
ซึ่งมีการรองรับการเร่งด้วยฮาร์ดแวร์ที่ดีขึ้นและมีการปรับปรุงอื่นๆ มากกว่า
API รุ่นเดิม