Tokopedia ने मशीन लर्निंग का इस्तेमाल करके, अपने सेलर के वेब ऐप्लिकेशन को बेहतर बनाकर, ऑपरेशनल लागत को कैसे कम किया

Tokopedia, इंडोनेशिया की एक टेक्नोलॉजी कंपनी है. यह सबसे बड़े ई-कॉमर्स मार्केटप्लेस में से एक है. इस प्लैटफ़ॉर्म पर 40 से ज़्यादा डिजिटल प्रॉडक्ट और 140 लाख से ज़्यादा रजिस्टर किए गए सेलर मौजूद हैं.

Mitra Tokopedia, Tokopedia के कारोबारी वर्टिकल का हिस्सा है. यह एक वेब ऐप्लिकेशन है, जिसकी मदद से छोटे कारोबार के मालिक, क्रेडिट और गेम वाउचर, डेटा पैकेज, बिजली के टोकन, राष्ट्रीय स्वास्थ्य सेवा के बिल वगैरह जैसे डिजिटल प्रॉडक्ट बेच सकते हैं. यह वेबसाइट, 700 से ज़्यादा शहरों में Mitra Tokopedia सेलर के लिए मुख्य चैनलों में से एक है. इसलिए, यह ज़रूरी है कि उपयोगकर्ताओं को इसका बेहतर अनुभव मिले.

शामिल होने की प्रोसेस के एक अहम चरण में, इन सेलर को अपनी पहचान की पुष्टि करनी होती है. सेलर की पुष्टि की प्रक्रिया पूरी करने के लिए, सेलर को अपने राष्ट्रीय आईडी के साथ-साथ, आईडी के साथ सेल्फ़ी भी अपलोड करनी होगी. इसे अपने ग्राहक को जानें (ग्राहक की जानकारी) (केवाईसी) की प्रक्रिया कहा जाता है.

अपने वेब ऐप्लिकेशन में, ज़रूरी केवाईसी प्रोसेस में मशीन लर्निंग की सुविधाएं जोड़कर, Mitra Tokopedia ने उपयोगकर्ता अनुभव को बेहतर बनाया. साथ ही, पुष्टि न होने की संख्या में 20% से ज़्यादा की कमी आई. उन्होंने मैन्युअल तरीके से अनुमतियों की संख्या को करीब 70% तक कम करके, ऑपरेशन से जुड़ी लागत में भी बचत की.

चुनौती

ज़्यादातर केवाईसी डेटा अस्वीकार किया जा रहा था. इस वजह से, मैन्युअल तरीके से पुष्टि करने के लिए, ऑपरेशंस टीम को हर हफ़्ते हज़ारों टिकट मिल रहे थे. इससे, न सिर्फ़ ऑपरेशन की लागत ज़्यादा हुई, बल्कि जिन सेलर की पुष्टि की प्रोसेस में देरी हुई उन्हें भी खराब अनुभव मिला. अस्वीकार किए जाने की सबसे बड़ी वजह यह थी कि बिक्री करने वाले लोगों ने आईडी कार्ड के साथ सेल्फ़ी सही तरीके से अपलोड नहीं की थी. Mitra Tokopedia, आधुनिक वेब की सुविधाओं का इस्तेमाल करके, इस समस्या को बड़े पैमाने पर हल करना चाहता था.

समाधान

टोकोपीडिया की टीम ने तय किया कि ग्राहक की जानकारी (केवाईसी) की प्रक्रिया के पहले चरण में ही, इस समस्या को हल करने के लिए, TensorFlow.js के साथ एमएल (मशीन लर्निंग) का इस्तेमाल किया जाएगा. ऐसा तब होगा, जब उपयोगकर्ता इमेज अपलोड करेगा. जब सेलर आईडी कार्ड और सेल्फ़ी की इमेज अपलोड करता है, तब MediaPipe और TensorFlow की चेहरे की पहचान करने वाली लाइब्रेरी का इस्तेमाल करके, सेलर के चेहरे की पहचान करने के लिए छह मुख्य पॉइंट का इस्तेमाल किया जाता है. इसके बाद, मॉडल के आउटपुट का इस्तेमाल, आवेदन स्वीकार करने की ज़रूरी शर्तों की जांच करने के लिए किया जाता है. पुष्टि होने के बाद, जानकारी को बैकएंड पर भेज दिया जाता है. अगर पुष्टि नहीं हो पाती है, तो सेलर को गड़बड़ी का मैसेज और फिर से कोशिश करने का विकल्प मिलता है. इसमें हाइब्रिड तरीके का इस्तेमाल किया गया है. इसमें फ़ोन की जानकारी के आधार पर, मॉडल, डिवाइस पर या सर्वर साइड पर अनुमान लगाता है. लोअर एंड डिवाइस, सर्वर पर अनुमान के हिसाब से काम करेगा.

केवाईसी की प्रोसेस में शुरुआत से ही एमएल मॉडल का इस्तेमाल करने से, ये काम किए जा सकते हैं:

  • केवाईसी प्रोसेस में अस्वीकार किए जाने की दर को कम करना.
  • मॉडल की मदद से इमेज की क्वालिटी का आकलन करने के बाद, उपयोगकर्ताओं को यह चेतावनी दी जा सकती है कि उनकी इमेज अस्वीकार की जा सकती हैं.

अन्य समाधानों के बजाय एमएल क्यों चुनें?

मशीन लर्निंग की मदद से, बार-बार किए जाने वाले ऐसे टास्क अपने-आप पूरे हो सकते हैं जिन्हें मैन्युअल तरीके से करने में काफ़ी समय लगता है या जिन्हें करना मुमकिन नहीं होता. Tokopedia के मामले में, मौजूदा नॉन-एमएल (मशीन लर्निंग) के समाधान को ऑप्टिमाइज़ करने से ज़रूरी नतीजे नहीं मिल पाए. वहीं, एमएल के समाधान से ऑपरेशंस टीम पर काफ़ी कम लोड पड़ा. इस टीम को हर हफ़्ते हज़ारों अनुमतियों को मैन्युअल तरीके से प्रोसेस करना पड़ता था. एमएल (मशीन लर्निंग) सलूशन की मदद से, इमेज की जांच तुरंत की जा सकती है. इससे उपयोगकर्ताओं को बेहतर अनुभव मिलता है और ऑपरेशन की परफ़ॉर्मेंस भी बेहतर होती है. समस्या को फ़्रेम करने के बारे में ज़्यादा जानें, ताकि यह पता लगाया जा सके कि एमएल आपकी समस्या का सही समाधान है या नहीं.

मॉडल चुनते समय ध्यान रखने वाली बातें

एमएल मॉडल चुनते समय, इन बातों का ध्यान रखा गया.

लागत

उन्होंने मॉडल का इस्तेमाल करने की कुल लागत का आकलन किया. TensorFlow.js एक ओपन सोर्स पैकेज है, जिसका रखरखाव Google अच्छी तरह से करता है. इसलिए, हम लाइसेंस देने और रखरखाव का खर्च बचा लेते हैं. एक अतिरिक्त विचार अनुमान की लागत है. क्लाइंट साइड पर अनुमान लगाने की सुविधा से, महंगे जीपीयू की मदद से सर्वर साइड पर अनुमान लगाने की तुलना में काफ़ी पैसे बचते हैं. ऐसा तब ज़्यादा होता है, जब डेटा अमान्य और इस्तेमाल न किया जा सकने वाला हो.

विस्तार करने की क्षमता

उन्होंने मॉडल और टेक्नोलॉजी की पहुंच बढ़ाने पर ध्यान दिया. क्या यह हमारे प्रोजेक्ट के बढ़ने के साथ-साथ, डेटा और मॉडल की जटिलता को भी बढ़ा सकता है? क्या इसे दूसरे प्रोजेक्ट या इस्तेमाल के उदाहरणों के लिए बढ़ाया जा सकता है? डिवाइस पर प्रोसेस करने की सुविधा से मदद मिलती है, क्योंकि मॉडल को सीडीएन पर होस्ट किया जा सकता है और क्लाइंट साइड पर डिलीवर किया जा सकता है. यह सुविधा बहुत स्केलेबल है.

परफ़ॉर्मेंस

उन्होंने लाइब्रेरी के साइज़ (केबी में) और रनटाइम प्रोसेस में लगने वाले समय पर विचार किया. Mitra Tokopedia के ज़्यादातर उपयोगकर्ताओं के पास, इंटरनेट की सामान्य स्पीड और कनेक्टिविटी वाले मीडियम से लेकर लो-एंड डिवाइस होते हैं. इसलिए, डाउनलोड और रनटाइम (यानी मॉडल कितनी तेज़ी से आउटपुट दे सकता है) के मामले में परफ़ॉर्मेंस को सबसे ज़्यादा प्राथमिकता दी जाती है, ताकि उनकी खास ज़रूरतों को पूरा किया जा सके और उपयोगकर्ता को बेहतर अनुभव दिया जा सके.

दूसरी ज़रूरी बातें

कानूनों का पालन: उन्हें यह पक्का करना था कि चुनी गई लाइब्रेरी, डेटा की सुरक्षा और निजता से जुड़े कानूनों का पालन करती हो.

स्किलसेट: उन्होंने अपनी टीम की विशेषज्ञता और स्किल का आकलन किया. कुछ एमएल फ़्रेमवर्क और लाइब्रेरी के लिए, प्रोग्रामिंग की खास भाषाओं या किसी खास क्षेत्र में विशेषज्ञता की ज़रूरत पड़ सकती है. इन बातों को ध्यान में रखकर, उन्होंने अपने मशीन लर्निंग प्रोजेक्ट के लिए सही मॉडल चुनने का फ़ैसला लिया.

चुनी गई टेक्नोलॉजी

इन कारकों पर विचार करने के बाद, TensorFlow.js ने अपनी ज़रूरतों को पूरा किया. यह अपने WebGL बैकएंड का इस्तेमाल करके, डिवाइस पर पूरी तरह से चल सकता है, ताकि डिवाइस के GPU का इस्तेमाल किया जा सके. डिवाइस पर मॉडल चलाने से, उपयोगकर्ता को तेज़ी से फ़ीडबैक मिल सकता है. इससे सर्वर में लगने वाला समय कम होता है. साथ ही, सर्वर की कंप्यूट लागत भी कम होती है. डिवाइस पर एमएल के बारे में ज़्यादा जानने के लिए, डिवाइस पर एमएल के फ़ायदे और उसकी सीमाएं लेख पढ़ें.

"TensorFlow.js, Google की एक ओपन सोर्स मशीन लर्निंग लाइब्रेरी है. यह लाइब्रेरी उन JavaScript डेवलपर के लिए है जो ब्राउज़र में क्लाइंट-साइड का इस्तेमाल कर सकते हैं. यह वेब एआई के लिए सबसे बेहतर विकल्प है. इसमें WebGL, WebAssembly, और WebGPU बैकएंड ऑपरेटर के साथ काम करने की सुविधा है. इसकी मदद से, ब्राउज़र में तेज़ी से काम करने वाले एआई मॉडल का इस्तेमाल किया जा सकता है."वेब के लिए Photoshop को बेहतर बनाने के लिए, Adobe ने TensorFlow.js के साथ वेब एमएल का इस्तेमाल कैसे किया

तकनीकी तौर पर लागू करना

Mitra Tokopedia ने MediaPipe और TensorFlow की चेहरे की पहचान करने वाली लाइब्रेरी का इस्तेमाल किया. यह एक ऐसा पैकेज है जो रीयल-टाइम में चेहरे की पहचान करने के लिए मॉडल उपलब्ध कराता है. खास तौर पर, इस लाइब्रेरी में दिया गया MediaPipeFaceDetector-TFJS मॉडल, इस समाधान के लिए tfjs रनटाइम लागू करता है.

इसे लागू करने से पहले, MediaPipe के बारे में थोड़ी जानकारी दें. MediaPipe की मदद से, मोबाइल (Android, iOS), वेब, डेस्कटॉप, एज डिवाइसों, और IoT पर, डिवाइस में मशीन लर्निंग के सलूशन बनाए और डिप्लॉय किए जा सकते हैं.

इस पोस्ट को लिखने के समय, MediaPipe ने 14 अलग-अलग समाधान उपलब्ध कराए हैं. mediapipe या tfjs, दोनों में से किसी एक रनटाइम का इस्तेमाल किया जा सकता है. tfjs रनटाइम, JavaScript का इस्तेमाल करके बनाया गया है. साथ ही, यह एक ऐसा JavaScript पैकेज उपलब्ध कराता है जिसे वेब ऐप्लिकेशन से बाहर से डाउनलोड किया जा सकता है. यह mediapipe रनटाइम से अलग है, जिसे C++ के साथ बनाया गया है और WebAssembly मॉड्यूल में कंपाइल किया गया है. इनमें मुख्य अंतर हैं: परफ़ॉर्मेंस, डीबग करने की क्षमता, और बंडलिंग. JavaScript पैकेज को वेबपैक जैसे क्लासिक बंडलर के साथ बंडल किया जा सकता है. इसके उलट, Wasm मॉड्यूल एक बड़ा और अलग बाइनरी रिसॉर्स है. इसे लोड करने में लगने वाले समय पर निर्भर नहीं किया जाता. साथ ही, इसके लिए Wasm को डीबग करने के लिए अलग वर्कफ़्लो की ज़रूरत होती है. हालांकि, यह तकनीकी और परफ़ॉर्मेंस से जुड़ी ज़रूरी शर्तों को पूरा करने के लिए, तेज़ी से लागू होता है.

इस डायग्राम में दिखाया गया है कि MediaPipe और TensorFlow मॉडल, अलग-अलग रनटाइम के लिए कैसे काम करते हैं. इसके लिए, FaceDetection का इस्तेमाल किया गया है.
इस इमेज में, अलग-अलग रनटाइम के लिए MediaPipe और TensorFlow मॉडल के काम करने के तरीके के बारे में बताया गया है. इसमें उदाहरण के तौर पर, FaceDetection का इस्तेमाल किया गया है

Tokopedia पर लागू करने के लिए, सबसे पहले मॉडल को इस तरह से शुरू करें. जब उपयोगकर्ता कोई फ़ोटो अपलोड करता है, तो डिटेक्टर को इनपुट के तौर पर 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 के ग्राहक की जानकारी (केवाईसी) वाले पेज, TensorFlow.js मॉडल और सर्वर के एक-दूसरे से इंटरैक्ट करने का डायग्राम.
Mitra के केवाईसी पेज, TensorFlow.js मॉडल, और सर्वर के बीच इंटरैक्शन कैसे होता है

कम कीमत वाले डिवाइसों की परफ़ॉर्मेंस से जुड़ी बातें

यह पैकेज सिर्फ़ 24.8 केबी (कम से कम और gzip किया गया) का है, जिससे डाउनलोड में लगने वाले समय पर कोई खास असर नहीं पड़ता. हालांकि, बहुत कम कीमत वाले डिवाइसों के लिए, रनटाइम प्रोसेसिंग में बहुत समय लगता है. मशीन लर्निंग के ज़रिए चेहरे की पहचान करने वाले मॉडल में दो इमेज भेजने से पहले, डिवाइस के रैम और सीपीयू की जांच करने के लिए अतिरिक्त लॉजिक जोड़ा गया था.

अगर डिवाइस में 4 जीबी से ज़्यादा रैम, 4G से ज़्यादा का नेटवर्क कनेक्शन, और 6 से ज़्यादा कोर वाला सीपीयू है, तो चेहरे की पुष्टि करने के लिए, इमेज को डिवाइस पर मौजूद मॉडल पर भेजा जाता है. अगर ये ज़रूरी शर्तें पूरी नहीं की जाती हैं, तो डिवाइस पर मौजूद मॉडल को छोड़ दिया जाता है. साथ ही, इन पुराने डिवाइसों के लिए, हाइब्रिड तरीके का इस्तेमाल करके इमेज को सीधे सर्वर पर पुष्टि के लिए भेजा जाता है. समय के साथ, हार्डवेयर के बेहतर होते रहने की वजह से, ज़्यादा डिवाइसों में सर्वर से कॉम्प्यूट ऑफ़लोड किया जा सकेगा.

असर

एमएल इंटिग्रेशन की मदद से, Tokopedia ने अस्वीकार किए जाने की दर को कम किया. साथ ही, उसे ये नतीजे भी मिले:

  • अस्वीकार किए गए अनुरोधों की दर में 20% से ज़्यादा की कमी आई हो.
  • मैन्युअल तरीके से मंज़ूरी पाने वाले अनुरोधों की संख्या में करीब 70% की कमी आई है.

इससे न सिर्फ़ सेलर के लिए उपयोगकर्ता अनुभव बेहतर हुआ, बल्कि Tokopedia की टीम का काम करने का खर्च भी कम हुआ.

नतीजा

कुल मिलाकर, इस केस स्टडी के नतीजों से पता चला है कि सही इस्तेमाल के उदाहरणों के लिए, वेब पर डिवाइस पर मौजूद एमएल सलूशन, उपयोगकर्ता अनुभव और सुविधाओं के असर को बेहतर बनाने के साथ-साथ, लागत में बचत और कारोबार के अन्य फ़ायदे पाने में मददगार हो सकते हैं.

MediaPipe Studio और वेब के लिए MediaPipe के फ़ेस डिटेक्टर के कोड सैंपल का इस्तेमाल करके, MediaPipe की फ़ेस डिटेक्शन सुविधा को आज़माएं.

अगर आपको डिवाइस पर मौजूद एमएल की मदद से, अपने वेब ऐप्लिकेशन की सुविधाओं को बेहतर बनाना है, तो यहां दिए गए संसाधन देखें: