Flutter সহ একটি কাস্টম TensorFlow Lite মডেল ব্যবহার করুন

যদি আপনার অ্যাপ কাস্টম TensorFlow Lite মডেল ব্যবহার করে, তাহলে আপনি আপনার মডেলগুলি স্থাপন করতে Firebase ML ব্যবহার করতে পারেন। Firebase এর সাথে মডেল স্থাপন করে, আপনি আপনার অ্যাপের প্রাথমিক ডাউনলোডের আকার কমাতে পারেন এবং আপনার অ্যাপের নতুন সংস্করণ প্রকাশ না করেই আপনার অ্যাপের ML মডেল আপডেট করতে পারেন। এবং, রিমোট কনফিগারেশন এবং A/B টেস্টিং এর সাথে, আপনি গতিশীলভাবে বিভিন্ন মডেল ব্যবহারকারীদের বিভিন্ন সেটে পরিবেশন করতে পারেন।

টেনসরফ্লো লাইট মডেল

TensorFlow Lite মডেল হল ML মডেল যা মোবাইল ডিভাইসে চালানোর জন্য অপ্টিমাইজ করা হয়। একটি টেনসরফ্লো লাইট মডেল পেতে:

মনে রাখবেন যে Dart-এর জন্য রক্ষণাবেক্ষণ করা TensorFlow Lite লাইব্রেরির অনুপস্থিতিতে, আপনাকে আপনার প্ল্যাটফর্মের জন্য নেটিভ TensorFlow Lite লাইব্রেরির সাথে একীভূত করতে হবে। এই ইন্টিগ্রেশন এখানে নথিভুক্ত করা হয় না.

আপনি শুরু করার আগে

  1. আপনি যদি ইতিমধ্যে এটি না করে থাকেন তবে ফ্লটারের জন্য Firebase SDK ইনস্টল করুন এবং শুরু করুন

  2. আপনার ফ্লাটার প্রকল্পের রুট ডিরেক্টরি থেকে, ML মডেল ডাউনলোডার প্লাগইন ইনস্টল করতে নিম্নলিখিত কমান্ডটি চালান:

    flutter pub add firebase_ml_model_downloader
    
  3. আপনার প্রকল্প পুনর্নির্মাণ:

    flutter run
    

1. আপনার মডেল স্থাপন করুন

Firebase কনসোল বা Firebase অ্যাডমিন পাইথন এবং Node.js SDK ব্যবহার করে আপনার কাস্টম TensorFlow মডেলগুলি স্থাপন করুন৷ কাস্টম মডেল স্থাপন এবং পরিচালনা দেখুন।

আপনি আপনার ফায়ারবেস প্রোজেক্টে একটি কাস্টম মডেল যোগ করার পরে, আপনি আপনার নির্দিষ্ট করা নাম ব্যবহার করে আপনার অ্যাপে মডেলটি উল্লেখ করতে পারেন। যে কোনো সময়ে, আপনি একটি নতুন TensorFlow Lite মডেল স্থাপন করতে পারেন এবং getModel() কল করে ব্যবহারকারীদের ডিভাইসে নতুন মডেল ডাউনলোড করতে পারেন (নীচে দেখুন)।

2. ডিভাইসে মডেলটি ডাউনলোড করুন এবং একটি TensorFlow Lite ইন্টারপ্রেটার শুরু করুন৷

আপনার অ্যাপে আপনার TensorFlow Lite মডেল ব্যবহার করতে, ডিভাইসে মডেলটির সর্বশেষ সংস্করণ ডাউনলোড করতে প্রথমে মডেল ডাউনলোডার ব্যবহার করুন। তারপরে, মডেলের সাথে একটি TensorFlow Lite ইন্টারপ্রেটার ইনস্ট্যান্টিয়েট করুন।

মডেল ডাউনলোড শুরু করতে, মডেল ডাউনলোডারের getModel() পদ্ধতিতে কল করুন, আপনি মডেলটি আপলোড করার সময় আপনি যে নামটি নির্ধারণ করেছেন তা উল্লেখ করে, আপনি সর্বদা সর্বশেষ মডেলটি ডাউনলোড করতে চান কিনা এবং যে শর্তে আপনি ডাউনলোড করার অনুমতি দিতে চান তা উল্লেখ করে৷

আপনি তিনটি ডাউনলোড আচরণ থেকে চয়ন করতে পারেন:

ডাউনলোড টাইপ বর্ণনা
localModel ডিভাইস থেকে স্থানীয় মডেল পান. যদি কোনও স্থানীয় মডেল উপলব্ধ না থাকে তবে এটি latestModel মতো আচরণ করে। আপনি মডেল আপডেটের জন্য চেক করতে আগ্রহী না হলে এই ডাউনলোড টাইপ ব্যবহার করুন. উদাহরণস্বরূপ, আপনি মডেলের নামগুলি পুনরুদ্ধার করতে রিমোট কনফিগ ব্যবহার করছেন এবং আপনি সর্বদা নতুন নামে মডেলগুলি আপলোড করছেন (প্রস্তাবিত)।
localModelUpdateInBackground ডিভাইস থেকে স্থানীয় মডেল পান এবং পটভূমিতে মডেল আপডেট করা শুরু করুন৷ যদি কোনও স্থানীয় মডেল উপলব্ধ না থাকে তবে এটি latestModel মতো আচরণ করে।
latestModel সর্বশেষ মডেল পান. স্থানীয় মডেল সর্বশেষ সংস্করণ হলে, স্থানীয় মডেল প্রদান করে। অন্যথায়, সর্বশেষ মডেল ডাউনলোড করুন. সর্বশেষ সংস্করণ ডাউনলোড না হওয়া পর্যন্ত এই আচরণটি অবরুদ্ধ হবে (প্রস্তাবিত নয়)। এই আচরণটি শুধুমাত্র সেই ক্ষেত্রে ব্যবহার করুন যেখানে আপনার স্পষ্টভাবে সর্বশেষ সংস্করণের প্রয়োজন৷

আপনার মডেল-সম্পর্কিত কার্যকারিতা অক্ষম করা উচিত-উদাহরণস্বরূপ, আপনার UI-এর অংশ ধূসর-আউট বা লুকান-যতক্ষণ না আপনি নিশ্চিত করছেন যে মডেলটি ডাউনলোড হয়েছে।

FirebaseModelDownloader.instance
    .getModel(
        "yourModelName",
        FirebaseModelDownloadType.localModel,
        FirebaseModelDownloadConditions(
          iosAllowsCellularAccess: true,
          iosAllowsBackgroundDownloading: false,
          androidChargingRequired: false,
          androidWifiRequired: false,
          androidDeviceIdleRequired: false,
        )
    )
    .then((customModel) {
      // Download complete. Depending on your app, you could enable the ML
      // feature, or switch from the local model to the remote model, etc.

      // The CustomModel object contains the local path of the model file,
      // which you can use to instantiate a TensorFlow Lite interpreter.
      final localModelPath = customModel.file;

      // ...
    });

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

3. ইনপুট ডেটার উপর অনুমান সম্পাদন করুন

এখন আপনার ডিভাইসে আপনার মডেল ফাইল আছে আপনি অনুমান সম্পাদন করতে TensorFlow Lite দোভাষীর সাথে এটি ব্যবহার করতে পারেন। ডার্টের জন্য রক্ষণাবেক্ষণ করা টেনসরফ্লো লাইট লাইব্রেরির অনুপস্থিতিতে, আপনাকে আইওএস এবং অ্যান্ড্রয়েডের জন্য নেটিভ টেনসরফ্লো লাইট লাইব্রেরির সাথে একীভূত করতে হবে।

পরিশিষ্ট: মডেল নিরাপত্তা

আপনি কীভাবে আপনার টেনসরফ্লো লাইট মডেলগুলিকে Firebase ML-এ উপলব্ধ করেন না কেন, Firebase ML স্থানীয় স্টোরেজে স্ট্যান্ডার্ড সিরিয়ালাইজড প্রোটোবাফ ফর্ম্যাটে সঞ্চয় করে৷

তত্ত্বগতভাবে, এর মানে হল যে কেউ আপনার মডেল অনুলিপি করতে পারে। যাইহোক, বাস্তবে, বেশিরভাগ মডেলগুলি এতটাই অ্যাপ্লিকেশন-নির্দিষ্ট এবং অপ্টিমাইজেশান দ্বারা অস্পষ্ট যে ঝুঁকি প্রতিযোগীদের বিচ্ছিন্ন করা এবং আপনার কোড পুনরায় ব্যবহার করার মতোই। তবুও, আপনার অ্যাপে একটি কাস্টম মডেল ব্যবহার করার আগে আপনার এই ঝুঁকি সম্পর্কে সচেতন হওয়া উচিত।