Tokopedia to indonezyjska firma technologiczna To jedna z największych platform e-commerce, która obsługuje ponad 40 produktów cyfrowych i ponad 14 milionów zarejestrowanych sprzedawców.
Mitra Tokopedia, część firmy Tokopedia różnych branż to aplikacja internetowa, która pomaga właścicielom małych firm w sprzedaży produkty cyfrowe, takie jak kupony kredytowe i do gier, pakiety danych, elektryczność; tokeny, krajowe rachunki zdrowotne i inne. Witryna jest jedną z głównych w ponad 700 miastach. dla wygody użytkowników.
Kluczowym etapem procesu wdrażania wymaga od sprzedawców potwierdzenia, tożsamości. Sprzedawca musi przesłać swój dokument tożsamości, a także selfie Identyfikator jest potrzebny do ukończenia weryfikacji sprzedawcy. Jest to tzw. proces „Poznaj swojego klienta”.
Przez dodanie funkcji uczenia maszynowego do tego kluczowego procesu PSK firmie Mitra Tokopedia poprawiła wrażenia użytkowników dzięki o ponad 20% mniej błędów weryfikacji. Rozpoczęły też operacje operacyjne oszczędności dzięki zmniejszeniu kosztów ręcznego zatwierdzania o prawie 70%.
Wyzwanie
Większość danych PSK była odrzucana, co spowodowało utworzenie tysięcy zgłoszeń tygodniowo zespołowi ds. operacji w celu ręcznej weryfikacji. Wpłynęło to nie tylko na dużą kosztów operacyjnych, ale także pogorszyły wrażenia użytkowników sprzedających, proces weryfikacji może się opóźnić. Największym powodem odrzucenia było to, sprzedawcy nie przesłali poprawnie selfie z dowodem tożsamości. Mitra Tokopedia pragną rozwiązać ten problem na dużą skalę przy użyciu nowoczesnych funkcji sieciowych.
Rozwiązanie
Aby rozwiązać ten problem, zespół Tokopedii zdecydował się wykorzystać ML z TensorFlow.js. na pierwszym etapie procesu PSK, czyli na etapie przesyłania zdjęć przez użytkownika. Ta za pomocą rozwiązań MediaPipe i TensorFlow Biblioteka wykrywania twarzy do wykrywania twarzy sprzedawcy za pomocą 6 kluczowych punktów, gdy sprzedawca przesyła identyfikator kart i zdjęć selfie. Dane wyjściowe modelu są następnie używane do sprawdzenia, kryteria akceptacji. Po pomyślnej weryfikacji informacje są wysyłane do z backendem. Jeśli weryfikacja się nie powiedzie, sprzedawca zobaczy komunikat o błędzie i ponowić próbę. Zastosowano podejście hybrydowe, w którym model po stronie urządzenia lub serwera, w zależności od tego, specyfikacji. Niższe urządzenie będzie przeprowadzać wnioskowanie na serwerze.
Zastosowanie modelu ML na wczesnym etapie procesu PSK umożliwia:
- Zwiększ współczynnik odrzuceń w procesie PSK.
- Ostrzegaj użytkowników o możliwym odrzuceniu ich obrazów na podstawie jakości który jest oceniony przez model.
Dlaczego warto wybrać ML, a nie inne rozwiązania?
Systemy uczące się mogą automatyzować powtarzalne zadania, które są czasochłonne lub niepraktyczne. W przypadku Tokopedii nie może przynieść istotnych wyników, a rozwiązanie ML znacznie zmniejszyć obciążenie zespołu operacyjnego, który musiał ręcznie przetwarzać tysiące zatwierdzeń tygodniowo. Dzięki rozwiązaniom ML można sprawdzać obraz niemal natychmiast, co poprawia wrażenia użytkowników i usprawnia działanie efektywność. Więcej informacji o kadrowanie problemu aby określić, czy systemy uczące się są odpowiednim rozwiązaniem w przypadku Twojego problemu.
Uwagi na temat wyboru modelu
Podczas wyboru modelu ML braliśmy pod uwagę te czynniki.
Koszt
Określili całkowity koszt korzystania z tego modelu. TensorFlow.js to dobrze utrzymywany przez Google pakiet open source. Oszczędności nie wymagają dużych nakładów kosztów utrzymania. Dodatkową kwestią jest koszt wnioskowania. Bycie takie wnioskowanie po stronie klienta pozwala zaoszczędzić sporo pieniędzy w porównaniu do jej przetwarzania po stronie serwera za pomocą drogich układów GPU, zwłaszcza jeśli dane są nieprawidłowe i bezużyteczne.
Skalowalność
Wzięła ona pod uwagę skalowalność modelu i technologii. Czy jest w stanie aby dostosować się do rosnących ilości danych i złożoności modeli w miarę rozwoju naszego projektu? Czy to będzie możliwe? i rozszerzone na inne projekty lub przypadki użycia? Przetwarzanie na urządzeniu pomaga ponieważ model może być hostowany w sieci CDN i wyświetlany po stronie klienta, jest bardzo skalowalny.
Wyniki
Uwzględniał rozmiar biblioteki (w KB) i opóźnienie środowiska wykonawczego proces tworzenia konta. Większość użytkowników witryny Mitra Tokopedia korzysta ze średniej i niskiej klasy. mają umiarkowaną szybkość i łączność. Dlatego też wydajność w kontekście pobieranie i czas wykonywania (tj. szybkość, z jaką model może generować dane wyjściowe) jest najczęstszą aby dostosować je do konkretnych potrzeb i zadbać o wygodę użytkowników.
Inne uwagi
Zgodność z przepisami: zespół musiał upewnić się, że wybrana biblioteka jest zgodna z zasadami. odpowiednich przepisów dotyczących ochrony danych i prywatności.
Zestaw umiejętności: oceniono wiedzę i zestaw umiejętności swojego zespołu. Niektóre systemy uczące się platformy i biblioteki mogą wymagać określonych języków programowania lub doświadczenia w konkretnym obszarze. Biorąc pod uwagę te czynniki, firma podjęła świadome decyzje podejmują decyzję o wyborze odpowiedniego modelu dla swojego projektu.
Wybrana technologia
Biblioteka TensorFlow.js spełniała ich potrzeby, tych czynników. Może działać w pełni na urządzeniu za pomocą backendu WebGL, korzystać z GPU urządzenia. Uruchamianie modelu na urządzeniu umożliwia szybsze przekazywanie informacji użytkownikom ze względu na krótszy czas oczekiwania na serwer i obniżenie kosztów jego mocy obliczeniowej. Odczytano Więcej informacji o uczeniu maszynowym na urządzeniu znajdziesz w artykule Zalety i ograniczenia ML na urządzeniu
„TensorFlow.js to biblioteka systemów uczących się typu open source od Google przeznaczona dla Programiści JavaScript, którzy potrafią uruchomić aplikację po stronie klienta w przeglądarce. Jest najbardziej dopracowana opcja w obszarze Web AI, wykorzystująca kompleksowe rozwiązania WebGL, WebAssembly i WebGPU obsługi operatora backendu. Można z niej korzystać w przeglądarce wydajności” – jak firma Adobe wykorzystała Web ML z TensorFlow.js do ulepszenia Photoshopa w przeglądarce.
Implementacja techniczna
Mitra Tokopedia użyła narzędzi MediaPipe i TensorFlow
bibliotekę wykrywania twarzy,
pakietu, który zawiera modele do wykrywania twarzy w czasie rzeczywistym.
Mówiąc konkretnie,
MediaPipeFaceDetector-TFJS
model dostępny w tej bibliotece, który implementuje środowisko wykonawcze tfjs
używane do
i poznam nowe rozwiązanie.
Zanim zagłębimy się w implementację, krótko podsumujmy, czym jest MediaPipe. MediaPipe umożliwia kompilowanie i wdrażanie rozwiązań ML na urządzeniu w przypadku urządzeń mobilnych (Android, iOS), przeglądarek, komputerów, urządzeń brzegowych i IoT.
Istnieją
14 różnych rozwiązań
oferowane przez MediaPipe w momencie pisania tego posta. Możesz użyć zarówno
Środowisko wykonawcze mediapipe
lub tfjs
. Środowisko wykonawcze tfjs
zostało utworzone w języku JavaScript
udostępnia pakiet JavaScript, który można pobrać z internetu
aplikacji. Różni się ono od środowiska wykonawczego mediapipe
, które obejmuje
C++ w formie modułu WebAssembly. Główne różnice to wydajność,
debugowanie i grupowanie. Pakiet JavaScript można połączyć w pakiet z klasyczną wersją
np. Webpack. Moduł Wasm jest natomiast większy i oddzielny.
zasób binarny (który ogranicza się, że nie jest zależnością czasu wczytywania),
wymaga innego
Proces debugowania Wasm. Pamiętaj jednak:
Działa szybciej, więc spełnia wymagania techniczne i wydajne.
Wróćmy do implementacji Tokopedii. Pierwszym krokiem jest zainicjowanie
w następujący sposób. Gdy użytkownik przesyła zdjęcie, przekazywane jest HTMLImageElement
jako dane wejściowe dla wzorca.
// 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);
Wynik listy twarzy zawiera wykryte twarze dla każdej twarzy na zdjęciu. Jeśli model nie może wykryć żadnych twarzy, lista będzie pusta. Dla każdej ściany zawiera ramkę ograniczającą wykryte twarze, a także tablica 6 punktów kluczowych dla wykrytej twarzy. Obejmuje to takie funkcje jak: oczu, nosa i ust. Każdy klucz zawiera znaki x i y oraz nazwę.
[
{
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 },
...
],
}
]
Element box
reprezentuje ramkę ograniczającą ścianę w przestrzeni piksela obrazu, przy czym
xMin
, xMax
wyznaczające granice x, yMin
, yMax
oznaczające granice y oraz
width
i height
to wymiary ramki ograniczającej.
keypoints
, x
i y
odzwierciedlają faktyczną pozycję kluczowego punktu na obrazie
pikselową przestrzeń.
Element name
zawiera etykietę punktu kluczowego, czyli 'rightEye'
, 'leftEye'
,
'noseTip'
, 'mouthCenter'
, 'rightEarTragion'
i 'leftEarTragion'
.
Jak wspomniano na początku tego posta, sprzedawca musi przesłać swoje dane
dowód osobisty i selfie z dokumentem tożsamości, aby dokończyć transakcję.
weryfikacji.
Następnie dane wyjściowe modelu są używane do sprawdzenia, czy spełniają kryteria akceptacji, czyli
zestaw 6 wymienionych wcześniej kluczowych punktów
zostanie uznany za prawidłowy
Dowód osobisty i zdjęcie selfie.
Po pomyślnej weryfikacji odpowiednie informacje o sprzedawcy są przekazywane z backendem. Jeśli weryfikacja się nie powiedzie, sprzedawca otrzyma komunikat o niepowodzeniu, a następnie i spróbuj jeszcze raz. Żadne informacje nie będą wysyłane do backendu.
Uwagi dotyczące wydajności w przypadku słabszych urządzeń
Rozmiar tego pakietu to tylko 24,8 KB (zminifikowany i skompresowany do pliku gzip), co nie będzie możliwe znacznie wpływa na czas pobierania. Jednak w przypadku bardzo mało zaawansowanych urządzeń jest bardzo ważne. Dodaliśmy dodatkową funkcję logiczną, która sprawdza, czy: Ilość pamięci RAM i procesora urządzenia przed przekazaniem 2 obrazów do tarczy systemów uczących się model wykrywania.
Jeśli urządzenie ma więcej niż 4 GB pamięci RAM, połączenie sieciowe większe niż 4G i procesora z więcej niż 6 rdzeniami, obrazy są przesyłane do modelu urządzenia weryfikacji twarzy. Jeśli te wymagania nie są spełnione, system na urządzeniu model jest pomijany, a obrazy są wysyłane bezpośrednio do serwera w celu weryfikacji korzystając z podejścia hybrydowego, aby dostosować się do starszych urządzeń. Z czasem coraz więcej urządzenia będą mogły pobierać moc obliczeniową z serwera, ponieważ sprzęt nadal ewoluować.
Wpływ
Dzięki integracji z systemami uczącymi się Tokopedia z powodzeniem odsetek odrzuceń i widzi te wyniki:
- Współczynnik odrzuceń spadł o ponad 20%.
- Liczba ręcznych zatwierdzeń spadła o prawie 70%.
Nie tylko poprawiło to wrażenia sprzedawców, lecz także ograniczyło kosztów operacyjnych zespołu Tokopedia.
Podsumowanie
Ogólnie wyniki tego studium przypadku pokazują, że w odpowiednich przypadkach użycia rozwiązania ML na urządzeniu w internecie mogą być cenne dla poprawy i skuteczności funkcji, a także oszczędności finansowe, innych korzyści biznesowych.
Wypróbuj funkcję wykrywania twarzy MediaPipe za pomocą MediaPipe Studio oraz przykładowy kod Aplikacja MediaPipe do wykrywania twarzy w przeglądarce
Jeśli chcesz rozszerzyć możliwości swojej aplikacji internetowej za pomocą na urządzeniu ML, zapoznaj się z tymi materiałami: