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