1. সংক্ষিপ্ত বিবরণ

রিয়েলটাইম অন-ডিভাইস ইন-অ্যাপ ক্রয় অপ্টিমাইজেশন কোডল্যাবে আপনাকে স্বাগতম। এই কোডল্যাবে আপনি শিখবেন কিভাবে টেনসরফ্লো লাইট এবং ফায়ারবেস ব্যবহার করে আপনার অ্যাপে একটি কাস্টম ব্যক্তিগতকরণ মডেল প্রশিক্ষণ এবং স্থাপন করতে হয়।
এই টিউটোরিয়ালটি দেখায় কিভাবে ব্যক্তিগতকরণের জন্য একটি মেশিন লার্নিং মডেল তৈরি করতে হয়, বিশেষ করে এমন একটি মডেল যা বর্তমান ব্যবহারকারীর অবস্থা বিবেচনা করে সর্বোত্তম ইন-অ্যাপ ক্রয় (IAP) অফারটি পূর্বাভাস দেয়। এটি একটি প্রাসঙ্গিক দস্যু সমস্যার একটি উদাহরণ, একটি গুরুত্বপূর্ণ এবং ব্যাপকভাবে প্রযোজ্য ধরণের মেশিন লার্নিং সমস্যা যা সম্পর্কে আপনি এই কোডল্যাবে আরও জানতে পারবেন।
তুমি কি শিখবে
- Firebase অ্যানালিটিক্সের মাধ্যমে অ্যানালিটিক্স ডেটা সংগ্রহ করুন
- BigQuery ব্যবহার করে বিশ্লেষণ ডেটা প্রিপ্রসেস করা
- ইন-অ্যাপ ক্রয়ের (IAPs) ডিভাইসে অপ্টিমাইজেশনের জন্য একটি সহজ ML মডেল প্রশিক্ষণ দিন।
- Firebase ML-এ TFLite মডেল স্থাপন করুন এবং আপনার অ্যাপ থেকে সেগুলি অ্যাক্সেস করুন
- Firebase A/B পরীক্ষার মাধ্যমে বিভিন্ন মডেল পরিমাপ করুন এবং পরীক্ষা করুন
- পুনরাবৃত্ত ক্যাডেন্সের উপর সর্বশেষ তথ্য ব্যবহার করে নতুন মডেলগুলিকে প্রশিক্ষণ দিন এবং স্থাপন করুন
তোমার যা লাগবে
- অ্যান্ড্রয়েড স্টুডিও সংস্করণ 3.4+
- অ্যান্ড্রয়েড ২.৩+ এবং গুগল প্লে সার্ভিস ৯.৮ বা তার পরবর্তী ভার্সন সহ একটি ফিজিক্যাল টেস্ট ডিভাইস, অথবা গুগল প্লে সার্ভিস ৯.৮ বা তার পরবর্তী ভার্সন সহ একটি এমুলেটর
- যদি কোনও শারীরিক পরীক্ষার ডিভাইস ব্যবহার করা হয়, তাহলে একটি সংযোগ কেবল
- নবীন এমএল জ্ঞান
আপনি এই টিউটোরিয়ালটি কীভাবে ব্যবহার করবেন?
অ্যান্ড্রয়েড অ্যাপ তৈরির ক্ষেত্রে আপনার অভিজ্ঞতাকে আপনি কীভাবে মূল্যায়ন করবেন?
2. সমস্যা বিবৃতি
ধরুন আপনি একজন গেম ডেভেলপার যিনি প্রতিটি স্তরের শেষে ব্যক্তিগতকৃত ইন-অ্যাপ ক্রয় (IAP) পরামর্শ দেখাতে চান। আপনি প্রতিবার সীমিত সংখ্যক IAP বিকল্প দেখাতে পারবেন, এবং আপনি জানেন না কোনটি সেরা রূপান্তর পাবে। প্রতিটি ব্যবহারকারী এবং প্রতিটি সেশন আলাদা হওয়ায়, আমরা কীভাবে সর্বোচ্চ প্রত্যাশিত পুরষ্কার প্রদানকারী IAP অফারটি খুঁজে বের করব?
৩. নমুনা কোডটি পান
কমান্ড লাইন থেকে GitHub রিপোজিটরি ক্লোন করুন।
git clone https://github.com/googlecodelabs/firebase-iap-optimization.git
এই রেপোতে রয়েছে:
- একটি Jupyter নোটবুক (.ipynb) যা ব্যক্তিগতকরণ মডেলকে প্রশিক্ষণ দেয় এবং এটিকে একটি TFLite মডেলে প্যাকেজ করে।
- একটি নমুনা কোটলিন অ্যাপ যা ডিভাইসে ভবিষ্যদ্বাণী করার জন্য TFLite মডেল ব্যবহার করে
৪. ফায়ারবেস দিয়ে অ্যাপটি চালান
এই কোডল্যাবে, আমরা আমাদের কাল্পনিক গেম অ্যাপ - ফ্ল্যাপি স্পার্কি - এর IAP গুলি অপ্টিমাইজ করার উপর কাজ করব। গেমটি একটি সাইড-স্ক্রোলার যেখানে খেলোয়াড় একটি স্পার্কি নিয়ন্ত্রণ করে, দেয়ালের কলামের মধ্যে আঘাত না করেই উড়ে যাওয়ার চেষ্টা করে। লেভেলের শুরুতে, ব্যবহারকারীকে একটি IAP অফার দেওয়া হয় যা তাদের একটি পাওয়ারআপ দেবে। আমরা এই কোডল্যাবে শুধুমাত্র অ্যাপের IAP অপ্টিমাইজেশন অংশটি বাস্তবায়ন করব।
আপনি এখানে যা শিখবেন তা আপনার নিজস্ব অ্যাপে প্রয়োগ করতে পারবেন যা একটি Firebase প্রকল্পের সাথে সংযুক্ত। বিকল্পভাবে, আপনি এই কোডল্যাবের জন্য একটি নতুন Firebase প্রকল্প তৈরি করতে পারেন। Firebase দিয়ে শুরু করতে যদি আপনার সাহায্যের প্রয়োজন হয়, তাহলে অনুগ্রহ করে এই বিষয়ে আমাদের টিউটোরিয়ালগুলি দেখুন ( Android এবং iOS )।
৫. আপনার অ্যাপে বিশ্লেষণমূলক ইভেন্ট সংগ্রহ করুন
অ্যানালিটিক্স ইভেন্টগুলি ব্যবহারকারীর আচরণ সম্পর্কে অন্তর্দৃষ্টি প্রদান করে এবং ML মডেলকে প্রশিক্ষণ দেওয়ার জন্য ব্যবহৃত হয়। উদাহরণস্বরূপ, মডেলটি শিখতে পারে যে যারা বেশি সময় ধরে খেলেন তাদের অতিরিক্ত জীবন পাওয়ার জন্য IAP তৈরি করার সম্ভাবনা বেশি। এই তথ্য শেখার জন্য ML মডেলের বিশ্লেষণ ইভেন্টগুলির ইনপুট প্রয়োজন।
কিছু বিশ্লেষণমূলক ইভেন্ট যা আমরা লগ করতে চাইতে পারি তার মধ্যে রয়েছে:
- ব্যবহারকারী কতক্ষণ গেমটি খেলেন
- ব্যবহারকারী কোন স্তরে পৌঁছায়
- ব্যবহারকারী কত কয়েন খরচ করে
- ব্যবহারকারী কোন জিনিস কিনবেন
নমুনা ডেটা ডাউনলোড করুন (ঐচ্ছিক)
নিম্নলিখিত ধাপগুলিতে, আমরা আমাদের মডেলে ব্যবহারের জন্য বিশ্লেষণ ইভেন্টগুলি লগ করার জন্য Firebase Analytics ব্যবহার করব। যদি আপনার কাছে ইতিমধ্যেই বিশ্লেষণ ডেটা থাকে যা আপনি ব্যবহার করতে চান, তাহলে এই কোডল্যাবের "অপ্টিমাইজেশন মডেল প্রশিক্ষণ দিন" বিভাগে যান এবং আপনি আমাদের নমুনা ডেটা অনুসরণ করতে পারেন।
Firebase Analytics SDK ব্যবহার করে ডেটা সংগ্রহ করুন
এই অ্যানালিটিক্স ইভেন্টগুলি সংগ্রহ করতে আমরা Firebase Analytics ব্যবহার করব। Firebase Analytics SDK স্বয়ংক্রিয়ভাবে বেশ কয়েকটি ইভেন্ট এবং ব্যবহারকারীর বৈশিষ্ট্য ক্যাপচার করে। এটি আপনাকে আপনার অ্যাপের জন্য অনন্য ইভেন্টগুলি পরিমাপ করার জন্য আপনার নিজস্ব কাস্টম ইভেন্টগুলি সংজ্ঞায়িত করার অনুমতি দেয়।
ফায়ারবেস অ্যানালিটিক্স SDK ইনস্টল করা হচ্ছে
আপনি আপনার অ্যাপে Firebase Analytics ব্যবহার শুরু করতে পারেন "Google Analytics দিয়ে শুরু করুন" ডকুমেন্টেশন অনুসরণ করে। এই কোডল্যাবের শুরুতে ক্লোন করা firebase-iap-optimization রিপোজিটরিতে ইতিমধ্যেই Firebase Analytics SDK অন্তর্ভুক্ত রয়েছে।
কাস্টম ইভেন্ট লগ করুন
Firebase Analytics SDK সেট আপ করার পর, আমরা আমাদের মডেলকে প্রশিক্ষণ দেওয়ার জন্য প্রয়োজনীয় ইভেন্টগুলি লগ করা শুরু করতে পারি।
এটি করার আগে, বিশ্লেষণ ইভেন্টে একটি ব্যবহারকারী আইডি সেট করা গুরুত্বপূর্ণ, যাতে আমরা সেই ব্যবহারকারীর বিশ্লেষণ ডেটা অ্যাপে থাকা তাদের বিদ্যমান ডেটার সাথে সংযুক্ত করতে পারি।
MainActivity.kt সম্পর্কে
firebaseAnalytics.setUserId("player1")
এরপর আমরা প্লেয়ার ইভেন্ট লগ করতে পারি। IAP অপ্টিমাইজেশনের জন্য, আমরা ব্যবহারকারীর কাছে উপস্থাপিত প্রতিটি IAP অফার এবং ব্যবহারকারীর দ্বারা সেই অফারটি ক্লিক করা হয়েছে কিনা তা লগ করতে চাই। এটি আমাদের দুটি বিশ্লেষণ ইভেন্ট দেবে - offer_iap এবং offer_accepted । আমরা একটি অনন্য offer_id এর ট্র্যাকও রাখব যাতে আমরা পরে এই ডেটা একত্রিত করে দেখতে পারি যে কোনও অফার গৃহীত হয়েছে কিনা।
MainActivity.kt সম্পর্কে
predictButton?.setOnClickListener {
predictionResult = iapOptimizer.predict()
firebaseAnalytics.logEvent("offer_iap"){
param("offer_type", predictionResult)
param("offer_id", sessionId)
}
}
acceptButton?.setOnClickListener {
firebaseAnalytics.logEvent("offer_accepted") {
param("offer_type", predictionResult)
param("offer_id", sessionId)
}
}
কাস্টম ইভেন্ট লগিং সম্পর্কে আরও তথ্যের জন্য, Firebase Analytics Log Events ডকুমেন্টেশন দেখুন।
৬. BigQuery-তে ডেটা প্রিপ্রসেস করা
শেষ ধাপে, আমরা ব্যবহারকারীর কাছে কোন IAP অফারটি উপস্থাপন করা হয়েছে এবং ব্যবহারকারী কোন IAP অফারটিতে ক্লিক করেছেন সে সম্পর্কে ইভেন্টগুলি সংগ্রহ করেছি। এই ধাপে, আমরা এই ইভেন্ট ডেটা ব্যবহারকারীর ডেটার সাথে একত্রিত করব যাতে আমাদের মডেলটি সম্পূর্ণ চিত্র থেকে শিখতে পারে।
এটি করার জন্য, আমাদের বিশ্লেষণ ইভেন্টগুলি BigQuery-তে রপ্তানি করে শুরু করতে হবে।
আপনার Firebase প্রকল্পটি BigQuery-এর সাথে লিঙ্ক করুন
আপনার Firebase প্রকল্প এবং এর অ্যাপগুলিকে BigQuery-এর সাথে লিঙ্ক করতে:
- Firebase-এ সাইন ইন করুন।
- ক্লিক করুন
, তারপর প্রকল্প সেটিংস নির্বাচন করুন। - প্রজেক্ট সেটিংস পৃষ্ঠায়, ইন্টিগ্রেশন ট্যাবে ক্লিক করুন।
- BigQuery কার্ডে, লিঙ্কে ক্লিক করুন।
(ঐচ্ছিক) আপনার ফায়ারস্টোর সংগ্রহগুলি BigQuery-তে রপ্তানি করুন
এই ধাপে, মডেলটি প্রশিক্ষণের জন্য আপনার কাছে Firestore থেকে BigQuery-তে অতিরিক্ত ব্যবহারকারীর ডেটা রপ্তানি করার বিকল্প রয়েছে। আপনি যদি আপাতত এই ধাপটি এড়িয়ে যেতে চান, তাহলে এই কোডল্যাবের "BigQuery-তে ডেটা প্রস্তুত করা" বিভাগে যান এবং আপনি শেষ ধাপে লগ করা Firebase Analytics ইভেন্টগুলি অনুসরণ করতে পারেন।
ফায়ারস্টোর এমন একটি জায়গা হতে পারে যেখানে আপনি ব্যবহারকারীদের সাইন আপের তারিখ, অ্যাপ-মধ্যস্থ কেনাকাটা, গেমের লেভেল, ব্যালেন্সে থাকা কয়েন, অথবা মডেলটিকে প্রশিক্ষণের জন্য কার্যকর হতে পারে এমন অন্য কোনও বৈশিষ্ট্য সংরক্ষণ করেছেন।
আপনার ফায়ারস্টোর সংগ্রহগুলি BigQuery-তে রপ্তানি করতে, আপনি Firestore BigQuery এক্সপোর্ট এক্সটেনশন ইনস্টল করতে পারেন। তারপর, BigQuery-তে টেবিল যোগ করুন যাতে এই ডেটা Google Analytics-এর ডেটার সাথে একত্রিত করে আপনার ব্যক্তিগতকরণ মডেল এবং এই কোডল্যাবের বাকি অংশে ব্যবহার করা যায়।
BigQuery-তে ডেটা প্রস্তুত করা হচ্ছে
পরবর্তী কয়েকটি ধাপে, আমরা BigQuery ব্যবহার করে আমাদের কাঁচা বিশ্লেষণ ডেটাকে আমাদের মডেলকে প্রশিক্ষণের জন্য ব্যবহারযোগ্য ডেটাতে রূপান্তর করব।
ব্যবহারকারী এবং গেমের অবস্থার উপর ভিত্তি করে কোন IAP অফার উপস্থাপন করতে হবে তা আমাদের মডেলটি জানতে, আমাদের নিম্নলিখিত তথ্যগুলি সংগঠিত করতে হবে:
- ব্যবহারকারী
- খেলার অবস্থা
- উপস্থাপিত প্রস্তাবটি
- উপস্থাপিত অফারটিতে ক্লিক করা হয়েছে কিনা
আমাদের মডেলটি যাতে প্রক্রিয়াজাত করতে পারে তার জন্য এই সমস্ত ডেটা একটি টেবিলের একক সারিতে সংগঠিত করতে হবে। ভাগ্যক্রমে, BigQuery আমাদের ঠিক এটি করতে সাহায্য করার জন্য সেট আপ করা হয়েছে।
BigQuery আপনার কোয়েরিটি সংগঠিত রাখার জন্য "ভিউ" তৈরি করার সুযোগ দেয়। ভিউ হল একটি ভার্চুয়াল টেবিল যা একটি SQL কোয়েরি দ্বারা সংজ্ঞায়িত করা হয়। যখন আপনি একটি ভিউ তৈরি করেন, তখন আপনি এটিকে একইভাবে কোয়েরি করেন যেভাবে আপনি একটি টেবিল কোয়েরি করেন। এটি ব্যবহার করে আমরা প্রথমে আমাদের বিশ্লেষণ ডেটা পরিষ্কার করতে পারি।
প্রতিটি ইন-অ্যাপ ক্রয় অফারে ক্লিক করা হয়েছে কিনা তা দেখার জন্য, আমাদের আগের ধাপে লগ করা offer_iap এবং offer_accepted ইভেন্টগুলিতে যোগদান করতে হবে।
all_offers_joined - BigQuery ভিউ
SELECT
iap_offers.*,
CASE
WHEN accepted_offers.accepted IS NULL THEN FALSE ELSE TRUE
END
is_clicked,
FROM
`iap-optimization.ml_sample.accepted_offers` AS accepted_offers
RIGHT JOIN
`iap-optimization.ml_sample.iap_offers` AS iap_offers
ON
accepted_offers.offer_id =iap_offers.offer_id;
all_offers_with_user_data - BigQuery ভিউ
SELECT
offers.is_clicked,
offers.presented_powerup,
offers.last_run_end_reason,
offers.event_timestamp,
users.*
FROM
`iap-optimization.ml_sample.all_offers_joined` AS offers
LEFT JOIN
`iap-optimization.ml_sample.all_users` AS users
ON
users.user_id = offers.user_id;
গুগল ক্লাউড স্টোরেজে bigQuery ডেটাসেট রপ্তানি করুন
পরিশেষে, আমরা bigquery ডেটাসেটটি GCS-এ রপ্তানি করতে পারি যাতে আমরা এটি আমাদের মডেল প্রশিক্ষণে ব্যবহার করতে পারি।


৭. অপ্টিমাইজেশন মডেলটি প্রশিক্ষণ দিন
নমুনা তথ্য
এই কোডল্যাবের বাকি অংশের সাথে পূর্ববর্তী ধাপ "BigQuery-তে ডেটা প্রিপ্রসেস" থেকে আপনার ডেটা ব্যবহার করুন, অথবা এখানে দেওয়া ডাউনলোডযোগ্য নমুনা ডেটা ব্যবহার করুন।
সমস্যার সংজ্ঞা
মডেলটিকে প্রশিক্ষণ দেওয়া শুরু করার আগে, আসুন আমাদের প্রাসঙ্গিক দস্যু সমস্যাটি সংজ্ঞায়িত করার জন্য কিছু সময় ব্যয় করি।
প্রাসঙ্গিক দস্যুদের ব্যাখ্যা
Flappy Sparky-তে প্রতিটি স্তরের শুরুতে, ব্যবহারকারীকে একটি IAP অফার দেওয়া হবে যা তাদের একটি পাওয়ারআপ দেবে। আমরা প্রতিবার কেবল একটি IAP বিকল্প দেখাতে পারি, এবং আমরা জানি না কোনটি সেরা রূপান্তর পাবে। প্রতিটি ব্যবহারকারী এবং প্রতিটি সেশন আলাদা হওয়ায়, আমরা কীভাবে সর্বোচ্চ প্রত্যাশিত পুরষ্কার প্রদানকারী IAP অফারটি খুঁজে বের করব?
এই ক্ষেত্রে, ব্যবহারকারী যদি IAP অফার গ্রহণ না করে তাহলে পুরষ্কার 0 করা যাক, এবং যদি তারা গ্রহণ করে তাহলে IAP মান। আপনার পুরষ্কার সর্বাধিক করার চেষ্টা করার জন্য, আমরা আমাদের ঐতিহাসিক তথ্য ব্যবহার করে এমন একটি মডেল তৈরি করতে পারি যা ব্যবহারকারীকে প্রদত্ত প্রতিটি কাজের জন্য প্রত্যাশিত পুরষ্কারের পূর্বাভাস দেয় এবং সর্বোচ্চ পুরষ্কার সহ ক্রিয়াটি খুঁজে বের করে।

ভবিষ্যদ্বাণীতে আমরা যা ব্যবহার করব তা হল:
- অবস্থা: ব্যবহারকারী এবং তাদের বর্তমান সেশন সম্পর্কে তথ্য
- অ্যাকশন: IAP অফারগুলি আমরা দেখানোর জন্য বেছে নিতে পারি
- পুরষ্কার: IAP অফারের মূল্য
শোষণ বনাম অন্বেষণ
সকল বহু-সশস্ত্র দস্যু সমস্যার জন্য, অ্যালগরিদমকে অনুসন্ধান (কোন ক্রিয়া সর্বোত্তম ফলাফল দেয় তা জানতে আরও তথ্য সংগ্রহ করা) এবং শোষণ (সর্বোচ্চ পুরষ্কার পেতে সর্বোত্তম ফলাফল ব্যবহার করে) এর মধ্যে ভারসাম্য বজায় রাখতে হবে।
আমাদের সমস্যার সংস্করণে, আমরা এটিকে সহজ করে তুলব যাতে ক্লাউডে পর্যায়ক্রমে মডেলটিকে প্রশিক্ষণ দেওয়া যায় এবং ব্যবহারকারীর ডিভাইসে মডেলটি ব্যবহার করার সময় শুধুমাত্র ভবিষ্যদ্বাণী করা যায় (ব্যবহারকারীর ডিভাইসে প্রশিক্ষণের বিপরীতে)। মডেলটি ব্যবহারের পরে আমাদের পর্যাপ্ত প্রশিক্ষণ ডেটা আছে কিনা তা নিশ্চিত করার জন্য, আমাদের অ্যাপ ব্যবহারকারীদের মাঝে মাঝে (যেমন 30%) এলোমেলো ফলাফল দেখাতে হবে। অনুসন্ধান এবং শোষণের ভারসাম্য বজায় রাখার এই কৌশলটিকে Epsilon-greedy বলা হয়।
মডেলকে প্রশিক্ষণ দেওয়া
শুরু করার জন্য আপনি কোডল্যাবের সাথে দেওয়া প্রশিক্ষণ স্ক্রিপ্ট ( training.ipynb ) ব্যবহার করতে পারেন। আমাদের লক্ষ্য হল এমন একটি মডেল প্রশিক্ষণ দেওয়া যা একটি অবস্থা অনুসারে প্রতিটি কর্মের জন্য প্রত্যাশিত পুরষ্কারের পূর্বাভাস দেয়, তারপর আমরা সেই ক্রিয়াটি খুঁজে পাই যা আমাদের সর্বোচ্চ প্রত্যাশিত পুরষ্কার দেয়।
স্থানীয়ভাবে প্রশিক্ষণ
আপনার নিজস্ব মডেল প্রশিক্ষণ শুরু করার সবচেয়ে সহজ উপায় হল এই কোডল্যাবের কোড নমুনায় নোটবুকের একটি অনুলিপি তৈরি করা।
এই কোডল্যাবের জন্য আপনার GPU-এর প্রয়োজন নেই, তবে যদি আপনার নিজস্ব ডেটা অন্বেষণ করার জন্য এবং আপনার নিজস্ব মডেলকে প্রশিক্ষণ দেওয়ার জন্য আরও শক্তিশালী মেশিনের প্রয়োজন হয়, তাহলে আপনার প্রশিক্ষণের গতি বাড়ানোর জন্য আপনি একটি AI প্ল্যাটফর্ম নোটবুক ইনস্ট্যান্স পেতে পারেন।
প্রদত্ত প্রশিক্ষণ স্ক্রিপ্টে, আমরা একটি ইটারেটর তৈরি করেছি যা BigQuery থেকে রপ্তানি করা CSV ফাইলগুলি থেকে প্রশিক্ষণ ডেটা তৈরি করে। তারপর আমরা Keras দিয়ে আমাদের মডেলকে প্রশিক্ষণ শুরু করার জন্য ডেটা ব্যবহার করেছি। মডেলটিকে কীভাবে প্রশিক্ষণ দিতে হয় তার বিশদ বিবরণ পাইথন নোটবুকের মন্তব্যে পাওয়া যাবে।
মডেলের কর্মক্ষমতা পরিমাপ করুন
মডেলটিকে প্রশিক্ষণ দেওয়ার সময়, আমরা এটিকে একটি র্যান্ডম এজেন্টের সাথে তুলনা করব যারা র্যান্ডমভাবে IAP অফার নির্বাচন করে আমাদের মডেলটি আসলে শিখছে কিনা তা দেখার জন্য। এই যুক্তিটি ValidationCallback এর অধীনে থাকে .
প্রশিক্ষণ শেষে, আমরা আমাদের মডেলটি আবার পরীক্ষা করার জন্য test.csv এর ডেটা ব্যবহার করি। মডেলটি আগে কখনও এই ডেটা দেখেনি, তাই আমরা নিশ্চিত থাকতে পারি যে ফলাফলটি অতিরিক্ত ফিটিংয়ের কারণে নয়। এই ক্ষেত্রে, মডেলটি র্যান্ডম এজেন্টের তুলনায় 28% ভালো পারফর্ম করে।
TFLite মডেলটি রপ্তানি করুন
এখন আমাদের কাছে ব্যবহারের জন্য একটি প্রশিক্ষিত মডেল আছে, তবে এটি বর্তমানে টেনসরফ্লো ফর্ম্যাটে রয়েছে। আমাদের মডেলটি TFLite ফর্ম্যাটে রপ্তানি করতে হবে যাতে এটি মোবাইল ডিভাইসে চালানো যায়।
অনুসরণ
converter = tflite.TFLiteConverter.from_keras_model(model)
tflite_model = converter.convert()
with tf.io.gfile.GFile('iap-optimizer.tflite', 'wb') as f:
f.write(tflite_model)
এখান থেকে, আপনি মডেলটি ডাউনলোড করতে পারেন এবং আপনার অ্যাপের সাথে মডেলটি বান্ডেল করতে পারেন।
ঐচ্ছিকভাবে, একটি প্রোডাকশন অ্যাপের জন্য, আমরা আপনাকে Firebase ML-এ মডেলটি স্থাপন করার এবং Firebase-কে আপনার মডেলটি হোস্ট করার পরামর্শ দিচ্ছি। এটি দুটি প্রধান কারণে কার্যকর:
- আমরা অ্যাপ ইনস্টলের আকার ছোট রাখতে পারি এবং প্রয়োজনে শুধুমাত্র মডেলটি ডাউনলোড করতে পারি।
- মডেলটি নিয়মিত আপডেট করা যেতে পারে এবং পুরো অ্যাপের চেয়ে আলাদা রিলিজ চক্র সহ।
Firebase ML-এ মডেলটি কীভাবে স্থাপন করবেন তা শিখতে, আপনি আপনার TFLite-চালিত অ্যান্ড্রয়েড অ্যাপ কোডল্যাবে Firebase যোগ করুন অনুসরণ করতে পারেন। আপনার কাছে Firebase কনসোল বা Python API ব্যবহার করে এটি স্থাপন করার বিকল্প রয়েছে।
৮. ডিভাইসে ভবিষ্যদ্বাণী করা
পরবর্তী ধাপ হল ডিভাইসে থাকা মডেল ব্যবহার করে ভবিষ্যদ্বাণী করা। আপনি আপনার ডাউনলোড করা নমুনা কোডের app ফোল্ডারে Firebase ML থেকে একটি মডেল ডাউনলোড করে এমন একটি উদাহরণ অ্যাপ খুঁজে পেতে পারেন এবং কিছু ক্লায়েন্ট-সাইড ডেটা দিয়ে অনুমান করতে এটি ব্যবহার করতে পারেন।
যেহেতু আমরা মডেল প্রশিক্ষণের সময় কিছু প্রিপ্রসেসিং প্রয়োগ করেছি, তাই ডিভাইসে চালানোর সময় আমাদের মডেল ইনপুটে একই প্রিপ্রসেসিং প্রয়োগ করতে হবে। এটি করার একটি সহজ উপায় হল একটি প্ল্যাটফর্ম এবং ভাষা-স্বাধীন ফর্ম্যাট ব্যবহার করা, যেমন একটি JSON ফাইল যাতে প্রতিটি বৈশিষ্ট্যের একটি মানচিত্র থাকে যা মেটাডেটাতে প্রিপ্রসেসিং কীভাবে করা হয় তা সম্পর্কে তথ্য প্রদান করে। আপনি উদাহরণ অ্যাপে এটি কীভাবে করা হয় সে সম্পর্কে আরও বিশদ জানতে পারেন।
এরপর, আমরা মডেলটিকে নিম্নরূপ একটি পরীক্ষার ইনপুট দিই:
IapOptimzer.kt সম্পর্কে
val testInput = mapOf(
"coins_spent" to 2048f,
"distance_avg" to 1234f,
"device_os" to "ANDROID",
"game_day" to 10f,
"geo_country" to "Canada",
"last_run_end_reason" to "laser"
)
মডেলটি পরামর্শ দেয় যে sparky_armor হল এই নির্দিষ্ট ব্যবহারকারীর জন্য সেরা IAP পাওয়ারআপ।

মডেলের নির্ভুলতা পরিমাপ করুন
আমাদের মডেলের নির্ভুলতা পরিমাপ করার জন্য, আমরা কেবল আমাদের মডেল দ্বারা পূর্বাভাসিত IAP অফারগুলি এবং Firebase Analytics ব্যবহার করে সেগুলিতে ক্লিক করা হয়েছে কিনা তা ট্র্যাক রাখতে পারি। মডেলের প্রকৃত কর্মক্ষমতা পরিমাপ করার জন্য আপনি Firebase A/B পরীক্ষার সাথে এটি ব্যবহার করতে পারেন। এটিকে আরও এক ধাপ এগিয়ে নিয়ে যাওয়ার জন্য, আপনি মডেলের বিভিন্ন পুনরাবৃত্তিতে A/B পরীক্ষাও করতে পারেন। আপনি Create Firebase Remote Config Experiments with A/B Testing ডকুমেন্টেশনে Firebase এর সাথে A/B পরীক্ষা সম্পর্কে আরও জানতে পারবেন।
৯. (ঐচ্ছিক): নতুন তথ্য সহ নিয়মিত মডেল আপডেট করা
নতুন ডেটা আসার সাথে সাথে যদি আপনার মডেলটি আপডেট করার প্রয়োজন হয়, তাহলে আপনি বারবার আপনার মডেলটিকে পুনরায় প্রশিক্ষণ দেওয়ার জন্য একটি পাইপলাইন সেট আপ করতে পারেন। এটি করার জন্য, আপনাকে প্রথমে নিশ্চিত করতে হবে যে উপরে উল্লিখিত অ্যাপসিলন-লোভী কৌশলটি ব্যবহার করে প্রশিক্ষণের জন্য আপনার কাছে নতুন ডেটা আছে। (যেমন মডেল পূর্বাভাসের ফলাফল ৭০% সময় এবং র্যান্ডম ফলাফল ৩০% সময় ব্যবহার করা)।
প্রশিক্ষণের জন্য একটি পাইপলাইন কনফিগার করা এবং নতুন ডেটা স্থাপন করা এই কোডল্যাবের আওতার বাইরে, শুরু করতে আপনি Google Cloud AI প্ল্যাটফর্ম এবং TFX দেখতে পারেন।
১০. অভিনন্দন!
এই কোডল্যাবে, আপনি শিখেছেন কিভাবে Firebase ব্যবহার করে অ্যাপ-মধ্যস্থ কেনাকাটা অপ্টিমাইজ করার জন্য একটি অন-ডিভাইস TFLite মডেলকে প্রশিক্ষণ এবং স্থাপন করতে হয়। TFLite এবং Firebase সম্পর্কে আরও জানতে, অন্যান্য TFLite নমুনা এবং Firebase শুরু করার নির্দেশিকাগুলি দেখুন।
আপনার যদি কোন প্রশ্ন থাকে, তাহলে আপনি সেগুলি Stack Overflow #firebase-machine-learning এ রেখে যেতে পারেন।
আমরা যা কভার করেছি
- টেনসরফ্লো লাইট
- ফায়ারবেস এমএল
- ফায়ারবেস অ্যানালিটিক্স
- বিগকুয়েরি
পরবর্তী পদক্ষেপ
- আপনার অ্যাপের জন্য একটি অপ্টিমাইজার মডেল প্রশিক্ষণ দিন এবং স্থাপন করুন।