إذا كنت تستخدم Firebase Machine Learning لاستضافة نماذج مخصّصة، عليك الانتقال إلى حلّ آخر قبل إيقاف خدمة استضافة Firebase ML نهائيًا في 15 حزيران (يونيو) 2027.
يمكنك بدلاً من ذلك استضافة نماذجك باستخدام Cloud Storage for Firebase. اتّبِع هذا الدليل لنقل نماذجك من Firebase ML إلى Cloud Storage.
تنزيل نماذج TensorFlow Lite
إذا لم تكن نماذجك مخزّنة محليًا، نزِّلها من مشروع Firebase. يمكنك إجراء ذلك بإحدى الطريقتَين التاليتَين:
تنزيلها واحدًا تلو الآخر من وحدة تحكّم Firebase
- افتح قسم صفحة التعلم الآلي في "وحدة تحكّم Firebase".
- لكل نموذج تريد نقل بياناته، انقر على القائمة الكاملة (رمز النقاط الثلاث) الخاصة به، ثم انقر على تنزيل النموذج.
تنزيل جميع النماذج المستضافة بشكل مجمّع
- افتح صفحة التعلم الآلي في وحدة تحكّم Firebase.
- انقر على الزر الحصول على أمر التنزيل المجمّع للحصول على أمر
curlيؤدي إلى تنزيل جميع النماذج في المشروع. ستنتهي صلاحية عناوين URL هذه بعد 7 أيام. - نفِّذ الأمر في الوحدة الطرفية المحلية أو في Cloud Shell. في حال استخدام Cloud Shell، يُرجى العِلم بأنّ حدّ مساحة التخزين على القرص يبلغ 5 غيغابايت.
سيؤدي هذا الأمر إلى تنزيل النماذج إلى مجلد محلي باسم
hosted_models.
استضافة النماذج باستخدام Cloud Storage
بعد الحصول على النماذج محليًا، عليك تحميلها إلى حزمة Cloud Storage.
اختَر طريقة التحميل التي تناسب احتياجاتك:
تحميل النماذج واحدًا تلو الآخر
- أنشئ حزمة Storage: في وحدة تحكّم Firebase، انتقِل إلى قواعد البيانات ومساحة التخزين > Storage واتّبِع خطوات الإعداد لإنشاء حزمة إذا لم يسبق لك ذلك. يُرجى العِلم أنّ ذلك يتطلّب توفّر حساب فوترة. لمزيد من التفاصيل، يُرجى الاطّلاع على أسعار Firebase.
- في قسم مساحة التخزين، حمِّل ملفات نموذج
.tfliteإلى المسار المطلوب.
تحميل نماذجك بشكل مجمّع
- أنشئ حزمة Storage: في وحدة تحكّم Firebase، انتقِل إلى قواعد البيانات ومساحة التخزين > Storage واتّبِع خطوات الإعداد لإنشاء حزمة إذا لم يسبق لك ذلك. يُرجى العِلم أنّ ذلك يتطلّب توفّر حساب فوترة. لمزيد من التفاصيل، يُرجى الاطّلاع على أسعار Firebase.
استخدِم الأمر
gcloudالتالي لتحميل جميع النماذج من المجلد المحليhosted_models:gcloud storage rsync --recursive ./hosted_models gs://<your-storage-bucket>/models/
ضبط الأمان ودمج التطبيقات
تأكَّد من أنّ قواعد أمان مساحة التخزين تسمح لتطبيقك بقراءة ملفات النموذج. على سبيل المثال، يمكنك حصر إمكانية الوصول على المستخدمين الذين تمّت المصادقة عليهم.
أضِف خدمة Storage إلى تطبيقك باتّباع أدلة الإعداد الخاصة بمنصات Android أو Apple أو Flutter.
حدِّث الرمز البرمجي لتطبيقك لتنزيل ملفات
.tfliteمن حزمة التخزين الجديدة.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
إذا كان تطبيقك لا يزال يستخدم واجهة برمجة التطبيقات القديمة Interpreter من TensorFlow Lite، ننصحك بنقل البيانات إلى واجهة برمجة التطبيقات CompiledModel LiteRT، التي توفّر دعمًا محسّنًا لتسريع الأجهزة وتحسينات أخرى مقارنةً بواجهة برمجة التطبيقات القديمة.