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

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

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

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

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

चैलेंज

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

समस्या का हल

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

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

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

अन्य समाधानों के बजाय मशीन लर्निंग का इस्तेमाल क्यों करें?

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

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

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

कीमत

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

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

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

परफ़ॉर्मेंस

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

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

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

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

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

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

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

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

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 का इस्तेमाल किया जा सकता है.
उदाहरण के तौर पर, FaceDetection का इस्तेमाल करके, MediaPipe और TensorFlow के अलग-अलग रनटाइम के लिए काम करने के तरीके के बारे में बताने वाली सामान्य इमेज

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

असर

मशीन लर्निंग इंटिग्रेशन की वजह से, Tokopedia ने ऐप्लिकेशन अस्वीकार किए जाने की ज़्यादा दर से जुड़ी समस्या का हल कर लिया और उसे ये नतीजे मिले:

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

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

नतीजा

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

MediaPipe Studio का इस्तेमाल करके और MediaPipe Face Detector के लिए कोड सैंपल की मदद से, MediaPipe Face Detect सुविधा को खुद आज़माएं.

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