Tokopedia, Endonezya'nın en büyük e-ticaret pazar yerlerinden birine sahip bir teknoloji şirketidir. Platformunda 40'tan fazla dijital ürün ve 14 milyondan fazla kayıtlı satıcı barındırmaktadır.
Tokopedia'nın iş sektörlerinden biri olan Mitra Tokopedia, küçük işletme sahiplerinin kredi ve oyun kuponları, veri paketleri, elektrik jetonları, ulusal sağlık faturaları gibi dijital ürünleri satmasına yardımcı olan bir web uygulamasıdır. Web sitesi, 700'den fazla şehirdeki Mitra Tokopedia satıcıları için birincil kanallardan biri olduğundan sorunsuz bir kullanıcı deneyimi sunmak çok önemlidir.
Oryantasyon sürecinin önemli bir adımı, bu satıcıların kimliklerini doğrulamasıdır. Satıcının, doğrulama işlemini tamamlamak için resmi kimliğinin yanı sıra kimliğin bulunduğu bir selfie'yi yüklemesi gerekir. Buna Müşterinizi Tanıyın (MT) süreci denir.
Mitra Tokopedia, web uygulamasındaki bu kritik kimlik doğrulama sürecine makine öğrenimi özellikleri ekleyerek doğrulama hatalarında% 20'den fazla azalma sağlayarak daha iyi bir kullanıcı deneyimi elde etti. Ayrıca manuel onayları yaklaşık %70 azaltarak operasyonel maliyet tasarrufu da sağladılar.
Zorluk
KYC verilerinin çoğu reddedildiğinden, manuel doğrulama için operasyon ekibine haftada binlerce destek kaydı oluşturuluyordu. Bu durum, hem yüksek işletme maliyetlerine hem de doğrulama süreci geciken satıcılar için kötü bir kullanıcı deneyimine neden oldu. Reddedilme nedenlerinden en önemlisi, satıcıların kimlik kartlarıyla çekilen selfie'leri doğru şekilde yüklememeleridir. Mitra Tokopedia, bu sorunu modern web özelliklerini kullanarak ölçeklenebilir bir şekilde çözmek istiyordu.
Çözüm
Tokopedia'daki ekip, KYC sürecinin ilk adımında (kullanıcı resimleri yüklediğinde) bu sorunu çözmek için TensorFlow.js ile makine öğrenimini kullanmaya karar verdi. Satıcı kimlik kartını ve selfie resimlerini yüklediğinde satıcının yüzünü altı önemli noktayla algılamak için MediaPipe ve TensorFlow'un Yüz Algılama kitaplığını kullandılar. Ardından, modelin çıkışı, kabul ölçütlerine göre kontrol etmek için kullanılır. Doğrulama başarıyla tamamlandıktan sonra bilgiler arka uca gönderilir. Doğrulama başarısız olursa satıcıya bir hata mesajı ve yeniden deneme seçeneği sunulur. Modelin, telefonun özelliklerine bağlı olarak çıkarım işlemini cihaz üzerinde veya sunucu tarafında gerçekleştirdiği karma bir yaklaşım kullanıldı. Düşük kaliteli bir cihaz, çıkarım işlemini sunucuda gerçekleştirir.
MT sürecinin başlarında bir makine öğrenimi modeli kullanmak, aşağıdakileri yapmalarına olanak tanır:
- KYC sürecindeki ret oranını iyileştirin.
- Modelin değerlendirdiği kaliteye bağlı olarak, kullanıcıları görüntülerinin olası reddedilmesi konusunda uyarır.
Diğer çözümler yerine neden makine öğrenimini tercih etmelisiniz?
Makine öğrenimi, manuel olarak yapılması zaman alan veya pratik olmayan tekrarlanan görevleri otomatikleştirebilir. Tokopedia'nın durumunda, mevcut makine öğrenimi içermeyen çözümün optimize edilmesi önemli sonuçlar veremezken makine öğrenimi çözümü, haftada binlerce onayı manuel olarak işlemesi gereken operasyon ekibinin üzerindeki yükü önemli ölçüde azaltabilirdi. Makine öğrenimi çözümü sayesinde resim kontrolleri neredeyse anında yapılabilir. Bu da daha iyi bir kullanıcı deneyimi ve operasyonel verimlilik sağlar. Makine öğreniminin sorununuza uygun bir çözüm olup olmadığını belirlemek için sorun çerçeveleme hakkında daha fazla bilgi edinin.
Model seçerken dikkat edilmesi gerekenler
ML modeli seçilirken aşağıdaki faktörler dikkate alındı.
Maliyet
Modeli kullanmanın toplam maliyetini değerlendirdiler. TensorFlow.js, Google tarafından iyi yönetilen açık kaynak bir paket olduğundan lisanslama ve bakım maliyetlerinden tasarruf ediyoruz. Ayrıca çıkarım maliyeti de dikkate alınmalıdır. İstemci tarafında çıkarım çalıştırabilmek, pahalı GPU'larla sunucu tarafında işlemeye kıyasla önemli ölçüde para tasarrufu sağlar. Özellikle de veriler geçersiz ve kullanılamaz hale gelirse.
Ölçeklenebilirlik
Modelin ve teknolojinin ölçeklenebilirliği de dikkate alındı. Projemiz geliştikçe veri ve model karmaşıklığındaki artışı kaldırabilir mi? Diğer projelere veya kullanım alanlarına hitap edecek şekilde genişletilebilir mi? Cihaz üzerinde işleme, modelin bir CDN'de barındırılabilmesi ve çok ölçeklenebilir olan istemci tarafına dağıtılabilmesi nedeniyle faydalıdır.
Performans
Kütüphanenin boyutunu (KB cinsinden) ve çalışma zamanı sürecinin gecikmesini dikkate aldılar. Mitra Tokopedia'nın kullanıcı tabanının büyük çoğunluğu, orta ve düşük seviyeli cihazlara sahip olup internet hızları ve bağlantıları orta düzeydedir. Bu nedenle, indirme ve çalışma süresi (ör. modelin ne kadar hızlı çıktı üretebileceği) açısından performans, belirli ihtiyaçlarını karşılamak ve mükemmel bir kullanıcı deneyimi sağlamak için birinci önceliktir.
Dikkat edilmesi gereken diğer noktalar
Yasal düzenlemelere uygunluk: Seçilen kitaplığın ilgili veri koruma ve gizlilik yönetmeliklerine uyduğundan emin olmaları gerekiyordu.
Beceri seti: Ekiplerinin uzmanlığını ve beceri setini değerlendirdiler. Bazı yapay zeka çerçeveleri ve kitaplıkları, belirli bir programlama dili veya belirli bir alanda uzmanlık gerektirebilir. Bu faktörleri göz önünde bulundurarak makine öğrenimi projeleri için doğru modeli seçerken bilinçli bir karar verdiler.
Teknoloji seçildi
TensorFlow.js, bu faktörleri göz önünde bulundurarak ihtiyaçlarını karşıladı. Cihazın GPU'sunu kullanmak için WebGL arka ucunu kullanarak tamamen cihaz üzerinde çalışabilir. Bir modeli cihaz üzerinde çalıştırmak, sunucu gecikmesinin azalmasıyla kullanıcıya daha hızlı geri bildirim sağlar ve sunucu bilgi işlem maliyetini düşürür. Cihaz üzerinde makine öğreniminin avantajları ve sınırlamaları başlıklı makalede cihaz üzerinde makine öğrenimi hakkında daha fazla bilgi edinin.
"TensorFlow.js, Google'ın JavaScript geliştiricilerine yönelik, tarayıcıda istemci tarafında çalışabilen açık kaynak bir makine öğrenimi kitaplığıdır. Tarayıcıda hızlı performansla kullanılabilen kapsamlı WebGL, WebAssembly ve WebGPU arka uç operatör desteğiyle Web AI için en gelişmiş seçenektir."—Adobe, web için Photoshop'u geliştirmek üzere TensorFlow.js ile Web ML'yi nasıl kullandı?
Teknik uygulama
Mitra Tokopedia, MediaPipe ve TensorFlow'un gerçek zamanlı yüz algılama modeli çalıştırmak için modeller sunan Yüz Algılama kitaplığından yararlandı.
Özellikle, bu kitaplıkta sağlanan ve tfjs
çalışma zamanını uygulayan MediaPipeFaceDetector-TFJS modeli bu çözüm için kullanıldı.
Uygulamaya geçmeden önce MediaPipe'in ne olduğunu kısaca özetleyin. MediaPipe mobil (Android, iOS), web, masaüstü, uç cihazlar ve IoT genelinde cihaz üzerinde makine öğrenimi çözümleri oluşturup dağıtmanıza olanak tanır.
Bu makalenin yazıldığı sırada MediaPipe tarafından sunulan 14 farklı çözüm vardır. mediapipe
veya tfjs
çalışma zamanı kullanabilirsiniz. tfjs
çalışma zamanı JavaScript ile oluşturulur ve web uygulaması tarafından harici olarak indirilebilen bir JavaScript paketi sağlar. Bu, C++ ile derlenen ve WebAssembly modülünde derlenen mediapipe
çalışma zamanından farklıdır. Temel farklılıklar performans, hata ayıklama
ve paketlemedir. JavaScript paketi, webpack gibi klasik paketleyicilerle paketlenebilir. Buna karşılık Wasm modülü daha büyük ve ayrı bir ikili kaynaktır (yükleme süresine bağımlılık olmaması nedeniyle bu azalma azalır) ve farklı bir Wasm hata ayıklama iş akışı gerektirir. Ancak teknik ve performans koşullarını karşılamaya yardımcı olmak için daha hızlı çalışır.
Tokopedia'nın uygulamasına dönecek olursak ilk adım, modeli aşağıdaki gibi başlatmaktır. Kullanıcı bir fotoğraf yüklediğinde, HTMLImageElement
algılayıcıya giriş olarak iletilir.
// 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);
Yüz listesinin sonucu, resimdeki her yüz için algılanan yüzleri içerir. Model herhangi bir yüz algılayamazsa liste boş olur. Her yüz için algılanan yüzün sınırlayıcı kutusunu ve algılanan yüz için altı önemli nokta dizisini içerir. Göz, burun ve ağız gibi özellikler bu kapsamda yer alır. Her bir önemli nokta, x ve y değerlerinin yanı sıra bir ad içerir.
[
{
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
, resmin piksel alanındaki yüzün sınırlayıcı kutusunu temsil eder. xMin
ve xMax
x sınırlarını, yMin
ve yMax
y sınırlarını, width
ve height
ise sınırlayıcı kutunun boyutlarını belirtir.
keypoints
için x
ve y
, resim piksel alanındaki gerçek önemli nokta konumunu temsil eder.
name
, anahtar nokta için bir etiket sağlar. Bu etiketler sırasıyla 'rightEye'
, 'leftEye'
, 'noseTip'
, 'mouthCenter'
, 'rightEarTragion'
ve 'leftEarTragion'
şeklindedir.
Bu gönderinin başında da belirtildiği gibi, satıcı doğrulamasını tamamlamak için satıcının kimliğini ve kimliğin yer aldığı bir selfie yüklemesi gerekir.
Ardından, modelin çıkışı kabul ölçütlerine göre kontrol edilir. Yani, geçerli bir kimlik kartı ve selfie resmi olarak kabul edilmek için daha önce belirtilen altı kilit noktanın eşleşmesi gerekir.
Doğrulama başarıyla tamamlandıktan sonra ilgili satıcı bilgileri arka uca iletilir. Doğrulama başarısız olursa satıcıya bir hata mesajı ve yeniden deneme seçeneği gösterilir. Arka uçta hiçbir bilgi gönderilmez.
Eski teknolojiye sahip cihazlar için performansla ilgili dikkat edilmesi gereken noktalar
Bu paketin boyutu yalnızca 24,8 KB'tır (küçültülmüş ve gzip ile sıkıştırılmış). Bu durum, indirme süresini önemli ölçüde etkilemez. Ancak çok düşük özellikli cihazlarda çalışma zamanında işleme uzun sürer. İki resim, makine öğrenimi yüz algılama modeline iletilmeden önce Cihaz RAM'i ve CPU'yu kontrol etmek için ek mantık eklendi.
Cihazda 4 GB'tan fazla RAM, 4G'den fazla ağ bağlantısı ve 6'dan fazla çekirdekli CPU varsa resimler, yüz doğrulaması için cihaz üzerindeki modele aktarılır. Bu şartlar karşılanmazsa cihaz üzerindeki model atlanır ve resimler, bu eski cihazlara uyum sağlamak için karma bir yaklaşım kullanılarak doğrulama için doğrudan sunucuya gönderilir. Donanım geliştikçe zaman içinde daha fazla cihaz, sunucudan bilgi işlem yükünü kaldırabilecek.
Etki
Tokopedia, makine öğrenimi entegrasyonu sayesinde yüksek reddetme oranını başarıyla çözebildi ve aşağıdaki sonuçları elde etti:
- Ret oranı %20'den fazla düştü.
- Manuel onay sayısı neredeyse %70 oranında azaldı.
Bu hem satıcılar için daha sorunsuz bir kullanıcı deneyimi sunmakla kalmayıp hem de Tokopedia ekibinin operasyon maliyetini azalttı.
Sonuç
Genel olarak bu örnek çalışmanın sonuçları, web'deki cihaz üzerinde makine öğrenimi çözümlerinin doğru kullanım alanlarında kullanıcı deneyimini ve özelliklerin etkinliğini iyileştirmenin yanı sıra maliyet tasarrufu ve diğer işletme avantajları sağlamada değerli olabileceğini gösterdi.
MediaPipe Studio'yu ve web için MediaPipe Yüz Tanımlayıcı kod örneğini kullanarak MediaPipe Yüz Tanıma özelliğini kendiniz deneyin.
Cihaz üzerinde makine öğrenimi ile kendi web uygulamanızın özelliklerini genişletmek istiyorsanız aşağıdaki kaynaklara göz atın: