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