Cách Tokopedia giảm chi phí vận hành bằng cách cải thiện ứng dụng web của người bán nhờ sử dụng công nghệ Học máy

Dendi Sunardi
Dendi Sunardi
Geoffrey Prasetyo
Geoffrey Prasetyo
Swetha Gopalakrishnan
Swetha Gopalakrishnan

Tokopedia là một công ty công nghệ của Indonesia, sở hữu một trong những trang web thương mại điện tử lớn nhất, lưu trữ hơn 40 sản phẩm kỹ thuật số và hơn 14 triệu người bán đã đăng ký trên nền tảng của họ.

Mitra Tokopedia, thuộc các ngành dọc kinh doanh của Tokopedia, là một ứng dụng web giúp các chủ doanh nghiệp nhỏ bán các sản phẩm kỹ thuật số, chẳng hạn như phiếu thưởng tín dụng và trò chơi, gói dữ liệu, mã thông báo điện, hoá đơn chăm sóc sức khoẻ quốc gia và nhiều sản phẩm khác. Trang web là một trong những kênh chính cho các nhà bán hàng của Mitra Tokopedia tại hơn 700 thành phố, vì thế, trang web này rất quan trọng trong việc đảm bảo trải nghiệm mượt mà cho người dùng.

Một bước quan trọng trong quy trình tham gia yêu cầu những người bán này xác minh danh tính của họ. Người bán phải tải số căn cước lên cũng như ảnh chân dung tự chụp có giấy tờ tuỳ thân đó để hoàn tất quy trình xác minh người bán. Quy trình này được gọi là quy trình Hiểu rõ khách hàng (KYC).

Bằng cách bổ sung các chức năng Học máy vào quy trình Xác minh danh tính khách hàng (KYC) quan trọng này trong ứng dụng web, Mitra Tokopedia đã mang đến trải nghiệm tốt hơn cho người dùng và giảm được hơn 20% số lỗi xác minh không thành công. Họ cũng tiết kiệm chi phí vận hành bằng cách giảm gần 70% quy trình phê duyệt thủ công.

Khó khăn

Hầu hết dữ liệu KYC đã bị từ chối, tạo hàng nghìn phiếu yêu cầu mỗi tuần cho nhóm vận hành để xác minh thủ công. Điều này không chỉ làm tăng chi phí vận hành mà còn gây ra trải nghiệm không tốt cho người bán, vì quá trình xác minh bị chậm trễ. Lý do lớn nhất cho việc từ chối là người bán hàng không tải ảnh chân dung tự chụp có giấy tờ tuỳ thân lên một cách chính xác. Mitra Tokopedia muốn giải quyết vấn đề này trên quy mô lớn bằng cách sử dụng các chức năng web hiện đại.

Giải pháp

Nhóm tại Tokopedia đã quyết định sử dụng công nghệ học máy với TensorFlow.js để giải quyết vấn đề này ở bước đầu tiên của quy trình Xác minh danh tính khách hàng (KYC) khi người dùng tải hình ảnh lên. Họ sử dụng thư viện Phát hiện khuôn mặt của MediaPipe và TensorFlow để phát hiện khuôn mặt của người bán bằng 6 điểm chính khi người bán tải thẻ mã nhận dạng và ảnh chân dung tự chụp lên. Sau đó, dữ liệu đầu ra của mô hình sẽ được dùng để kiểm tra các tiêu chí chấp nhận. Sau khi xác minh thành công, thông tin sẽ được gửi đến phần phụ trợ. Nếu xác minh không thành công, người bán sẽ thấy một thông báo lỗi kèm theo lựa chọn thử lại. Phương pháp kết hợp được sử dụng, trong đó mô hình thực hiện dự đoán ở trên thiết bị hoặc phía máy chủ, tuỳ thuộc vào thông số kỹ thuật của điện thoại. Thiết bị cấp thấp hơn sẽ thực hiện dự đoán trên máy chủ.

Việc sử dụng mô hình học máy ngay từ đầu quy trình Xác minh danh tính khách hàng (KYC) cho phép họ:

  • Cải thiện tỷ lệ từ chối trong quy trình Xác minh danh tính khách hàng (KYC).
  • Cảnh báo người dùng về khả năng hình ảnh của họ bị từ chối, dựa trên chất lượng mà mô hình đánh giá.

Vì sao bạn nên chọn công nghệ học máy thay vì các giải pháp khác?

Công nghệ học máy có thể tự động hoá các công việc lặp đi lặp lại tốn thời gian hoặc khó thực hiện theo cách thủ công. Trong trường hợp của Tokopedia, việc tối ưu hoá giải pháp không phải công nghệ học máy hiện tại không mang lại kết quả đáng kể, còn giải pháp học máy có thể làm giảm đáng kể khối lượng công việc cho nhóm vận hành, vốn phải xử lý hàng nghìn yêu cầu phê duyệt mỗi tuần theo cách thủ công. Với giải pháp học máy, việc kiểm tra hình ảnh có thể được thực hiện gần như ngay lập tức, mang lại trải nghiệm người dùng tốt hơn và cải thiện hiệu quả vận hành. Hãy đọc thêm về việc lấy khung hình để xử lý vấn đề để xác định xem công nghệ học máy có phải là giải pháp phù hợp cho vấn đề của bạn hay không.

Những điều cần cân nhắc khi chọn mô hình

Sau đây là những yếu tố được cân nhắc khi chọn mô hình học máy.

Chi phí

Họ đánh giá tổng chi phí sử dụng mô hình này. Vì TensorFlow.js là một gói nguồn mở được Google duy trì tốt, nên chúng tôi sẽ tiết kiệm chi phí cấp phép và bảo trì. Một yếu tố cần cân nhắc thêm là chi phí suy luận. Việc có thể chạy suy luận ở phía máy khách sẽ giúp tiết kiệm rất nhiều tiền so với việc xử lý dữ liệu đó ở phía máy chủ bằng các GPU đắt tiền, đặc biệt là khi dữ liệu trở nên không hợp lệ và không sử dụng được.

Khả năng mở rộng quy mô

Họ đã cân nhắc khả năng mở rộng của mô hình và công nghệ. Liệu chúng ta có thể xử lý sự gia tăng về độ phức tạp của dữ liệu và mô hình khi dự án phát triển không? Danh mục này có thể được mở rộng để phục vụ cho các dự án hoặc trường hợp sử dụng khác không? Quá trình xử lý trên thiết bị rất hữu ích, vì mô hình có thể được lưu trữ trên CDN và được phân phối sang phía máy khách, rất dễ mở rộng.

Hiệu suất

Họ xem xét kích thước của thư viện (tính bằng KB) và độ trễ của quy trình thời gian chạy. Phần lớn cơ sở người dùng của Mitra Tokopedia có các thiết bị tầm trung đến cấp thấp với tốc độ và khả năng kết nối Internet vừa phải. Do đó, hiệu suất về khía cạnh tải xuống và thời gian chạy (tức là tốc độ mà mô hình có thể tạo ra kết quả) là ưu tiên hàng đầu để đáp ứng các nhu cầu cụ thể và đảm bảo trải nghiệm tuyệt vời cho người dùng.

Lưu ý khác

Tuân thủ quy định: Họ phải đảm bảo thư viện được chọn tuân thủ các quy định liên quan về quyền riêng tư và việc bảo vệ dữ liệu.

Bộ kỹ năng: Họ đánh giá chuyên môn và bộ kỹ năng của nhóm mình. Một số khung và thư viện học máy có thể yêu cầu ngôn ngữ lập trình hoặc chuyên môn cụ thể về một lĩnh vực cụ thể. Bằng cách xem xét các yếu tố này, họ đã đưa ra quyết định sáng suốt khi chọn mô hình phù hợp cho dự án học máy của mình.

Công nghệ đã chọn

TensorFlow.js đã đáp ứng nhu cầu của họ sau khi xem xét các yếu tố này. Sản phẩm này có thể chạy hoàn toàn trên thiết bị bằng cách sử dụng phần phụ trợ WebGL để sử dụng GPU của thiết bị. Việc chạy mô hình trên thiết bị cho phép người dùng phản hồi nhanh hơn do độ trễ của máy chủ giảm và chi phí điện toán máy chủ giảm. Đọc thêm về công nghệ học máy trên thiết bị trong bài viết Ưu điểm và hạn chế của công nghệ học máy trên thiết bị.

"TensorFlow.js là một thư viện học máy nguồn mở của Google nhắm đến các nhà phát triển JavaScript có thể chạy phía máy khách trong trình duyệt. Đây là lựa chọn hoàn thiện nhất cho AI trên web với khả năng hỗ trợ toàn diện cho WebGL, WebAssembly và WebGPU để hỗ trợ trong trình duyệt với hiệu suất nhanh."Cách Adobe sử dụng Web ML với TensorFlow.js để cải thiện Photoshop cho web

Triển khai kỹ thuật

Mitra Tokopedia đã sử dụng thư viện Phát hiện khuôn mặt của MediaPipe và TensorFlow, một gói cung cấp các mô hình để chạy tính năng phát hiện khuôn mặt theo thời gian thực. Cụ thể, mô hình MediaPipeFaceDetector-TFJS được cung cấp trong thư viện này. Mô hình này triển khai thời gian chạy tfjs đã được dùng cho giải pháp này.

Trước khi tìm hiểu sâu về cách triển khai, hãy tóm tắt ngắn gọn về MediaPipe. MediaPipe cho phép bạn xây dựng và triển khai các giải pháp học máy trên thiết bị qua thiết bị di động (Android, iOS), web, máy tính, thiết bị Edge và IoT.

MediaPipe cung cấp 14 giải pháp tại thời điểm viết bài này. Bạn có thể sử dụng môi trường thời gian chạy mediapipe hoặc tfjs. Môi trường thời gian chạy tfjs được xây dựng bằng JavaScript và cung cấp gói JavaScript mà ứng dụng web có thể tải xuống bên ngoài. Mô-đun này khác với môi trường thời gian chạy mediapipe được xây dựng bằng C++ và được biên dịch thành mô-đun WebAssembly. Các điểm khác biệt chính là hiệu suất, khả năng gỡ lỗi và gói. Gói JavaScript có thể được đóng gói với các gói cổ điển như webpack. Ngược lại, mô-đun Wasm là một tài nguyên nhị phân lớn hơn và riêng biệt (được giảm thiểu bằng cách không phải là phần phụ thuộc thời gian tải) và đòi hỏi một quy trình gỡ lỗi Wasm khác. Tuy nhiên, mã này sẽ thực thi nhanh hơn để đáp ứng các yêu cầu về kỹ thuật và hiệu suất.

Sơ đồ về cách các mô hình MediaPipe và TensorFlow hoạt động trong nhiều môi trường thời gian chạy, lấy FaceDetection làm ví dụ.
Hình minh hoạ chung về cách các mô hình MediaPipe và TensorFlow hoạt động trong nhiều môi trường thời gian chạy, lấy FaceDetection làm ví dụ

Quay lại phần triển khai của Tokopedia, bước đầu tiên là khởi chạy mô hình như sau. Khi người dùng tải ảnh lên, HTMLImageElement sẽ được truyền dưới dạng dữ liệu đầu vào cho trình phát hiện.

// 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);

Kết quả của danh sách khuôn mặt chứa các khuôn mặt được phát hiện cho từng khuôn mặt trong hình ảnh. Nếu mô hình không thể phát hiện khuôn mặt nào thì danh sách này sẽ trống. Đối với mỗi khuôn mặt, lớp này chứa một hộp giới hạn của khuôn mặt được phát hiện, cũng như một mảng gồm 6 điểm chính cho khuôn mặt được phát hiện. Quy định này bao gồm các tính năng như mắt, mũi và miệng. Mỗi điểm chính chứa x và y, cũng như một tên.

[
  {
    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 đại diện cho hộp giới hạn của khuôn mặt trong không gian pixel hình ảnh, trong đó xMin, xMax biểu thị giới hạn x, yMin, yMax biểu thị giới hạn y và width, height là kích thước của hộp giới hạn. Đối với keypoints, xy biểu thị vị trí điểm chính thực tế trong không gian pixel hình ảnh. name cung cấp nhãn cho điểm khoá có kích thước lần lượt là 'rightEye', 'leftEye', 'noseTip', 'mouthCenter', 'rightEarTragion''leftEarTragion'. Như đã đề cập ở đầu bài đăng này, người bán phải tải Thẻ căn cước và ảnh chân dung tự chụp có giấy tờ tuỳ thân đó lên để hoàn tất quy trình xác minh người bán. Sau đó, kết quả của mô hình sẽ được dùng để kiểm tra các tiêu chí chấp nhận. Điều này có nghĩa là kết quả trùng khớp của 6 điểm chính đã đề cập trước đó sẽ được coi là Thẻ nhận dạng và ảnh chân dung tự chụp hợp lệ.

Sau khi xác minh thành công, thông tin người bán có liên quan sẽ được chuyển cho phần phụ trợ. Nếu xác minh không thành công, người bán sẽ nhận được thông báo lỗi và lựa chọn thử lại. Sẽ không có thông tin nào được gửi đến phần phụ trợ.

Sơ đồ về trang Mitra KYC, mô hình TensorFlow.js và máy chủ tương tác với nhau.
Cách trang Mitra KYC, mô hình TensorFlow.js và máy chủ tương tác với nhau

Những điểm cần lưu ý về hiệu suất của thiết bị cấp thấp

Gói này chỉ có kích thước 24,8 KB (rút gọn và nén), điều này không ảnh hưởng đáng kể đến thời gian tải xuống. Tuy nhiên, đối với các thiết bị cấp thấp, việc xử lý trong thời gian chạy mất nhiều thời gian. Thêm logic bổ sung để kiểm tra RAM và CPU của thiết bị trước khi chuyển hai hình ảnh này sang mô hình phát hiện khuôn mặt của công nghệ học máy.

Nếu thiết bị có RAM trên 4 GB, kết nối mạng lớn hơn 4G và CPU có nhiều hơn 6 lõi, thì hình ảnh sẽ được chuyển đến mẫu trên thiết bị để xác minh khuôn mặt. Nếu không đáp ứng các yêu cầu này, mô hình trên thiết bị sẽ bị bỏ qua và hình ảnh được gửi trực tiếp đến máy chủ để xác minh bằng phương pháp kết hợp nhằm phục vụ cho các thiết bị cũ này. Theo thời gian, sẽ có thêm nhiều thiết bị có thể giảm tải điện toán từ máy chủ khi phần cứng tiếp tục phát triển.

Mức độ tác động

Nhờ việc tích hợp ML, Tokopedia đã giải quyết thành công tỷ lệ từ chối cao và thu được kết quả như sau:

  • Tỷ lệ từ chối đã giảm hơn 20%.
  • Số lần phê duyệt thủ công đã giảm gần 70%.

Điều này không chỉ tạo trải nghiệm người dùng mượt mà hơn cho người bán, mà còn giảm chi phí vận hành cho nhóm Tokopedia.

Kết luận

Nhìn chung, kết quả của nghiên cứu điển hình này cho thấy rằng đối với các trường hợp sử dụng phù hợp, các giải pháp học máy trên thiết bị trên web có thể hữu ích trong việc cải thiện trải nghiệm người dùng và hiệu quả của các tính năng, cũng như giúp tiết kiệm chi phí và các lợi ích kinh doanh khác.

Hãy tự dùng thử tính năng Phát hiện khuôn mặt của MediaPipe bằng MediaPipe Studio và mã mẫu cho Trình phát hiện khuôn mặt MediaPipe dành cho web.

Nếu bạn muốn mở rộng các chức năng cho ứng dụng web của mình bằng công nghệ học máy trên thiết bị, hãy xem các tài nguyên sau: