কিভাবে Tokopedia মেশিন লার্নিং ব্যবহার করে তাদের বিক্রেতার ওয়েব অ্যাপ উন্নত করে অপারেশনাল খরচ কমিয়েছে

টোকোপিডিয়া হল একটি ইন্দোনেশিয়ান প্রযুক্তি কোম্পানি যার একটি বৃহত্তম ইকমার্স মার্কেটপ্লেস, এটির প্ল্যাটফর্মে 40টি ডিজিটাল পণ্য এবং 14 মিলিয়নেরও বেশি নিবন্ধিত বিক্রেতা হোস্ট করে৷

Mitra Tokopedia , Tokopedia-এর ব্যবসায়িক ভার্টিক্যালের অংশ, একটি ওয়েব অ্যাপ্লিকেশন যা ছোট ব্যবসার মালিকদের ডিজিটাল পণ্য যেমন ক্রেডিট এবং গেম ভাউচার, ডেটা প্যাকেজ, বিদ্যুৎ টোকেন, জাতীয় স্বাস্থ্যসেবা বিল এবং অন্যান্য বিক্রি করতে সাহায্য করে। ওয়েবসাইটটি 700 টিরও বেশি শহরে মিত্র টোকোপিডিয়া বিক্রেতাদের জন্য প্রাথমিক চ্যানেলগুলির মধ্যে একটি, এটি একটি মসৃণ ব্যবহারকারীর অভিজ্ঞতা নিশ্চিত করার জন্য এটিকে গুরুত্বপূর্ণ করে তুলেছে।

অনবোর্ডিং প্রক্রিয়ার একটি মূল পদক্ষেপের জন্য এই বিক্রেতাদের তাদের পরিচয় যাচাই করতে হবে। বিক্রেতার যাচাইকরণ সম্পূর্ণ করার জন্য বিক্রেতাকে তাদের জাতীয় পরিচয়পত্রের পাশাপাশি আইডি সহ একটি সেলফি আপলোড করতে হবে। এটিকে Know-Your-Customer (KYC) প্রক্রিয়া হিসাবে উল্লেখ করা হয়।

তাদের ওয়েব অ্যাপের মধ্যে এই গুরুত্বপূর্ণ কেওয়াইসি প্রক্রিয়ায় মেশিন লার্নিং ক্ষমতা যুক্ত করার মাধ্যমে, মিত্র টোকোপিডিয়া যাচাইকরণ ব্যর্থতায় 20% এরও বেশি হ্রাস সহ আরও ভাল ব্যবহারকারীর অভিজ্ঞতা অর্জন করতে সক্ষম হয়েছিল। তারা প্রায় 70% ম্যানুয়াল অনুমোদন কমিয়ে অপারেশনাল খরচ সাশ্রয় করেছে।

চ্যালেঞ্জ

বেশিরভাগ কেওয়াইসি ডেটা প্রত্যাখ্যান করা হচ্ছে, ম্যানুয়াল যাচাইয়ের জন্য অপারেশন টিমের কাছে প্রতি সপ্তাহে হাজার হাজার টিকিট তৈরি করা হচ্ছে। এটি শুধুমাত্র উচ্চ পরিচালন ব্যয়ের কারণ নয় বরং বিক্রেতাদের জন্য একটি খারাপ ব্যবহারকারীর অভিজ্ঞতার কারণ, যাদের যাচাইকরণ প্রক্রিয়া বিলম্বিত হয়। প্রত্যাখ্যানের সবচেয়ে বড় কারণ হল বিক্রেতারা সঠিকভাবে আইডি কার্ড সহ সেলফি আপলোড করেননি। মিত্র টোকোপিডিয়া আধুনিক ওয়েব ক্ষমতা ব্যবহার করে মাপকাঠিভাবে এই সমস্যার সমাধান করতে আগ্রহী ছিল।

সমাধান

টোকোপিডিয়ার টিম KYC প্রক্রিয়ার প্রথম ধাপেই এই সমস্যাটি সমাধান করতে TensorFlow.js-এর সাথে ML ব্যবহার করার সিদ্ধান্ত নিয়েছে—যখন ব্যবহারকারী ছবিগুলি আপলোড করেন। তারা যখন বিক্রেতা আইডি কার্ড এবং সেলফি ছবি আপলোড করে তখন ছয়টি মূল পয়েন্ট সহ বিক্রেতার মুখ সনাক্ত করতে তারা MediaPipe এবং TensorFlow এর ফেস ডিটেকশন লাইব্রেরি ব্যবহার করে। মডেলের আউটপুট তারপর তাদের গ্রহণযোগ্যতার মানদণ্ডের বিরুদ্ধে পরীক্ষা করতে ব্যবহার করা হয়। সফল যাচাইয়ের পরে, তথ্যটি ব্যাকএন্ডে পাঠানো হয়। যাচাইকরণ ব্যর্থ হলে, বিক্রেতাকে একটি ত্রুটি বার্তা এবং পুনরায় চেষ্টা করার বিকল্প প্রদান করা হয়। একটি হাইব্রিড পদ্ধতি ব্যবহার করা হয়েছিল যেখানে মডেলটি ফোনের স্পেসিফিকেশনের উপর নির্ভর করে ডিভাইসে বা সার্ভারের দিক থেকে অনুমান সম্পাদন করে। একটি নিম্ন প্রান্তের ডিভাইস সার্ভারে অনুমান সম্পাদন করবে।

কেওয়াইসি প্রক্রিয়ার প্রথম দিকে একটি এমএল মডেল ব্যবহার করা তাদের অনুমতি দেয়:

  • KYC প্রক্রিয়ায় প্রত্যাখ্যানের হার উন্নত করুন।
  • মডেল দ্বারা মূল্যায়ন করা গুণমানের উপর ভিত্তি করে ব্যবহারকারীদের তাদের ছবিগুলির সম্ভাব্য প্রত্যাখ্যান সম্পর্কে সতর্ক করুন।

কেন অন্যান্য সমাধানের বিপরীতে এমএল বেছে নিন?

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

একটি মডেল নির্বাচন করার সময় বিবেচনা

এমএল মডেল নির্বাচন করার সময় নিম্নলিখিত বিষয়গুলি বিবেচনা করা হয়েছিল।

খরচ

তারা মডেল ব্যবহারের সামগ্রিক খরচ মূল্যায়ন. যেহেতু TensorFlow.js হল একটি ওপেন সোর্স প্যাকেজ যা Google ভালভাবে রক্ষণাবেক্ষণ করে, তাই আমরা লাইসেন্সিং এবং রক্ষণাবেক্ষণের খরচ বাঁচাই। একটি অতিরিক্ত বিবেচনা অনুমান খরচ হয়. ক্লায়েন্ট সাইডে অনুমান চালাতে সক্ষম হওয়া ব্যয়বহুল জিপিইউগুলির সাথে সার্ভারের দিকে প্রক্রিয়াকরণের তুলনায় প্রচুর অর্থ সাশ্রয় করে, বিশেষত যদি ডেটাটি অবৈধ এবং অব্যবহারযোগ্য বলে প্রমাণিত হয়।

পরিমাপযোগ্যতা

তারা মডেল এবং প্রযুক্তির মাপযোগ্যতা বিবেচনা করে। আমাদের প্রকল্পের বিকাশের সাথে সাথে এটি কি ডেটা এবং মডেল জটিলতার বৃদ্ধি পরিচালনা করতে সক্ষম? এটি কি অন্য প্রকল্পগুলি বা ব্যবহারের ক্ষেত্রে বাড়ানো যেতে পারে? অন-ডিভাইস প্রসেসিং সাহায্য করে কারণ মডেলটি একটি CDN-এ হোস্ট করা যেতে পারে এবং ক্লায়েন্ট সাইডে ডেলিভারি করা যেতে পারে, যা খুবই মাপযোগ্য।

কর্মক্ষমতা

তারা লাইব্রেরির আকার (কেবি-তে) এবং রানটাইম প্রক্রিয়ার লেটেন্সি বিবেচনা করেছে। মিত্র টোকোপিডিয়ার বেশিরভাগ ব্যবহারকারীর কাছে মাঝারি ইন্টারনেট গতি এবং সংযোগ সহ মধ্য থেকে নিম্ন পর্যায়ের ডিভাইস রয়েছে। এইভাবে, ডাউনলোড এবং রানটাইমের পরিপ্রেক্ষিতে পারফরম্যান্স (অর্থাৎ মডেলটি কত দ্রুত একটি আউটপুট তৈরি করতে পারে) তাদের নির্দিষ্ট চাহিদা মেটাতে এবং দুর্দান্ত ব্যবহারকারীর অভিজ্ঞতা নিশ্চিত করার জন্য একটি শীর্ষ অগ্রাধিকার।

অন্যান্য বিবেচ্য বিষয়

নিয়ন্ত্রক সম্মতি: তাদের নিশ্চিত করতে হয়েছিল যে নির্বাচিত লাইব্রেরি প্রাসঙ্গিক ডেটা সুরক্ষা এবং গোপনীয়তা বিধি মেনে চলছে।

দক্ষতা: তারা তাদের দলের দক্ষতা এবং দক্ষতা মূল্যায়ন করেছে। কিছু এমএল ফ্রেমওয়ার্ক এবং লাইব্রেরির জন্য নির্দিষ্ট প্রোগ্রামিং ভাষা বা একটি নির্দিষ্ট এলাকায় দক্ষতার প্রয়োজন হতে পারে। এই বিষয়গুলি বিবেচনা করে, তারা তাদের মেশিন লার্নিং প্রকল্পের জন্য সঠিক মডেল নির্বাচন করার সময় একটি জ্ঞাত সিদ্ধান্ত নিয়েছে।

প্রযুক্তি বেছে নেওয়া হয়েছে

TensorFlow.js এই বিষয়গুলো বিবেচনা করে তাদের চাহিদা পূরণ করেছে। এটি ডিভাইসের GPU ব্যবহার করার জন্য তার WebGL ব্যাকএন্ড ব্যবহার করে সম্পূর্ণরূপে অন-ডিভাইস চালাতে সক্ষম। একটি মডেল অন-ডিভাইস চালানোর ফলে সার্ভারের লেটেন্সি কমে যাওয়ায় ব্যবহারকারীর কাছে দ্রুত প্রতিক্রিয়া পাওয়া যায় এবং সার্ভার কম্পিউট খরচ কম হয়। অন-ডিভাইস ML সম্পর্কে নিবন্ধে আরও পড়ুন অন-ডিভাইস ML-এর সুবিধা এবং সীমাবদ্ধতা

"TensorFlow.js হল Google-এর একটি ওপেন সোর্স মেশিন লার্নিং লাইব্রেরি যা জাভাস্ক্রিপ্ট ডেভেলপারদের লক্ষ্য করে যা ব্রাউজারে ক্লায়েন্ট সাইড চালাতে সক্ষম। এটি ব্যাপক WebGL, WebAssembly এবং WebGPU ব্যাকএন্ড অপারেটর সমর্থন সহ Web AI-এর জন্য সবচেয়ে পরিণত বিকল্প যা এর মধ্যে ব্যবহার করা যেতে পারে। দ্রুত কর্মক্ষমতা সহ ব্রাউজার।"কিভাবে Adobe ওয়েবের জন্য ফটোশপ উন্নত করতে TensorFlow.js এর সাথে Web ML ব্যবহার করেছে

প্রযুক্তিগত বাস্তবায়ন

মিত্রা টোকোপিডিয়া মিডিয়াপিপ এবং টেনসরফ্লো-এর ফেস ডিটেকশন লাইব্রেরি ব্যবহার করেছে, একটি প্যাকেজ যা রিয়েল-টাইম ফেস ডিটেকশন চালানোর জন্য মডেল সরবরাহ করে। বিশেষভাবে, এই লাইব্রেরিতে সরবরাহ করা MediaPipeFaceDetector-TFJS মডেল, যা tfjs রানটাইম প্রয়োগ করে এই সমাধানের জন্য ব্যবহার করা হয়েছিল।

বাস্তবায়নে ডুব দেওয়ার আগে, মিডিয়াপাইপ কী তার সংক্ষিপ্ত বিবরণ। MediaPipe আপনাকে মোবাইল (Android, iOS), ওয়েব, ডেস্কটপ, এজ ডিভাইস এবং IoT জুড়ে অন-ডিভাইস ML সলিউশন তৈরি এবং স্থাপন করতে দেয়।

এই পোস্টটি লেখার সময় MediaPipe দ্বারা অফার করা 14টি ভিন্ন সমাধান রয়েছে। আপনি একটি mediapipe বা tfjs রানটাইম ব্যবহার করতে পারেন। tfjs রানটাইম জাভাস্ক্রিপ্ট দিয়ে তৈরি এবং একটি জাভাস্ক্রিপ্ট প্যাকেজ প্রদান করে যা ওয়েব অ্যাপ্লিকেশন দ্বারা বাহ্যিকভাবে ডাউনলোড করা যায়। এটি একটি mediapipe রানটাইম থেকে আলাদা, যা C++ দিয়ে তৈরি এবং একটি WebAssembly মডিউলে কম্পাইল করা হয়। মূল পার্থক্য হল কর্মক্ষমতা, ডিবাগবিলিটি এবং বান্ডলিং। জাভাস্ক্রিপ্ট প্যাকেজটি ওয়েবপ্যাকের মতো ক্লাসিক বান্ডলারের সাথে বান্ডিল করা যেতে পারে। বিপরীতে, Wasm মডিউল হল একটি বড় এবং পৃথক বাইনারি রিসোর্স (যা লোড-টাইম নির্ভরতা না হয়ে প্রশমিত হয়) এবং একটি ভিন্ন Wasm ডিবাগিং ওয়ার্কফ্লো প্রয়োজন। যাইহোক, এটি প্রযুক্তিগত এবং কর্মক্ষমতা প্রয়োজনীয়তা পূরণ করতে সাহায্য করার জন্য দ্রুত কার্যকর করে।

