Как компания Tokopedia снизила операционные расходы, улучшив веб-приложение для продавцов с помощью машинного обучения

Tokopedia – индонезийская технологическая компания, которая владеет одной из крупнейших торговых площадок в сфере электронной торговли. На ней представлено более 40 цифровых продуктов и зарегистрировано свыше 14 миллионов продавцов.

Mitra Tokopedia – это веб-приложение, которое помогает владельцам малого бизнеса продавать цифровые товары, например кредиты, игровые ваучеры, пакеты данных, токены электроэнергии, счета за национальное здравоохранение и т. д. Сайт – один из основных каналов для продавцов Mitra Tokopedia в более чем 700 городах, поэтому важно обеспечить удобство его использования.

Важным этапом регистрации является подтверждение личности. Чтобы пройти проверку, продавец должен загрузить свое удостоверение личности государственного образца и селфи с ним. Этот процесс называется "Знай своего клиента" (KYC).

Добавив возможности машинного обучения в этот критически важный процесс KYC в своем веб-приложении, Mitra Tokopedia смогла улучшить взаимодействие с пользователем и сократить количество сбоев при проверке более чем на 20 %. Кроме того, компании удалось сократить операционные расходы, снизив количество одобрений вручную почти на 70 %.

Задача

Большинство данных KYC отклонялось, из-за чего каждую неделю создавались тысячи запросов на ручную проверку. Это не только приводило к высоким операционным расходам, но и создавало неудобства для продавцов, чья проверка задерживалась. Основная причина отклонения заключалась в том, что продавцы неправильно загружали селфи с удостоверениями личности. Команда Mitra Tokopedia хотела решить эту проблему с помощью современных веб-технологий.

Решение

Команда Tokopedia решила использовать машинное обучение с TensorFlow.js, чтобы решить эту проблему на самом первом этапе процесса KYC – когда пользователь загружает изображения. Они использовали MediaPipe и библиотеку распознавания лиц TensorFlow, чтобы обнаруживать лицо продавца по шести ключевым точкам, когда он загружает удостоверение личности и селфи. Затем выходные данные модели используются для проверки на соответствие критериям приемки. После успешной проверки информация отправляется на сервер. Если проверка не пройдена, продавец увидит сообщение об ошибке и сможет повторить попытку. Используется гибридный подход, при котором модель выполняет вывод на устройстве или на сервере в зависимости от характеристик телефона. На менее мощных устройствах вывод будет выполняться на сервере.

Использование модели машинного обучения на ранних этапах процесса KYC позволяет им:

  • Улучшить показатель отказов в процессе KYC.
  • Предупреждайте пользователей о возможном отклонении их изображений на основе качества, оцененного моделью.

Почему стоит выбрать машинное обучение, а не другие решения?

ML может автоматизировать повторяющиеся задачи, которые в противном случае отнимают много времени или нецелесообразны для выполнения вручную. В случае с Tokopedia оптимизация текущего решения без ML не могла дать значительных результатов, тогда как решение с ML могло значительно снизить нагрузку на операционную группу, которой приходилось вручную обрабатывать тысячи утверждений еженедельно. С помощью решения на основе машинного обучения проверки изображений можно выполнять практически мгновенно, что повышает удобство работы пользователей и эффективность работы. Подробнее о том, как сформулировать проблему, чтобы определить, подходит ли машинное обучение для ее решения…

Что нужно учитывать при выборе модели

При выборе модели машинного обучения учитывались следующие факторы.

Стоимость

Они оценили общую стоимость использования модели. Поскольку TensorFlow.js – это пакет ПО с открытым исходным кодом, который поддерживается Google, мы экономим на лицензировании и обслуживании. Дополнительным фактором является стоимость вывода. Возможность выполнять инференс на клиентской стороне позволяет сэкономить много денег по сравнению с обработкой на серверной стороне с использованием дорогих графических процессоров, особенно если данные оказываются недействительными и непригодными для использования.

Масштабируемость

Они рассмотрели масштабируемость модели и технологии. Сможет ли она справиться с ростом объема данных и сложности модели по мере развития нашего проекта? Можно ли его расширить, чтобы использовать в других проектах или сценариях? Обработка на устройстве помогает, потому что модель может быть размещена в CDN и доставлена на сторону клиента, что очень масштабируемо.

Эффективность

Они учитывали размер библиотеки (в КБ) и задержку процесса выполнения. Большинство пользовательской базы Mitra Tokopedia имеет устройства среднего и низкого уровня с умеренной скоростью интернета и возможностью подключения. Таким образом, производительность с точки зрения скачивания и времени выполнения (то есть того, насколько быстро модель может выдать результат) является главным приоритетом для удовлетворения их конкретных потребностей и обеспечения удобства пользователей.

Дополнительные рекомендации

Соблюдение нормативных требований. Выбранная библиотека должна соответствовать действующим законам о защите данных и конфиденциальности.

Навыки. Оцените опыт и навыки команды. Для некоторых фреймворков и библиотек машинного обучения могут потребоваться определенные языки программирования или опыт работы в определенной области. Учитывая эти факторы, они приняли обоснованное решение при выборе правильной модели для своего проекта машинного обучения.

Выбранная технология

После рассмотрения этих факторов TensorFlow.js удовлетворил их потребности. Она может полностью работать на устройстве, используя серверную часть WebGL для задействования графического процессора устройства. Запуск модели на устройстве позволяет быстрее предоставлять пользователю обратную связь за счет уменьшения задержки сервера и снижает затраты на вычисления на сервере. Подробнее о машинном обучении на устройстве читайте в статье Преимущества и ограничения машинного обучения на устройстве.

TensorFlow.js – это библиотека машинного обучения с открытым исходным кодом от Google, предназначенная для разработчиков JavaScript и способная работать на стороне клиента в браузере. Это наиболее зрелое решение для веб-ИИ с комплексной поддержкой операторов бэкенда WebGL, WebAssembly и WebGPU, которое можно использовать в браузере с высокой производительностью". – Как Adobe использовала веб-ML с TensorFlow.js для улучшения Photoshop для веб-браузеров

Техническая реализация

Разработчики Mitra Tokopedia использовали MediaPipe и библиотеку распознавания лиц TensorFlow – пакет, который предоставляет модели для распознавания лиц в реальном времени. В частности, в этом решении использовалась модель MediaPipeFaceDetector-TFJS, которая реализует среду выполнения tfjs.

Прежде чем перейти к реализации, кратко напомним, что такое MediaPipe. MediaPipe позволяет создавать и развертывать решения машинного обучения на устройствах, включая мобильные (Android, iOS), веб- и пограничные устройства, компьютеры и устройства интернета вещей.

На момент написания этой статьи MediaPipe предлагает 14 различных решений. Вы можете использовать среду выполнения 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 KYC, модели TensorFlow.js и сервера.
Как взаимодействуют страница Mitra KYC, модель TensorFlow.js и сервер

Производительность на устройствах более низкого класса

Размер этого пакета составляет всего 24,8 КБ (в минифицированном и сжатом виде), поэтому он не оказывает существенного влияния на время скачивания. Однако на устройствах низкого класса обработка во время выполнения занимает много времени. Добавлена дополнительная логика для проверки ОЗУ и ЦП устройства перед передачей двух изображений в модель машинного обучения для распознавания лиц.

Если у устройства более 4 ГБ ОЗУ, подключение к сети лучше, чем 4G, и ЦП с более чем шестью ядрами, изображения передаются локальной модели для проверки лица. Если эти требования не выполняются, то модель на устройстве пропускается и изображения отправляются напрямую на сервер для проверки с использованием гибридного подхода, предназначенного для таких старых устройств. Со временем, по мере развития аппаратного обеспечения, все больше устройств смогут разгружать сервер.

Результат

Благодаря интеграции ML Tokopedia удалось решить проблему с высоким уровнем отказов и достичь следующих результатов:

  • Доля отклоненных показов снизилась более чем на 20 %.
  • Количество одобрений вручную снизилось почти на 70 %.

Это не только сделало работу продавцов более удобной, но и снизило операционные расходы команды Tokopedia.

Заключение

В целом результаты этого тематического исследования показали, что для правильных вариантов использования решения ML на устройстве в Интернете могут быть полезны для улучшения пользовательского опыта и эффективности функций, а также для экономии средств и других бизнес-преимуществ.

Попробуйте функцию распознавания лиц MediaPipe в MediaPipe Studio и используйте пример кода для MediaPipe Face Detector для веб-приложений.

Если вы хотите расширить возможности своего веб-приложения с помощью машинного обучения на устройстве, ознакомьтесь со следующими ресурсами: