Come Tokopedia ha ridotto i costi operativi migliorando l'app web per venditori tramite il machine learning

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

Tokopedia è una società tecnologica indonesiana con il più grande marketplace di e-commerce con oltre 40 prodotti digitali e più di 14 milioni di venditori registrati sulla sua piattaforma.

Mitra Tokopedia, che fa parte dell'attività di Tokopedia verticali, è un'applicazione web che aiuta i proprietari di piccole imprese a vendere prodotti digitali come credito e voucher per giochi, pacchetti di dati, elettricità token, bollette sanitarie nazionali e altro ancora. Il sito web è uno dei principali canali per i venditori di Mitra Tokopedia in più di 700 città, il che lo rende fondamentale per garantire un'esperienza utente ottimale.

Un passaggio fondamentale nella procedura di onboarding richiede che questi venditori verifichino il proprio e identità di base. Il venditore deve caricare il proprio documento di identità e un selfie con l'ID per completare la verifica del venditore. Definito come procedura KYC.

Aggiungendo funzionalità di machine learning a questo fondamentale processo KYC entro della propria app web, Mitra Tokopedia è riuscita a migliorare l'esperienza utente riduzione di oltre il 20% degli errori di verifica. Inoltre, ha reso operativa risparmi sui costi riducendo le approvazioni manuali di quasi il 70%.

Sfida

La maggior parte dei dati KYC veniva rifiutata, con la creazione di migliaia di biglietti a settimana. al team operativo per la verifica manuale. Questo non solo ha causato un aumento costi operativi, ma anche un'esperienza utente negativa per i venditori, la procedura di verifica subisce ritardi. Il motivo principale del rifiuto era che I venditori non hanno caricato correttamente i selfie con carte d'identità. Mitra Tokopedia erano disponibili a risolvere questo problema in modo scalabile utilizzando le moderne funzionalità web.

Soluzione

Il team di Tokopedia ha deciso di utilizzare l'ML con TensorFlow.js per risolvere questo problema nel primo passaggio della procedura KYC, quando l'utente carica le immagini. Loro utilizzato MediaPipe e TensorFlow Raccolta di riconoscimento facciale per rilevare il volto del venditore con sei punti chiave quando il venditore carica l'ID di schede e selfie. L'output del modello viene quindi utilizzato per verificare criteri di accettazione. Se la verifica va a buon fine, le informazioni vengono inviate a e il backend. Se la verifica non va a buon fine, il venditore riceve un messaggio di errore. e un'opzione per riprovare. È stato utilizzato un approccio ibrido in cui il modello esegue l'inferenza sia sul dispositivo che sul lato server, a seconda del tipo specifiche. Un dispositivo di fascia inferiore eseguirà l'inferenza sul server.

L'utilizzo di un modello ML nelle prime fasi del processo KYC consente di:

  • Migliora il tasso di rifiuto nel processo KYC.
  • Avvisare gli utenti di un possibile rifiuto delle loro immagini, in base alla qualità valutati dal modello.

Perché scegliere il ML invece di altre soluzioni?

Il ML può automatizzare le attività ripetitive che altrimenti dispendono in termini di tempo o non è attuabile da fare manualmente. Nel caso di Tokopedia, ottimizzare l'attuale asset non ML soluzione non poteva produrre risultati significativi, mentre una soluzione ML ridurre in modo significativo il carico sul team Operations che doveva elaborare manualmente migliaia di approvazioni settimanali. Con una soluzione ML, è possibile eseguire il controllo delle immagini quasi immediatamente, offrendo una migliore esperienza utente e migliorando il funzionamento efficienza operativa. Scopri di più su inquadratura del problema per determinare se il ML è una soluzione adatta al tuo problema.

Considerazioni per la scelta del modello

Nella scelta del modello ML sono stati presi in considerazione i seguenti fattori.

Costo

Hanno valutato il costo complessivo di utilizzo del modello. Poiché TensorFlow.js è un file un pacchetto open source ben gestito da Google, che risparmiamo sulle licenze costi di manutenzione. Un'ulteriore considerazione è il costo di inferenza. Essere eseguire l'inferenza sul lato client risparmia molti soldi rispetto sul lato server con GPU costose, soprattutto se i dati risulta non valida e inutilizzabile.

Scalabilità

Hanno considerato la scalabilità del modello e della tecnologia. Può gestire la crescita dei dati e della complessità del modello man mano che il nostro progetto si evolve? Può essere per soddisfare altri progetti o casi d'uso? L'elaborazione su dispositivo perché il modello può essere ospitato su una rete CDN e distribuito sul lato client, offrendo un'elevata scalabilità.

Prestazioni

Ha considerato le dimensioni della libreria (in kB) e la latenza del runtime e il processo di sviluppo. La maggior parte della base utenti di Mitra Tokopedia ha dispositivi di fascia media e bassa con velocità e connettività internet moderate. Di conseguenza, il rendimento in termini il download e il runtime (ovvero la velocità con cui il modello può produrre un output) sono per soddisfare le loro esigenze specifiche e garantire un'esperienza utente ottimale.

Altre considerazioni

Conformità normativa:doveva assicurarsi che la raccolta scelta rispettasse le le normative pertinenti in materia di privacy e protezione dei dati.

Competenze: hanno valutato le competenze e le competenze del proprio team. Un po' di ML framework e librerie possono richiedere linguaggi di programmazione o competenze specifiche in una determinata area. Considerando questi fattori, ha deciso di informarsi decisione al momento di scegliere il modello giusto per il proprio progetto di machine learning.

Tecnologia scelta

TensorFlow.js ha soddisfatto le sue esigenze, dopo aver preso in considerazione questi fattori. Può essere eseguito completamente sul dispositivo usando il backend WebGL la GPU del dispositivo. L'esecuzione di un modello sul dispositivo consente un feedback più rapido all'utente grazie alla latenza ridotta del server e riduce i costi di elaborazione del server. Letto sull'ML on-device nell'articolo Vantaggi e limiti del machine learning on-device.

"TensorFlow.js è una libreria di machine learning open source di Google che Sviluppatori JavaScript in grado di eseguire il lato client nel browser. È la l'opzione più matura per Web AI con WebGL, WebAssembly e WebGPU completi per operatori di backend utilizzabili all'interno del browser con rendimento."Come Adobe ha utilizzato Web ML con TensorFlow.js per migliorare Photoshop per il Web

Implementazione tecnica

Mitra Tokopedia ha utilizzato MediaPipe e TensorFlow Raccolta di riconoscimento facciale, un pacchetto che fornisce modelli per eseguire il rilevamento dei volti in tempo reale. In particolare, MediaPipeFaceDetector-TFJS fornito in questa libreria, che implementa il runtime tfjs per questa soluzione.

Prima di approfondire l'implementazione, fai un breve riepilogo di MediaPipe. MediaPipe consente di creare ed eseguire il deployment soluzioni di ML on-device per dispositivi mobili (Android, iOS), web, desktop, dispositivi periferici e IoT.

Esistono 14 diverse soluzioni offerto da MediaPipe al momento della stesura di questo post. Puoi utilizzare uno dei seguenti Tempo di esecuzione: mediapipe o tfjs. Il runtime tfjs è stato creato con JavaScript fornisce un pacchetto JavaScript che può essere scaricato esternamente dal web un'applicazione. È diverso da un runtime mediapipe, che è creato con C++ e compilato in un modulo WebAssembly. Le differenze principali sono prestazioni, il debug e il raggruppamento. Il pacchetto JavaScript può essere abbinato a come webpack. Al contrario, il modulo Wasm è una piattaforma più grande e separata risorsa binaria (che viene mitigata perché non è una dipendenza dal tempo di caricamento) richiede un'altra Flusso di lavoro Debug originale. Tuttavia, ma è ancora più veloce per soddisfare i requisiti tecnici e di prestazioni.

Diagramma del funzionamento dei modelli MediaPipe e TensorFlow per i diversi runtime, utilizzando FaceDetection come esempio.
Un'illustrazione generale del funzionamento dei modelli MediaPipe e TensorFlow per i diversi runtime, usando FaceDetection come esempio

Tornando all'implementazione di Tokopedia, il primo passaggio consiste nell'inizializzare modello di machine learning come segue. Quando l'utente carica una foto, viene superato un HTMLImageElement come input al rilevatore.

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

Il risultato dell'elenco dei volti contiene volti rilevati per ogni volto nell'immagine. Se il modello non riesce a rilevare nessun volto, l'elenco sarà vuoto. Per ogni volto, contiene un riquadro di delimitazione del volto rilevato, oltre a una un array di sei punti chiave per il volto rilevato. Sono incluse funzionalità come occhi, naso e bocca. Ogni punto chiave contiene x e y, oltre a un nome.

[
  {
    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 rappresenta il riquadro di delimitazione della faccia nello spazio dei pixel dell'immagine, con xMin, xMax che indicano i limiti x, yMin, yMax che indicano i limiti y e Le dimensioni del riquadro di delimitazione sono width e height. Per keypoints, x e y rappresentano la posizione effettiva del punto chiave nell'immagine. pixel di spazio. name fornisce un'etichetta per il punto chiave, che sono 'rightEye', 'leftEye', Rispettivamente 'noseTip', 'mouthCenter', 'rightEarTragion' e 'leftEarTragion'. Come menzionato all'inizio di questo post, il venditore deve caricare il suo Carta di identità e un selfie con il documento di identità per completare la procedura del venditore verifica. L'output del modello viene quindi utilizzato per verificare rispetto ai criteri di accettazione, ovvero che una corrispondenza dei sei punti chiave menzionati in precedenza sia considerata valida Carta d'identità e selfie.

Se la verifica va a buon fine, le informazioni pertinenti sul venditore vengono trasmesse al di un backend cloud. Se la verifica non va a buon fine, il venditore riceve un messaggio di errore e per riprovare. Non verrà inviata alcuna informazione al backend.

Diagramma della pagina KYC Mitra, del modello TensorFlow.js e del server che interagiscono tra loro.
Interazione tra la pagina KYC Mitra, il modello TensorFlow.js e il server

Considerazioni sulle prestazioni per i dispositivi di fascia bassa

Questo pacchetto è di soli 24,8 KB (minimizzato e compresso con gzip), che non influire notevolmente sui tempi di download. Tuttavia, per i dispositivi di fascia molto bassa, l'elaborazione del runtime richiede molto tempo. È stata aggiunta un'ulteriore logica per verificare RAM e CPU del dispositivo prima di passare le due immagini al volto del machine learning di rilevamento del traffico.

Se il dispositivo ha più di 4 GB di RAM e una connessione di rete superiore a 4G, e una CPU con più di 6 core, le immagini vengono passate al modello on-device per la verifica del volto. Se questi requisiti non vengono soddisfatti, la funzionalità il modello viene ignorato e le immagini vengono inviate direttamente al server per la verifica che adotta un approccio ibrido per soddisfare le esigenze di questi dispositivi meno recenti. Con il tempo, sempre di più i dispositivi potranno trasferire le risorse di calcolo dal server mentre l'hardware continua per evolversi.

Impatto

Grazie all'integrazione ML, Tokopedia è stata in grado di risolvere tasso di rifiuto e ha riscontrato i seguenti risultati:

  • Il tasso di rifiuto è diminuito di oltre il 20%.
  • Il numero di approvazioni manuali è diminuito di quasi il 70%.

Questo non solo ha creato un'esperienza utente più fluida per i venditori, ma ha anche ridotto i costi operativi per il team di Tokopedia.

Conclusione

Nel complesso, i risultati di questo case study hanno dimostrato che, per i casi d'uso giusti, Le soluzioni di ML on-device sul web possono essere preziose per migliorare esperienza ed efficacia delle funzionalità, oltre a creare risparmi sui costi vantaggi aziendali.

Prova personalmente la funzionalità di riconoscimento facciale di MediaPipe utilizzando il MediaPipe Studio e l'esempio di codice Rilevamento dei volti di MediaPipe per il web.

Se ti interessa estendere le funzionalità della tua applicazione web con ML on-device, consulta le seguenti risorse: