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 có 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, một bộ phận kinh doanh của Tokopedia ngành dọc, 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ố như tín dụng và phiếu thưởng trò chơi, gói dữ liệu, điện mã thông báo, hoá đơn chăm sóc sức khoẻ toàn quốc, v.v. Trang web là một trong những kênh cho người bán của Mitra Tokopedia tại hơn 700 thành phố, điều này khiến Google trở nên cực kỳ quan trọng nhằm đảm bảo mang lại 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 nhận dạng. Người bán phải tải số căn cước lên cùng với ảnh chân dung tự chụp mã nhận dạng để hoàn tất quy trình xác minh người bán. Đây được gọi là Quy trình Xác minh danh tính khách hàng (KYC).

Thêm các chức năng của công nghệ học máy vào quy trình KYC quan trọng này trong ứng dụng web của mình, Mitra Tokopedia đã có thể có được trải nghiệm người dùng tốt hơn nhờ giảm hơn 20% số lỗi xác minh. Các giải pháp này cũng giúp hoạt động tiết kiệm chi phí bằng cách giảm gần 70% số phê duyệt thủ công.

Thách thức

Hầu hết dữ liệu KYC đã bị từ chối, tạo ra hàng nghìn phiếu yêu cầu hỗ trợ mỗi tuần cho nhóm vận hành để xác minh thủ công. Điều này không chỉ khiến chi phí vận hành mà còn dẫn đến trải nghiệm người dùng kém cho người bán, quá trình xác minh sẽ bị chậm trễ. Lý do lớn nhất khiến chúng tôi từ chối là người bán không tải ảnh chân dung tự chụp lên bằng giấy tờ tuỳ thân đúng cách. Mitra Tokopedia đều 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 tính năng web hiện đại.

Giải pháp

Nhóm của 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 KYC – khi người dùng tải hình ảnh lên. Chúng đã dùng MediaPipe và TensorFlow Thư viện Phát hiện khuôn mặt để 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 mã nhận dạng lên ảnh thẻ và ảnh chân dung tự chụp. Sau đó, kết quả của mô hình sẽ được dùng để kiểm tra 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 và lựa chọn thử lại. Phương pháp tiếp cận kết hợp đã được sử dụng, trong đó mô hình này thực hiện suy luận trên thiết bị hoặc phía máy chủ, tuỳ thuộc vào thông số kỹ thuật. Thiết bị cấp thấp hơn sẽ tiến hành suy luận trên máy chủ.

Việc sử dụng mô hình ML trong giai đoạn đầu quy trình KYC cho phép họ:

  • Cải thiện tỷ lệ từ chối trong quy trình 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 do mô hình đó đánh giá.

Tại sao 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á những công việc lặp đi lặp lại tốn thời gian hoặc không thể thực hiện theo cách thủ công. Trong trường hợp của Tokopedia, việc tối ưu hoá hệ thống phi học máy hiện tại không thể mang lại kết quả đáng kể trong khi giải pháp học máy có thể giảm đáng kể tải cho nhóm vận hành vì họ phải xử lý thủ công hàng nghìn lượt phê duyệt mỗi tuần. Với giải pháp học máy, bạn có thể kiểm tra hình ảnh gần như ngay lập tức, cung cấp trải nghiệm người dùng tốt hơn và cải thiện hiệu quả hoạt động sự hiệu quả. Đọc thêm về lấy khung hình có vấn đề để xác định xem công nghệ học máy có phải là một giải pháp phù hợp cho vấn đề của bạn hay không.

Những yếu tố nên cân nhắc khi chọn một 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 là gói nguồn mở được Google duy trì tốt, chúng tôi tiết kiệm được chi phí cấp phép và chi phí bảo trì. Một yếu tố khác cần cân nhắc là chi phí suy luận. Hiện hữu có thể chạy suy luận ở phía máy khách giúp tiết kiệm rất nhiều tiền so với xử lý dữ liệu ở phía máy chủ bằng GPU tốn kém, đặ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ọ xem xét khả năng mở rộng của mô hình và công nghệ. Có thể xử lý sự gia tăng về dữ liệu và độ phức tạp của mô hình khi dự án của chúng tôi phát triển không? Có thể nhằm phục vụ các dự án hoặc trường hợp sử dụng khác không? Xử lý trên thiết bị giúp 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ọ cân nhắc kích thước của thư viện (tính bằng KB) và độ trễ của thời gian chạy của chúng tôi. Phần lớn cơ sở người dùng của Mitra Tokopedia sử dụng thiết bị tầm trung đến thấp với tốc độ và khả năng kết nối Internet vừa phải. Do đó, hiệu suất xét theo 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à ở trên cùng nhằm đáp ứng nhu cầu cụ thể của họ 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 rằng thư viện mà bạn chọn tuân thủ các quy định có liên quan về bảo vệ dữ liệu và quyền riêng tư.

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ố công nghệ học máy khung và thư viện có thể yêu cầu chuyên môn hoặc ngôn ngữ lập trình cụ thể trong một khu 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 họ.

Công nghệ đã chọn

TensorFlow.js đã đáp ứng nhu cầu của họ sau khi cân nhắc các yếu tố này. Công cụ này có thể chạy đầy đủ 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 phản hồi nhanh hơn cho người dùng do giảm độ trễ của máy chủ và giảm chi phí điện toán máy chủ. Đã đọc tìm hiểu 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 máy học nguồn mở của Google nhắm đến Nhà phát triển JavaScript có thể chạy phía máy khách trong trình duyệt. Đó là lựa chọn hoàn thiện nhất cho Web AI với WebGL, WebAssembly và WebGPU toàn diện hỗ trợ toán tử phụ trợ có thể được sử dụng trong trình duyệt với tính năng hiệu suất."Cách Adobe sử dụng công nghệ học máy web với TensorFlow.js để cải thiện Photoshop cho web

Triển khai kỹ thuật

Mitra Tokopedia đã sử dụng MediaPipe và TensorFlow thư viện Phát hiện khuôn mặt, 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ể, MediaPipeFaceDetector-TFJS mô hình đượ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 đi sâu vào cách triển khai, hãy tóm tắt ngắn gọn về MediaPipe là gì. MediaPipe giú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ị cho thiết bị di động (Android, iOS), web, máy tính, thiết bị phức tạp, và IoT.

14 giải pháp được MediaPipe cung cấp tại thời điểm viết bài đăng này. Bạn có thể sử dụ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 có thể được tải xuống bên ngoài bằng web . Điều này khác với môi trường thời gian chạy mediapipe được tạo bằng C++ và được biên dịch thành mô-đun WebAssembly. Sự khác biệt chính là hiệu suất, khả năng gỡ lỗi và nhóm. Gói JavaScript có thể được đóng gói với các như gói webpack. Ngược lại, mô-đun Wasm lớn hơn và riêng biệt tài nguyên nhị phân (được giảm thiểu bằng cách không phải là phần phụ thuộc trong thời gian tải) và yêu cầu một phiên bản khác Quy trình gỡ lỗi Wasm. Tuy nhiên, mã sẽ thực thi nhanh hơn nhằm giúp đá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 với quá trình 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 một ảnh lên, hệ thống sẽ nhận được HTMLImageElement làm 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 bất kỳ khuôn mặt nào, thì danh sách sẽ trống. Đối với mỗi khuôn mặt, biểu tượng này chứa một hộp giới hạn của khuôn mặt phát hiện được, cũng như một mảng gồm 6 điểm chính cho khuôn mặt được phát hiện. Điều này bao gồm các tính năng như mắt, mũi và miệng. Mỗi điểm khoá 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 biểu thị hộp giới hạn của khuôn mặt trong không gian pixel hình ảnh, với 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í thực tế của điểm khoá trong hình ảnh không gian pixel. name cung cấp nhãn cho điểm chính, đó là 'rightEye', 'leftEye', 'noseTip', 'mouthCenter', 'rightEarTragion''leftEarTragion' tương ứng. 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 để hoàn tất giao dịch bán hàng xác minh. 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—đó là khớp với sáu điểm chính được đề cập trước đó được coi là hợp lệ Thẻ căn cước và ảnh chân dung tự chụp.

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

Sơ đồ 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 cân nhắc về hiệu suất đối với thiết bị cấp thấp

Gói này chỉ có 24,8 KB (được rút gọn và nén), 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, quá trình xử lý trong thời gian chạy sẽ 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 truyền hai hình ảnh này sang giao diện học máy mô hình phát hiện khác nhau.

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ó hơn 6 lõi, hình ảnh được chuyển sang mẫu trên thiết bị để xác minh khuôn mặt. Nếu không được đáp ứng các yêu cầu này thì trên thiết bị mô hình bị bỏ qua và hình ảnh được gửi trực tiếp đến máy chủ để xác minh bằng cách sử dụng phương pháp kết hợp để phục vụ cho các thiết bị cũ này. Theo thời gian, nhiều hơn các 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.

Tác động

Nhờ tích hợp công nghệ học máy, Tokopedia đã thành công trong việc giải quyết vấn đề tỷ lệ từ chối và thấy được các kết quả sau:

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

Việc 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 bớt chi phí vận hành của 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ể có giá trị trong việc cải thiện người dùng trải nghiệm và hiệu quả của các tính năng cũng như tiết kiệm chi phí và các lợi ích kinh doanh khác.

Hãy tự mình dùng thử tính năng Phát hiện khuôn mặt MediaPipe bằng cách sử dụ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 khả năng của ứng dụng web với học máy trên thiết bị, hãy xem các tài nguyên sau: