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 biridir. Bu nedenle, sorunsuz bir kullanıcı deneyimi sağlamak çok önemlidir.
İlk katılım sürecindeki önemli bir adım, bu satıcıların kimliklerini doğrulamasını gerektirir. Satıcı doğrulamasını tamamlamak için satıcının ulusal kimliğini ve kimliğin yer aldığı bir selfie 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 oranında azaltarak operasyonel maliyetlerde tasarruf sağladı.
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 nedeninin 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ı ve selfie resimlerini yüklediğinde satıcının yüzünü altı temel noktayla tespit etmek 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ığında 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.
- Kullanıcıları, model tarafından değerlendirilen kaliteye bağlı olarak resimlerinin reddedilebileceği konusunda uyarın.
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. ML'nin 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, özellikle verilerin geçersiz ve kullanılamaz olduğu durumlarda, sunucu tarafında pahalı GPU'larla işlemeye kıyasla çok fazla para tasarrufu sağlar.
Ölçeklenebilirlik
Modelin ve teknolojinin ölçeklenebilirliğini dikkate aldılar. 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 kısmı, 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.
Seçilen teknoloji
TensorFlow.js, bu faktörler göz önünde bulundurularak 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 azaltı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. Web'de yapay zeka için en gelişmiş seçenektir. WebGL, WebAssembly ve WebGPU arka uç operatör desteğine sahiptir ve tarayıcıda hızlı performansla kullanılabilir." —Adobe, Photoshop'u web için geliştirmek amacıyla TensorFlow.js ile Web ML'yi nasıl kullandı?
Teknik uygulama
Mitra Tokopedia, MediaPipe ve TensorFlow'un gerçek zamanlı yüz algılama için modeller sağlayan bir paket olan Yüz Algılama kitaplığını kullandı.
Ö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ğuna dair kısa bir özet verelim. MediaPipe, mobil (Android, iOS), web, masaüstü, uç cihazlar ve IoT'ta cihaz üzerinde yapay zeka çözümleri oluşturmanıza ve 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 oluşturulan ve WebAssembly modülüne 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 zamanındaki bağımlılık olmamasıyla azaltılı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 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çütleriyle karşılaştırılır. 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 uçta 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.
Düşük özellikli cihazlarla ilgili performans hususları
Bu paket yalnızca 24,8 KB'tır (küçültülmüş ve sıkıştırılmış) ve indirme süresini önemli ölçüde etkilemez. Ancak çok düşük özellikli cihazlarda çalışma zamanında işleme uzun sürer. İki resmi makine öğrenimi yüz algılama modeline aktarmadan önce cihazın RAM'ini ve CPU'sunu kontrol etmek için ek mantık eklendi.
Cihazda 4 GB'tan fazla RAM, 4G'den yüksek hızda bir ağ bağlantısı ve 6'dan fazla çekirdekli bir CPU varsa yüz doğrulaması için resimler cihaz üzerindeki modele iletilir. Bu koşullar karşılanmıyorsa cihaz üzerindeki model atlanır ve resimler, bu eski cihazlara hitap etmek 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ırabilecektir.
Etki
Tokopedia, yapay zeka entegrasyonu sayesinde yüksek ret 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, satıcılar için daha sorunsuz bir kullanıcı deneyimi oluşturmanın yanı sıra Tokopedia ekibinin operasyon maliyetini de düşürdü.
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 Algılama ö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: