TensorFlow Lite মডেলগুলোকে Firebase ML থেকে ক্লাউড স্টোরেজে স্থানান্তর করুন

আপনি যদি কাস্টম মডেল হোস্ট করার জন্য ফায়ারবেস মেশিন লার্নিং ব্যবহার করে থাকেন, তাহলে ১৫ জুন, ২০২৭-এ ফায়ারবেস এমএল হোস্টিং পরিষেবাটি বন্ধ হয়ে যাওয়ার আগেই আপনাকে অন্য কোনো সমাধানে স্থানান্তরিত হতে হবে।

এর একটি বিকল্প হিসেবে আপনি আপনার মডেলগুলোকে ক্লাউড স্টোরেজ ফর ফায়ারবেস-এ হোস্ট করতে পারেন। আপনার মডেলগুলোকে ফায়ারবেস এমএল থেকে ক্লাউড স্টোরেজে মাইগ্রেট করতে এই নির্দেশিকাটি অনুসরণ করুন।

আপনার TensorFlow Lite মডেলগুলি ডাউনলোড করুন

আপনার মডেলগুলো যদি আগে থেকেই স্থানীয়ভাবে সংরক্ষিত না থাকে, তবে আপনার ফায়ারবেস প্রজেক্ট থেকে সেগুলো ডাউনলোড করুন। এটি করার জন্য আপনার কাছে দুটি উপায় আছে:

ফায়ারবেস কনসোল থেকে এক এক করে ডাউনলোড করুন।

  1. Firebase কনসোলে মেশিন লার্নিং পেজ সেকশনটি খুলুন।
  2. আপনি যে প্রতিটি মডেল মাইগ্রেট করতে চান, সেটির তিন-বিন্দু ওভারফ্লো মেনুতে ক্লিক করুন, তারপর 'Download model'-এ ক্লিক করুন।

আপনার হোস্ট করা সমস্ত মডেল একসাথে ডাউনলোড করুন

  1. Firebase কনসোলে মেশিন লার্নিং পেজটি খুলুন।
  2. প্রজেক্টের সমস্ত মডেল ডাউনলোড করার জন্য একটি curl কমান্ড পেতে বাল্ক ডাউনলোডের জন্য 'গেট কমান্ড' (Get command ) বোতামে ক্লিক করুন। এই ইউআরএলগুলো ৭ দিন পর মেয়াদোত্তীর্ণ হয়ে যাবে।
  3. আপনার লোকাল টার্মিনালে অথবা ক্লাউড শেলে কমান্ডটি চালান। ক্লাউড শেল ব্যবহার করলে, এর ৫ জিবি ডিস্ক স্টোরেজ সীমাবদ্ধতার কথা মনে রাখবেন। কমান্ডটি আপনার মডেলগুলোকে hosted_models নামের একটি লোকাল ফোল্ডারে ডাউনলোড করবে।

ক্লাউড স্টোরেজ ব্যবহার করে আপনার মডেলগুলি হোস্ট করুন

একবার আপনার মডেলগুলো স্থানীয়ভাবে চলে এলে, আপনাকে সেগুলো একটি ক্লাউড স্টোরেজ বাকেটে আপলোড করতে হবে।

আপনার প্রয়োজন অনুযায়ী আপলোড পদ্ধতিটি বেছে নিন:

আপনার মডেলগুলো এক এক করে আপলোড করুন

  1. একটি স্টোরেজ বাকেট তৈরি করুন: Firebase কনসোলে, Databases & Storage > Storage- এ যান এবং যদি আগে থেকে একটি বাকেট তৈরি করা না থাকে, তবে অনবোর্ডিং ধাপগুলো অনুসরণ করে একটি বাকেট তৈরি করুন। মনে রাখবেন, এর জন্য একটি বিলিং অ্যাকাউন্ট প্রয়োজন; বিস্তারিত জানতে Firebase-এর মূল্য তালিকা দেখুন।
  2. এখনও স্টোরেজ সেকশনে, আপনার .tflite মডেল ফাইলগুলো পছন্দসই পাথে আপলোড করুন।

আপনার মডেলগুলো একসাথে আপলোড করুন

  1. একটি স্টোরেজ বাকেট তৈরি করুন: Firebase কনসোলে, Databases & Storage > Storage- এ যান এবং যদি আগে থেকে একটি বাকেট তৈরি করা না থাকে, তবে অনবোর্ডিং ধাপগুলো অনুসরণ করে একটি বাকেট তৈরি করুন। মনে রাখবেন, এর জন্য একটি বিলিং অ্যাকাউন্ট প্রয়োজন; বিস্তারিত জানতে Firebase-এর মূল্য তালিকা দেখুন।
  2. আপনার স্থানীয় hosted_models ফোল্ডার থেকে সমস্ত মডেল আপলোড করতে নিম্নলিখিত gcloud কমান্ডটি ব্যবহার করুন:

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

নিরাপত্তা এবং অ্যাপ ইন্টিগ্রেশন কনফিগার করুন

  1. আপনার স্টোরেজ নিরাপত্তা নিয়মগুলো যেন আপনার অ্যাপকে মডেল ফাইলগুলো পড়ার অনুমতি দেয়, তা নিশ্চিত করুন। উদাহরণস্বরূপ, আপনি শুধু প্রমাণীকৃত ব্যবহারকারীদের জন্য অ্যাক্সেস সীমাবদ্ধ করতে পারেন।

  2. আপনার অ্যাপে স্টোরেজ যোগ করতে Android , Apple বা Flutter- এর জন্য সেটআপ গাইড অনুসরণ করুন।

  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-তে স্থানান্তরিত হন

আপনার অ্যাপ যদি এখনও পুরোনো TensorFlow Lite Interpreter API ব্যবহার করে থাকে, তবে LiteRT CompiledModel API- তে স্থানান্তরিত হওয়ার কথা বিবেচনা করুন, যা পুরোনো API-এর তুলনায় উন্নত হার্ডওয়্যার অ্যাক্সিলারেশন সাপোর্ট এবং অন্যান্য উন্নতি প্রদান করে।