قصة نجاح شركة Tokopedia في تقليل التكاليف التشغيلية من خلال تحسين تطبيق الويب الخاص بالبائع باستخدام تكنولوجيا تعلُّم الآلة

Tokopedia هي شركة تكنولوجيا إندونيسية تدير أحد أكبر أسواق التجارة الإلكترونية، حيث تستضيف أكثر من 40 منتجًا رقميًا وأكثر من 14 مليون بائع مسجّل على منصتها.

Mitra Tokopedia هو تطبيق ويب يساعد مالكي الأنشطة التجارية الصغيرة على بيع المنتجات الرقمية، مثل قسائم الائتمان والألعاب وحِزم البيانات وقسائم الكهرباء وفواتير الرعاية الصحية الوطنية وغيرها، وهو جزء من مجالات عمل Tokopedia. يُعدّ الموقع الإلكتروني أحد القنوات الأساسية لبائعي Mitra Tokopedia في أكثر من 700 مدينة، لذا من الضروري ضمان تجربة سلسة للمستخدمين.

تتطلّب إحدى الخطوات الرئيسية في عملية الإعداد من هؤلاء البائعين إثبات هويته. على البائع تحميل مستند تعريفه الوطني وصورة سيلفي معه لإكمال عملية إثبات هويته. ويُشار إلى ذلك باسم عملية التعرّف على العملاء (KYC).

من خلال إضافة إمكانات تعلُّم الآلة إلى عملية إثبات الهوية والأهلية هذه ضمن تطبيق الويب، تمكّنت شركة Mitra Tokopedia من توفير تجربة أفضل للمستخدمين مع تسجيل انخفاض بنسبة تزيد عن %20 في حالات تعذُّر إثبات الهوية والأهلية. وحقّقت الشركة أيضًا تخفيضات في التكاليف التشغيلية من خلال خفض الموافقات اليدوية بنسبة %70 تقريبًا.

التحدي

كان يتم رفض معظم بيانات التحقّق من الهوية والأهلية، ما أدّى إلى إنشاء آلاف الطلبات أسبوعيًا لإرسالها إلى فريق العمليات للتحقّق منها يدويًا. ولم يؤدّ ذلك فقط إلى ارتفاع التكلفة التشغيلية، بل أدّى أيضًا إلى ترك انطباع سيئ لدى المستخدمين بسبب تأخّر عملية verifying الخاصة بالبائعين. السبب الرئيسي لرفض الطلب هو أنّه لم يحمّل البائعون صورًا ذاتية تظهر فيها بطاقات التعريف بشكل صحيح. كان فريق Mitra Tokopedia حريصًا على حلّ هذه المشكلة بشكلٍ قابل للتطوير باستخدام إمكانات الويب الحديثة.

الحل

قرّر فريق Tokopedia استخدام الذكاء الاصطناعي مع TensorFlow.js لحلّ هذه المشكلة في الخطوة الأولى من عملية إثبات الهوية والأهلية، عندما يحمّل المستخدم الصور. لقد استخدَم الفريق MediaPipe ومكتبة "اكتشاف الوجوه" في TensorFlow لرصد وجه البائع من خلال ست نقاط رئيسية عندما يحمِّل البائع مستند الكشف عن الهوية وصورًا ذاتية. بعد ذلك، يتم استخدام نتائج النموذج للتحقّق من معايير القبول. بعد إثبات صحة المعلومات بنجاح، يتم إرسالها إلى الخلفية. إذا فشلت عملية التحقق، تظهر للبائع رسالة خطأ وخيار لإعادة المحاولة. تم استخدام منهج مختلط حيث يستنتج النموذج إما من الجهاز أو من جهة الخادم اعتمادًا على مواصفات الهاتف. سيُجري الجهاز المنخفض المستوى الاستنتاج على الخادم.

يتيح استخدام نموذج تعلُّم الآلة في وقت مبكر من عملية التعرُّف على العملاء (KYC) إجراء ما يلي:

  • تحسين معدّل الرفض في عملية إثبات الهوية والأهلية
  • تحذير المستخدمين من احتمال رفض صورهم استنادًا إلى الجودة التي يقيّمها النموذج

لماذا نختار الذكاء الاصطناعي بدلاً من الحلول الأخرى؟

يمكن أن ينجز تعلُّم الآلة المهام المتكررة التي تستغرق وقتًا طويلاً أو يصعب تنفيذها يدويًا. في حالة Tokopedia، لم يستطع تحسين الحل الحالي غير المرتبط بتعلُّم الآلة تحقيق نتائج مهمة، في حين يمكن أن يؤدي حل تعلُّم الآلة إلى تقليل العبء بشكل كبير على فريق العمليات الذي كان عليه معالجة الآلاف من الموافقات يدويًا أسبوعيًا. باستخدام حلّ الذكاء الاصطناعي، يمكن إجراء عمليات التحقّق من الصور بشكل شبه فوري، ما يقدّم تجربة أفضل للمستخدم ويزيد من فعالية العمليات. اقرأ المزيد حول تأطير المشاكل لتحديد ما إذا كان تعلُّم الآلة هو الحل المناسب لمشكلتك.

نقاط يجب أخذها في الاعتبار عند اختيار نموذج

تم أخذ العوامل التالية في الاعتبار عند اختيار نموذج الذكاء الاصطناعي.

التكلفة

قاموا بتقييم التكلفة الإجمالية لاستخدام النموذج. بما أنّ TensorFlow.js هو مكتبة مفتوحة المصدر تُجري Google صيانتها بشكل جيد، نوفّر تكاليف الترخيص و الحفاظ على الأداء. هناك اعتبار آخر هو تكلفة الاستنتاج. توفّر القدرة على الاستنتاج من جهة العميل الكثير من المال مقارنةً بمعالجتها على الخادم باستخدام وحدات معالجة رسومات باهظة التكلفة، خاصةً إذا تبيّن أنّ البيانات غير صالحة وغير قابلة للاستخدام.

سهولة التطوير

فقد أخذوا في الاعتبار قابلية تطور النموذج والتكنولوجيا. هل يمكنه التعامل مع زيادة البيانات وتعقيد النماذج مع تطور مشروعنا؟ هل يمكن تمديدها لتلبية مشروعات أو حالات استخدام أخرى؟ تساعد المعالجة على الجهاز في لأنّه يمكن استضافة النموذج على شبكة توصيل المحتوى (CDN) وتسليمه إلى جهة العميل، وهو ما يمكن توسيع نطاقه بسهولة.

الأداء

وقد أخذوا في الاعتبار حجم المكتبة (بالكيلوبايت) ووقت استجابة عملية المعالجة. يستخدم معظم مستخدمي Mitra Tokopedia أجهزة متوسطة أو منخفضة الأداء مع سرعة اتصال بالإنترنت وسرعة إنترنت متوسطة. وبالتالي، فإنّ الأداء من حيث التنزيل ووقت التشغيل (أي مدى سرعة إنتاج النموذج لنتيجة) هو أحد أهم الأولويات لتلبية احتياجاتهم المحدّدة وضمان تجربة رائعة للمستخدم.

اعتبارات أخرى

الامتثال للوائح التنظيمية: كان عليهم التأكّد من امتثال المكتبة التي تم اختيارها للوائح حماية البيانات والخصوصية ذات الصلة.

مجموعة المهارات: قيّم الفريق خبرته ومجموعة مهاراته. قد تتطلّب بعض منصّات الذكاء الاصطناعي والمكتبات لغات برمجة معيّنة أو خبرة في مجال معيّن. ومن خلال أخذ هذه العوامل في الاعتبار، اتّخذوا قرارًا مدروسًا عند اختيار النموذج المناسب لمشروع تعلُّم الآلة.

التكنولوجيا التي تم اختيارها

تمت تلبية TensorFlow.js لاحتياجاتهم بعد مراعاة هذه العوامل. ويمكن تشغيله بالكامل على الجهاز باستخدام الخلفية WebGL ل استخدام وحدة معالجة الرسومات في الجهاز. يتيح تشغيل نموذج على الجهاز تقديم ملاحظات بشكل أسرع للمستخدم بسبب انخفاض وقت استجابة الخادم، كما يقلل من تكلفة العمليات الحسابية على الخادم. يمكنك الاطّلاع علىمزيد من المعلومات عن ميزة "تعلُّم الآلة على الجهاز" في المقالة مزايا ميزة "تعلُّم الآلة على الجهاز" والقيود المفروضة عليها.

"TensorFlow.js هي مكتبة تعلُّم آلة مفتوحة المصدر من Google موجّهة إلى مطوّري JavaScript الذين يمكنهم تشغيلها من جهة العميل في المتصفّح. وهو الخيار الأكثر تقدّمًا لتكنولوجيات الذكاء الاصطناعي على الويب مع دعم شامل لمشغّلي الخلفية WebAssembly وWebGPU والذي يمكن استخدامه داخل المتصفّح مع أداء سريع".كيف استخدم Adobe تعلُّم الآلة على الويب مع TensorFlow.js لتحسين Photoshop للويب

التنفيذ الفني

استخدمت Mitra Tokopedia مكتبة ميزة "التعرّف على الوجه" من MediaPipe وTensorFlow، وهي حزمة تقدّم نماذج لتشغيل ميزة "التعرّف على الوجوه" في الوقت الفعلي. على وجه التحديد، تم استخدام نموذج MediaPipeFaceDetector-TFJS المتوفّر في هذه المكتبة لتنفيذ بيئة التشغيل tfjs، لهذا الحل.

قبل الغوص في عملية التنفيذ، إليك ملخّص موجز عن MediaPipe. تتيح لك MediaPipe إنشاء ونشر حلول الذكاء الاصطناعي (AI) على الأجهزة على مستوى الأجهزة الجوّالة (Android وiOS) والويب وأجهزة الكمبيوتر المكتبي والأجهزة الطرفية وإنترنت الأشياء.

هناك 14 حلًا مختلفًا تقدّمه MediaPipe في وقت كتابة هذا المنشور. يمكنك استخدام وقت تشغيل mediapipe أو tfjs. تم إنشاء وقت تشغيل tfjs باستخدام JavaScript، ويقدّم حزمة JavaScript يمكن تنزيلها خارجيًا من خلال تطبيق الويب. ويختلف ذلك عن بيئة تشغيل mediapipe التي تم إنشاؤها باستخدام C++ وتجميعها في وحدة WebAssembly. وتشمل الاختلافات الرئيسية الأداء وإمكانية تصحيح الأخطاء والتجميع. يمكن تجميع حزمة JavaScript مع أدوات تجميع الكلاسيكية مثل webpack. في المقابل، تعد وحدة 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' على التوالي. كما ذكرنا في بداية هذا المنشور، على البائع تحميل مستند هُويته المدني وصورة ذاتية تظهر فيها هويته من أجل إكمال عملية verifying العميل. بعد ذلك، يتم استخدام نتائج النموذج للتحقّق من استيفاء معايير القبول، أي أن تتطابق النقاط الرئيسية الستة المذكورة سابقًا لتكون البطاقة والهوية الذاتية صالحتين.

بعد إثبات الملكية بنجاح، يتم تمرير معلومات البائع ذات الصلة إلى الخلفية. إذا تعذّر إثبات الملكية، ستظهر للّاِعِد رسالة تشير إلى ذلك و خيار لإعادة المحاولة. ولن يتم إرسال أي معلومات إلى الواجهة الخلفية.

مخطّط بياني لصفحة التحقّق من هوية العميل في Mitra ونموذج TensorFlow.js والخادم أثناء التفاعل مع بعضها
كيفية تفاعل صفحة التحقّق من الهوية والأهلية في Mitra ونموذج TensorFlow.js والخادم معًا

اعتبارات الأداء على الأجهزة المنخفضة الأداء

لا تزيد سعة هذه الحزمة عن 24.8 كيلوبايت (مُصغرة ومضغوطة بتنسيق gzip)، ما لا يؤدي إلى التأثير بشكل كبير في وقت التنزيل. ومع ذلك، في الأجهزة ذات الأداء المنخفض جدًا، تتطلّب معالجة وقت التشغيل وقتًا طويلاً. تمت إضافة منطق إضافي للتحقق من ذاكرة الوصول العشوائي للجهاز ووحدة المعالجة المركزية (CPU) قبل تمرير الصورتين إلى نموذج اكتشاف الوجه بالتعلم الآلي.

إذا كان الجهاز يحتوي على ذاكرة وصول عشوائي (RAM) بسعة 4 غيغابايت أو أكثر واتصال شبكة أكبر من الجيل الرابع (4G) ووحدة معالجة مركزية بها أكثر من 6 أنوية، يتم إرسال الصور إلى النموذج على الجهاز لالتحقّق من الوجه. في حال عدم استيفاء هذه المتطلبات، يتم تخطّي النموذج الذي يتم تشغيله على الجهاز ويتم إرسال الصور مباشرةً إلى الخادم لإثبات الملكية باستخدام نهج مختلط لتلبية احتياجات هذه الأجهزة القديمة. وبمرور الوقت، سيصبح بإمكان المزيد من الأجهزة معالجة البيانات بدلاً من الخادم مع مواصلة تطور الأجهزة.

التأثير

بفضل دمج الذكاء الاصطناعي، تمكّنت Tokopedia من حلّ المشكلة المتعلّقة بالمعدّل المرتفع لحالات الرفض، وحقّقت النتائج التالية:

  • انخفض معدّل الرفض بأكثر من 20%.
  • انخفض عدد الموافقات اليدوية بنسبة %70 تقريبًا.

وقد أدّى ذلك إلى توفير تجربة سلسة للمستخدمين من جانب البائعين، كما أدّى إلى خفض التكلفة التشغيلية لفريق Tokopedia.

الخاتمة

بشكل عام، أظهرت نتائج هذه الدراسة الحالة أنّه في حالات الاستخدام المناسبة، يمكن أن تكون حلول الذكاء الاصطناعي على الجهاز على الويب مفيدة في تحسين تجربت ا المستخدم وفعالية الميزات، بالإضافة إلى تحقيق وفورات في التكاليف و مزايا أخرى للنشاط التجاري.

يمكنك تجربة ميزة MediaPipe Face Detection بنفسك باستخدام MediaPipe Studio ونموذج الرمز البرمجي MediaPipe Face Detector للويب.

إذا كنت مهتمًا بتعزيز إمكانات تطبيق الويب الخاص بك باستخدام تعلُّم الآلة على الجهاز، اطّلِع على المراجع التالية: