আপনার অ্যাপে যদি কাস্টম TensorFlow Lite মডেল ব্যবহার করা হয়, তাহলে আপনি আপনার মডেলগুলো ডেপ্লয় করতে Firebase ML ব্যবহার করতে পারেন। Firebase-এর মাধ্যমে মডেল ডেপ্লয় করে, আপনি আপনার অ্যাপের প্রাথমিক ডাউনলোডের আকার কমাতে পারেন এবং অ্যাপের নতুন সংস্করণ প্রকাশ না করেই এর ML মডেলগুলো আপডেট করতে পারেন। এছাড়াও, রিমোট কনফিগ এবং A/B টেস্টিং-এর সাহায্যে, আপনি বিভিন্ন ব্যবহারকারী গোষ্ঠীকে গতিশীলভাবে ভিন্ন ভিন্ন মডেল পরিবেশন করতে পারেন।
TensorFlow Lite মডেলগুলি
TensorFlow Lite মডেল হলো এমন ML মডেল যা মোবাইল ডিভাইসে চালানোর জন্য অপ্টিমাইজ করা হয়েছে। একটি TensorFlow Lite মডেল পেতে:
- আগে থেকে তৈরি কোনো মডেল ব্যবহার করুন, যেমন অফিসিয়াল টেনসরফ্লো লাইট মডেলগুলোর মধ্যে একটি।
- একটি TensorFlow মডেল, Keras মডেল, বা কংক্রিট ফাংশনকে TensorFlow Lite-এ রূপান্তর করুন।
উল্লেখ্য যে, ডার্ট-এর জন্য কোনো রক্ষণাবেক্ষণাধীন টেনসরফ্লো লাইট লাইব্রেরি না থাকলে, আপনাকে আপনার প্ল্যাটফর্মের নিজস্ব টেনসরফ্লো লাইট লাইব্রেরির সাথে ইন্টিগ্রেট করতে হবে। এই ইন্টিগ্রেশনটি এখানে নথিভুক্ত করা হয়নি।
শুরু করার আগে
যদি আগে থেকে না করে থাকেন, তাহলে Flutter-এর জন্য Firebase SDK-গুলো ইনস্টল ও চালু করুন ।
আপনার ফ্লাটার প্রজেক্টের রুট ডিরেক্টরি থেকে এমএল মডেল ডাউনলোডার প্লাগইনটি ইনস্টল করতে নিম্নলিখিত কমান্ডটি চালান:
flutter pub add firebase_ml_model_downloaderআপনার প্রকল্পটি পুনর্গঠন করুন:
flutter run
১. আপনার মডেলটি স্থাপন করুন
Firebase কনসোল অথবা Firebase অ্যাডমিন পাইথন এবং Node.js SDK ব্যবহার করে আপনার কাস্টম TensorFlow মডেলগুলো ডিপ্লয় করুন। কাস্টম মডেল ডিপ্লয় এবং পরিচালনা দেখুন।
আপনার Firebase প্রজেক্টে একটি কাস্টম মডেল যোগ করার পর, আপনি আপনার নির্দিষ্ট করা নামটি ব্যবহার করে অ্যাপগুলোতে মডেলটিকে রেফারেন্স করতে পারেন। যেকোনো সময়, আপনি getModel() কল করে একটি নতুন TensorFlow Lite মডেল ডেপ্লয় করতে এবং ব্যবহারকারীদের ডিভাইসে নতুন মডেলটি ডাউনলোড করতে পারেন (নিচে দেখুন)।
২. মডেলটি ডিভাইসে ডাউনলোড করুন এবং একটি TensorFlow Lite ইন্টারপ্রেটার চালু করুন।
আপনার অ্যাপে TensorFlow Lite মডেল ব্যবহার করতে, প্রথমে মডেল ডাউনলোডার ব্যবহার করে মডেলটির সর্বশেষ সংস্করণ ডিভাইসে ডাউনলোড করুন। তারপর, মডেলটি দিয়ে একটি TensorFlow Lite ইন্টারপ্রেটার ইনস্ট্যানশিয়েট করুন।
মডেল ডাউনলোড শুরু করতে, মডেল ডাউনলোডার-এর getModel() মেথডটি কল করুন এবং এর সাথে উল্লেখ করুন: মডেলটি আপলোড করার সময় আপনি যে নামটি দিয়েছিলেন, আপনি সর্বদা সর্বশেষ মডেলটি ডাউনলোড করতে চান কিনা, এবং কোন শর্তে ডাউনলোডের অনুমতি দিতে চান।
আপনি তিনটি ডাউনলোড পদ্ধতি থেকে বেছে নিতে পারেন:
| ডাউনলোডের ধরণ | বর্ণনা |
|---|---|
localModel | ডিভাইস থেকে স্থানীয় মডেলটি নিন। যদি কোনো স্থানীয় মডেল উপলব্ধ না থাকে, তবে এটি latestModel মতোই কাজ করে। আপনি যদি মডেল আপডেটের খোঁজ নিতে আগ্রহী না হন, তবে এই ডাউনলোড পদ্ধতিটি ব্যবহার করুন। উদাহরণস্বরূপ, আপনি মডেলের নাম সংগ্রহ করতে Remote Config ব্যবহার করছেন এবং সবসময় নতুন নামে মডেল আপলোড করেন (যা সুপারিশ করা হয়)। |
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;
// ...
});
অনেক অ্যাপ তাদের ইনিশিয়ালাইজেশন কোডে ডাউনলোডের কাজটি শুরু করে, কিন্তু মডেলটি ব্যবহার করার প্রয়োজন হওয়ার আগে যেকোনো সময়ে আপনি তা করতে পারেন।
৩. ইনপুট ডেটার উপর অনুমান সম্পাদন করুন
এখন যেহেতু আপনার মডেল ফাইলটি ডিভাইসে আছে, আপনি ইনফারেন্স সম্পাদন করার জন্য এটি টেনসরফ্লো লাইট ইন্টারপ্রেটারের সাথে ব্যবহার করতে পারেন। ডার্ট-এর জন্য কোনো রক্ষণাবেক্ষণাধীন টেনসরফ্লো লাইট লাইব্রেরি না থাকলে, আপনাকে আইওএস এবং অ্যান্ড্রয়েডের নেটিভ টেনসরফ্লো লাইট লাইব্রেরিগুলোর সাথে ইন্টিগ্রেট করতে হবে।
পরিশিষ্ট: মডেল নিরাপত্তা
আপনি আপনার TensorFlow Lite মডেলগুলোকে Firebase ML-এর কাছে যেভাবেই উপলব্ধ করুন না কেন, Firebase ML সেগুলোকে লোকাল স্টোরেজে স্ট্যান্ডার্ড সিরিয়ালাইজড প্রোটোবাফ ফরম্যাটে সংরক্ষণ করে।
তাত্ত্বিকভাবে, এর অর্থ হলো যে কেউ আপনার মডেলটি নকল করতে পারে। তবে, বাস্তবে বেশিরভাগ মডেলই অ্যাপ্লিকেশন-নির্দিষ্ট এবং অপটিমাইজেশনের মাধ্যমে এতটাই দুর্বোধ্য থাকে যে, এর ঝুঁকিটা অনেকটা প্রতিযোগীদের দ্বারা আপনার কোড ডিসঅ্যাসেম্বল ও পুনরায় ব্যবহারের ঝুঁকির মতোই। তা সত্ত্বেও, আপনার অ্যাপে একটি কাস্টম মডেল ব্যবহার করার আগে এই ঝুঁকি সম্পর্কে আপনার সচেতন থাকা উচিত।