একটি উদাহরণ হিসাবে ফেসডিটেকশন ব্যবহার করে মিডিয়াপিপ এবং টেনসরফ্লো মডেলগুলি বিভিন্ন রানটাইমের জন্য কীভাবে কাজ করে তার চিত্র।
একটি উদাহরণ হিসাবে ফেসডিটেকশন ব্যবহার করে মিডিয়াপাইপ এবং টেনসরফ্লো মডেলগুলি বিভিন্ন রানটাইমের জন্য কীভাবে কাজ করে তার একটি সাধারণ চিত্র

টোকোপিডিয়ার বাস্তবায়নে ফিরে আসা, প্রথম ধাপ হল নিম্নরূপ মডেলটি শুরু করা। যখন ব্যবহারকারী একটি ফটো আপলোড করে, একটি HTMLImageElement ডিটেক্টরে একটি ইনপুট হিসাবে পাস করা হয়।

// Create the detector.
const model = faceDetection.SupportedModels.MediaPipeFaceDetector;
const detectorConfig = {
  runtime: 'tfjs'
};

const detector = await faceDetection.createDetector(model, detectorConfig);

// Run inference to start detecting faces.
const estimationConfig = {flipHorizontal: false};
const faces = await detector.estimateFaces(image, estimationConfig);

মুখের তালিকার ফলাফলে চিত্রের প্রতিটি মুখের জন্য সনাক্ত করা মুখ রয়েছে৷ যদি মডেলটি কোনো মুখ সনাক্ত করতে না পারে, তাহলে তালিকাটি খালি থাকবে। প্রতিটি মুখের জন্য, এটি সনাক্ত করা মুখের একটি বাউন্ডিং বক্স, সেইসাথে সনাক্ত করা মুখের জন্য ছয়টি কীপয়েন্টের একটি অ্যারে রয়েছে৷ এর মধ্যে চোখ, নাক এবং মুখের মতো বৈশিষ্ট্য রয়েছে। প্রতিটি কীপয়েন্টে x এবং y, সেইসাথে একটি নাম রয়েছে।

[
  {
    box: {
      xMin: 304.6476503248806,
      xMax: 502.5079975897382,
      yMin: 102.16298762367356,
      yMax: 349.035215984403,
      width: 197.86034726485758,
      height: 246.87222836072945
    },
    keypoints: [
      {x: 446.544237446397, y: 256.8054528661723, name: "rightEye"},
      {x: 406.53152857172876, y: 255.8, "leftEye },
      ...
    ],
  }
]

box চিত্রের পিক্সেল স্পেসে মুখের বাউন্ডিং বক্সের প্রতিনিধিত্ব করে, যেখানে xMin , xMax x-সীমা নির্দেশ করে, yMin , yMax y-সীমা নির্দেশ করে এবং width , height হল বাউন্ডিং বাক্সের মাত্রা। keypoints জন্য, x এবং y চিত্রের পিক্সেল স্পেসে প্রকৃত কীপয়েন্ট অবস্থান উপস্থাপন করে। name কীপয়েন্টের জন্য একটি লেবেল প্রদান করে, যা যথাক্রমে 'rightEye' , 'leftEye' , 'noseTip' , 'mouthCenter' , 'rightEarTragion' , এবং 'leftEarTragion' । এই পোস্টের শুরুতে উল্লিখিত হিসাবে, বিক্রেতা যাচাইকরণ সম্পূর্ণ করার জন্য বিক্রেতাকে তাদের জাতীয় পরিচয়পত্র এবং আইডি সহ একটি সেলফি আপলোড করতে হবে। মডেলের আউটপুটটি গ্রহণযোগ্যতার মানদণ্ডের বিপরীতে পরীক্ষা করার জন্য ব্যবহার করা হয়-যা আগে উল্লেখ করা ছয়টি কীপয়েন্টের একটি বৈধ আইডেন্টিফিকেশন কার্ড এবং সেলফি ইমেজ হিসাবে বিবেচিত হতে হবে।

সফল যাচাইয়ের পরে, প্রাসঙ্গিক বিক্রেতার তথ্য ব্যাকএন্ডে পাঠানো হয়। যাচাইকরণ ব্যর্থ হলে, বিক্রেতাকে একটি ব্যর্থতার বার্তা এবং পুনরায় চেষ্টা করার বিকল্প দেওয়া হয়। ব্যাকএন্ডে কোন তথ্য পাঠানো হবে না।

Mitra KYC পৃষ্ঠার চিত্র, TensorFlow.js মডেল এবং সার্ভার একে অপরের সাথে ইন্টারঅ্যাক্ট করছে।
মিত্র কেওয়াইসি পৃষ্ঠা, TensorFlow.js মডেল এবং সার্ভার একে অপরের সাথে কীভাবে যোগাযোগ করে

কম শেষ ডিভাইসের জন্য কর্মক্ষমতা বিবেচনা

এই প্যাকেজটি মাত্র 24.8 KB (মিনিফাইড এবং জিজিপড), যা ডাউনলোডের সময়কে উল্লেখযোগ্যভাবে প্রভাবিত করে না। যাইহোক, খুব কম প্রান্তের ডিভাইসের জন্য, রানটাইম প্রক্রিয়াকরণে অনেক সময় লাগে। মেশিন লার্নিং ফেস ডিটেকশন মডেলে দুটি ছবি পাস করার আগে ডিভাইস র‌্যাম এবং সিপিইউ পরীক্ষা করার জন্য অতিরিক্ত যুক্তি যোগ করা হয়েছিল।

ডিভাইসটিতে 4GB-এর বেশি RAM, 4G-এর চেয়ে বেশি নেটওয়ার্ক সংযোগ এবং 6-এর বেশি কোরের একটি CPU থাকলে, মুখ যাচাইয়ের জন্য ছবিগুলি ডিভাইসের মডেলে পাঠানো হয়। যদি এই প্রয়োজনীয়তাগুলি পূরণ না হয়, তাহলে ডিভাইসে থাকা মডেলটি বাদ দেওয়া হয় এবং এই পুরানো ডিভাইসগুলির জন্য একটি হাইব্রিড পদ্ধতি ব্যবহার করে যাচাইয়ের জন্য ছবিগুলি সরাসরি সার্ভারে পাঠানো হয়৷ সময়ের সাথে সাথে, হার্ডওয়্যার ক্রমাগত বিকশিত হওয়ার সাথে সাথে আরও ডিভাইস সার্ভার থেকে গণনা অফলোড করতে সক্ষম হবে।

প্রভাব

এমএল ইন্টিগ্রেশনের কারণে, টোকোপিডিয়া সফলভাবে উচ্চ প্রত্যাখ্যান হার সমাধান করতে সক্ষম হয়েছিল এবং নিম্নলিখিত ফলাফলগুলি দেখেছিল:

  • প্রত্যাখ্যানের হার 20% এর বেশি কমেছে।
  • ম্যানুয়াল অনুমোদনের সংখ্যা প্রায় 70% কমেছে।

এটি শুধুমাত্র বিক্রেতাদের জন্য একটি মসৃণ ব্যবহারকারীর অভিজ্ঞতা তৈরি করেনি, তবে টোকোপিডিয়া দলের জন্য অপারেশনাল খরচও কমিয়েছে।

উপসংহার

সামগ্রিকভাবে, এই কেস স্টাডির ফলাফলগুলি দেখিয়েছে যে সঠিক ব্যবহারের ক্ষেত্রে, ওয়েবে অন-ডিভাইস এমএল সমাধানগুলি ব্যবহারকারীর অভিজ্ঞতা এবং বৈশিষ্ট্যগুলির কার্যকারিতা উন্নত করার পাশাপাশি খরচ সঞ্চয় এবং অন্যান্য ব্যবসায়িক সুবিধা তৈরি করতে মূল্যবান হতে পারে।

MediaPipe স্টুডিও এবং ওয়েবের জন্য MediaPipe ফেস ডিটেক্টরের কোড নমুনা ব্যবহার করে নিজেই MediaPipe ফেস ডিটেকশন বৈশিষ্ট্যটি ব্যবহার করে দেখুন।

আপনি যদি অন-ডিভাইস ML এর সাথে আপনার নিজস্ব ওয়েব অ্যাপের ক্ষমতা প্রসারিত করতে আগ্রহী হন তবে নিম্নলিখিত সংস্থানগুলি দেখুন: