- Canva telah mencapai 200 juta MAU, memiliki lebih dari 30 miliar desain, dan membuat sekitar 300 desain baru setiap detik
- Mencari desain pengguna dan menemukan file yang dibagikan menjadi masalah yang semakin penting
- Dalam pencarian publik (web/pencarian produk), dataset dibangun berdasarkan kueri pengguna dan kumpulan tetap item pencarian
- Penilai profesional memberi label dengan menilai relevansi setiap kueri dan item
- Kinerja mesin pencari dievaluasi melalui metrik recall dan precision
- Dalam pencarian personal, demi melindungi privasi, desain pribadi tidak dapat ditinjau dan data pengguna tidak dapat digunakan sebagai dataset evaluasi
- Sebagai solusi, AI generatif seperti GPT-4o digunakan untuk membuat konten dan kueri yang realistis namun sepenuhnya sintetis
- Ini memberikan cara untuk mengevaluasi peningkatan pipeline pencarian tanpa sama sekali melanggar privasi
Kondisi sebelumnya: metode pengujian yang terbatas
- Proses pengujian sebelumnya
- Engineer menggunakan metode pengujian offline yang terbatas
- Mereka menjalankan kueri masalah yang sudah diketahui di akun Canva untuk membandingkan performa sebelum dan sesudah perubahan kode
- Contoh: saat mengerjakan peningkatan koreksi ejaan, mereka menguji kueri salah seperti
desgin
- Sebelum perubahan: tidak ada hasil
- Sesudah perubahan: dokumen terkait
design dikembalikan
- Perubahan yang lolos pengujian offline lanjut ke tahap pengujian online
- Menjalankan A/B test menggunakan framework eksperimen Canva
- Membandingkan tingkat keberhasilan pencarian antara pengguna yang mendapat perubahan dan pengguna dengan pencarian standar
- Keterbatasan
- Kurangnya validitas statistik dalam pengujian offline
- Kueri yang terbatas sulit mewakili beragam perilaku pencarian
- Potensi dampak negatif bagi pengguna
- Penurunan performa yang tidak terdeteksi dalam pengujian offline bisa terekspos ke eksperimen online
- Eksperimen online memakan waktu
- Dibutuhkan setidaknya beberapa hari hingga beberapa minggu untuk memastikan signifikansi statistik
- Ini membatasi jumlah eksperimen yang bisa dijalankan bersamaan dan kecepatan pengujian ide
Kondisi ideal: membangun dataset baru dan pipeline evaluasi
- Tujuan: dibutuhkan dataset dan pipeline evaluasi khusus agar engineer dapat menilai perubahan secara objektif sebelum lanjut ke pengujian online
- Persyaratan utama:
- Reproducibility: memberikan hasil yang sama kapan pun
- Iterasi cepat: engineer dapat dengan cepat menguji hasil setelah perubahan kode. Evaluasi bisa dilakukan segera tanpa harus menunggu deployment ke production
- Mirip dengan lingkungan production: memberikan hasil yang sesuai dengan perilaku production yang sebenarnya
- Pekerjaan yang tidak saling menghambat: anggota tim dapat bereksperimen dengan perubahan kode secara mandiri tanpa saling mengganggu
Membuat dataset yang realistis: memanfaatkan AI generatif
- Dataset evaluasi yang mematuhi privasi
- Menggunakan GPT-4o untuk membuat data sintetis yang dapat menggantikan data pengguna nyata
- Data dibuat realistis dengan mencerminkan distribusi statistik seperti panjang teks tanpa menyalin desain pengguna
- Pembuatan test case untuk evaluasi recall
- Menggunakan GPT-4o untuk membuat kueri dan konten yang sesuai berdasarkan topik dan tipe desain, seperti dokumen atau presentasi
- Menyesuaikan tingkat kesulitan kueri:
- menyertakan salah eja
- mengganti dengan sinonim
- merumuskan ulang kueri
- Pembuatan test case untuk evaluasi precision
- Membuat dataset yang mencakup desain relevan dan tidak relevan
- Cara membuat desain yang tidak relevan:
- hanya menyertakan sebagian keyword
- mengubahnya menjadi bentuk template desain atau draft
- menetapkannya sebagai desain lama
Masalah yang muncul saat menggunakan AI generatif
- Kelebihan dan keterbatasan LLM
- Kelebihan: dapat menghasilkan data teks dalam skala besar secara efisien
- Dataset evaluasi statis yang dihasilkan dapat digunakan berulang kali dan dengan cepat memberi hasil evaluasi yang konsisten serta deterministik
- Menghilangkan keterbatasan: setelah dataset dibuat, masalah latency dan randomness dari LLM tidak lagi berpengaruh
- Masalah
- Penolakan membuat judul panjang
- Diminta membuat judul sepanjang 12-15 kata, tetapi yang dikembalikan justru judul yang lebih pendek
- Contoh:
Exploring the Latest Advancements in Screen Technology and Applications (9 kata)
Best Practices for Teachers: Presentation Tips for Meet the Teacher (10 kata)
- Ini mungkin mencerminkan bahwa judul panjang memang jarang muncul dalam dokumen nyata
- Akibatnya, kriteria panjang judul pun ditinjau ulang
- Kesalahan pengulangan dan halusinasi
- Saat diminta membuat berbagai salah eja untuk suatu kata, model mengembalikan hasil yang duplikatif atau tidak realistis
- Contoh: saat diminta membuat variasi salah eja dari
Calendar, hasil yang muncul berulang
- Masalah dalam membuat judul tidak relevan
- Saat membuat judul desain yang tidak relevan, ada kasus ketika instruksi tidak diikuti dengan tepat
- Beberapa judul yang dikembalikan tidak memuat keyword yang ditentukan, atau bahkan sekadar berisi
title string, sehingga hasilnya tidak akurat
Menjalankan evaluasi: pengujian dan analisis di lingkungan lokal
- Pemanfaatan dataset evaluasi
- Dataset sintetis yang dihasilkan diterapkan ke pipeline pencarian untuk menghasilkan metrik evaluasi
- Setelah mengeksplorasi beberapa cara menjalankan, dipilih pendekatan eksekusi lokal berbasis Testcontainers
- Pipeline lokal berbasis Testcontainers
- Memanfaatkan dukungan Testcontainer yang sudah ada
- Dukungan Testcontainer sudah diimplementasikan pada arsitektur RPC berorientasi layanan Canva
- Pipeline dibangun dengan menggabungkan komponen eksternal seperti Elasticsearch dengan Testcontainer internal
- Reproduksi penuh konfigurasi production
- Pipeline pencarian dan model ML pendukung dijalankan secara lokal untuk membentuk lingkungan yang sama dengan production
- Engineer dapat bereksperimen dengan berbagai variasi model
- Proses penanganan test case
- Membuat state yang diperlukan untuk setiap test case
- Alih-alih membuat desain Canva, hanya data yang diperlukan untuk search index yang diekstrak dan dimasukkan
- Menjalankan pipeline pencarian lokal
- Menjalankan dataset bersama kueri pengujian untuk menghasilkan hasil pencarian
- Meneruskan hasil ke modul evaluasi
- Menghitung metrik recall dan precision
- Diagram aliran data
- Disediakan diagram yang menunjukkan secara visual seluruh aliran pemrosesan data melalui alat evaluasi
Memvisualisasikan hasil
- Pengembangan alat visualisasi
- Menggunakan alat kustom berbasis Streamlit agar hasil evaluasi dapat divisualisasikan dan dibandingkan secara efektif
- Engineer dapat membandingkan metrik recall dan precision antarberbagai konfigurasi dalam sekali lihat
- Fitur utama
- Perbandingan per konfigurasi
- Hasil diagregasi sehingga performa berbagai pengaturan dapat dibandingkan berdampingan
- Perincian performa berdasarkan tipe dan tingkat kesulitan kueri
- Memungkinkan analisis terpisah untuk tipe kueri tertentu atau tingkat kesulitan tertentu
- Debugging kueri individual
- Dengan memeriksa output tiap kueri, engineer dapat melakukan debugging secara presisi untuk use case tertentu
- Mendukung pengambilan keputusan cepat
- Setelah evaluasi selesai, alat dapat langsung dijalankan sehingga engineer bisa cepat mengambil keputusan berdasarkan hasil performa
- Engineer juga dapat mengulangi eksperimen dan perbaikan secara mandiri tanpa bergantung pada pekerjaan anggota tim lain
Dampak dan rencana ke depan
- Seberapa dekat dengan kondisi ideal?
- Dataset evaluasi dan alat yang dibuat memberikan reproducibility penuh dan menghasilkan hasil dalam hitungan menit
- Engineer dapat menilai hasil secara lokal, mandiri, dan objektif yang selaras dengan perilaku production
- Privasi dijaga sepenuhnya tanpa pernah melihat desain atau kueri pelanggan
- Ringkasan hasil
- Iterasi cepat
- Memproses lebih dari 1000 test case dalam waktu kurang dari 10 menit
- Memungkinkan lebih dari 300 evaluasi offline selama periode eksperimen online 2-3 hari
- Korelasi hasil offline-online
- Hasil evaluasi offline dirancang untuk menyaring ide yang tidak layak dan hanya membawa perubahan yang berpeluang berhasil ke eksperimen online
- Dilakukan beberapa eksperimen untuk memastikan sinkronisasi antara hasil offline dan online selama pengembangan
- Ditemukan konsistensi yang kuat baik untuk perubahan performa positif maupun negatif
- Kemampuan debugging lokal
- Mendukung debugging dengan mengamati aliran test case melalui setiap komponen pipeline pencarian
- Jauh lebih efisien dibanding metode debugging sebelumnya yang bergantung pada log production
- Rencana ke depan
- Perluasan dataset
- Menambahkan fitur yang lebih realistis seperti graph kolaborasi
- Peningkatan alat
- Memperkuat tooling agar engineer dapat membuat data sintetis kustom sesuai kebutuhan
- Memaksimalkan pemanfaatan AI generatif
- Tetap melanjutkan tujuan mengembangkan alat pencarian Canva menjadi pengalaman terbaik bagi komunitas dengan memanfaatkan kemungkinan yang ditawarkan data sintetis
Belum ada komentar.