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

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

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

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

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

التحدي

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

الحل

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

يساعد استخدام نموذج تعلُّم الآلة في مرحلة مبكرة من عملية "التعرّف على العميل" في ما يلي:

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

لماذا نختار تعلُّم الآلة بدلاً من الحلول الأخرى؟

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

الاعتبارات التي يجب مراعاتها عند اختيار نموذج

تم أخذ العوامل التالية في الاعتبار عند اختيار نموذج تعلُّم الآلة.

التكلفة

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

قابلية التوسّع

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

الأداء

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

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

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

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

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

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

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

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

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

قبل البدء في عملية التنفيذ، إليك ملخّص سريع عن MediaPipe. تتيح لك MediaPipe إنشاء حلول تعلُّم الآلة على الجهاز ونشرها على الأجهزة الجوّالة (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' على التوالي. كما ذكرنا في بداية هذه المقالة، على البائع تحميل مستند التعريف الوطني وصورة سيلفي مع المستند لإكمال عملية إثبات هويته. يتم بعد ذلك استخدام مخرجات النموذج للتحقّق من معايير القبول، أي مطابقة النقاط الرئيسية الست المذكورة سابقًا ليتم اعتبارها بطاقة تعريف وصورة سيلفي صالحة.

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

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

اعتبارات الأداء للأجهزة الأقل تطوّرًا

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

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

التأثير

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

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

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

الخاتمة

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

يمكنك تجربة ميزة "التعرّف على الوجوه" في MediaPipe بنفسك باستخدام MediaPipe Studio وعيّنة التعليمات البرمجية لـ "التعرّف على الوجوه" في MediaPipe للويب.

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