مدل‌های TensorFlow Lite را از Firebase ML به Cloud Storage منتقل کنید

اگر از یادگیری ماشینی فایربیس برای میزبانی مدل‌های سفارشی استفاده می‌کنید، باید قبل از اینکه سرویس میزبانی فایربیس ام‌ال در ۱۵ ژوئن ۲۰۲۷ غیرفعال شود، به راهکار دیگری مهاجرت کنید.

یکی از گزینه‌هایی که می‌توانید استفاده کنید این است که مدل‌های خود را با استفاده از فضای ذخیره‌سازی ابری برای فایربیس میزبانی کنید. برای انتقال مدل‌های خود از فایربیس ام‌ال به فضای ذخیره‌سازی ابری، این راهنما را دنبال کنید.

مدل‌های TensorFlow Lite خود را دانلود کنید

اگر مدل‌های خود را از قبل به صورت محلی ذخیره نکرده‌اید، آن‌ها را از پروژه Firebase خود دانلود کنید. برای این کار دو گزینه دارید:

آنها را یکی یکی از کنسول Firebase دانلود کنید

  1. بخش صفحه یادگیری ماشین را در کنسول Firebase باز کنید.
  2. برای هر مدلی که می‌خواهید منتقل کنید، روی منوی سه‌نقطه‌ای آن کلیک کنید، سپس روی «دانلود مدل» کلیک کنید.

تمام مدل‌های میزبانی شده خود را به صورت عمده دانلود کنید

  1. صفحه یادگیری ماشین را در کنسول Firebase باز کنید.
  2. برای دریافت دستور curl که تمام مدل‌های موجود در پروژه را دانلود می‌کند، روی دکمه‌ی Get command for bulk download کلیک کنید. این URLها ظرف ۷ روز منقضی می‌شوند.
  3. دستور را در ترمینال محلی خود یا در Cloud Shell اجرا کنید. اگر از Cloud Shell استفاده می‌کنید، به محدودیت ۵ گیگابایتی فضای ذخیره‌سازی دیسک آن توجه کنید. این دستور مدل‌های شما را در یک پوشه محلی به نام hosted_models دانلود می‌کند.

مدل‌های خود را با استفاده از فضای ذخیره‌سازی ابری میزبانی کنید

وقتی مدل‌های خود را به صورت محلی دارید، باید آنها را در یک فضای ذخیره‌سازی ابری آپلود کنید.

روش آپلودی را انتخاب کنید که با نیازهای شما مطابقت داشته باشد:

مدل‌های خود را یکی‌یکی آپلود کنید

  1. ایجاد یک مخزن ذخیره‌سازی: در کنسول Firebase، به مسیر Databases & Storage > Storage بروید و مراحل راه‌اندازی را برای ایجاد یک مخزن دنبال کنید، البته اگر قبلاً این کار را نکرده‌اید. توجه داشته باشید که این کار نیاز به یک حساب کاربری دارد؛ برای جزئیات بیشتر به بخش قیمت‌گذاری Firebase مراجعه کنید.
  2. همچنان در بخش Storage ، فایل‌های مدل .tflite خود را در مسیر دلخواه آپلود کنید.

مدل‌های خود را به صورت عمده آپلود کنید

  1. ایجاد یک مخزن ذخیره‌سازی: در کنسول Firebase، به مسیر Databases & Storage > Storage بروید و مراحل راه‌اندازی را برای ایجاد یک مخزن دنبال کنید، البته اگر قبلاً این کار را نکرده‌اید. توجه داشته باشید که این کار نیاز به یک حساب کاربری دارد؛ برای جزئیات بیشتر به بخش قیمت‌گذاری Firebase مراجعه کنید.
  2. از دستور gcloud زیر برای آپلود همه مدل‌ها از پوشه hosted_models محلی خود استفاده کنید:

    gcloud storage rsync --recursive ./hosted_models gs://<your-storage-bucket>/models/

پیکربندی امنیت و ادغام برنامه

  1. مطمئن شوید که قوانین امنیتی ذخیره‌سازی شما به برنامه شما اجازه می‌دهد فایل‌های مدل را بخواند. برای مثال، می‌توانید دسترسی را به کاربران احراز هویت شده محدود کنید.

  2. فضای ذخیره‌سازی را به برنامه خود اضافه کنید: راهنماهای راه‌اندازی را برای اندروید ، اپل یا فلاتر دنبال کنید.

  3. کد برنامه خود را به‌روزرسانی کنید تا فایل‌های .tflite را از مخزن ذخیره‌سازی جدید خود دانلود کنید.

    اندروید

    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
    }
    

    اپل

    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
      }
    }
    

    فلوتر

    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 موجود خود برای بارگذاری مدل و استفاده از آن استفاده کنید.

  4. (اختیاری) استفاده از Firebase Remote Config را برای به‌روزرسانی پویای مسیرهای مدل در برنامه خود بدون نیاز به انتشار نسخه جدید در نظر بگیرید.

اختیاری: به LiteRT CompiledModel API مهاجرت کنید

اگر برنامه شما هنوز از API قدیمی TensorFlow Lite Interpreter استفاده می‌کند، مهاجرت به LiteRT CompiledModel API را در نظر بگیرید، که پشتیبانی از شتاب سخت‌افزاری بهبود یافته و سایر پیشرفت‌ها را نسبت به API قدیمی ارائه می‌دهد.