9 poin oleh xguru 2024-12-02 | Belum ada komentar. | Bagikan ke WhatsApp
  • 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
    1. Membuat state yang diperlukan untuk setiap test case
    • Alih-alih membuat desain Canva, hanya data yang diperlukan untuk search index yang diekstrak dan dimasukkan
    1. Menjalankan pipeline pencarian lokal
    • Menjalankan dataset bersama kueri pengujian untuk menghasilkan hasil pencarian
    1. 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
    1. Perbandingan per konfigurasi
      • Hasil diagregasi sehingga performa berbagai pengaturan dapat dibandingkan berdampingan
    2. Perincian performa berdasarkan tipe dan tingkat kesulitan kueri
      • Memungkinkan analisis terpisah untuk tipe kueri tertentu atau tingkat kesulitan tertentu
    3. 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
    1. 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
    1. 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
    1. 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.

Belum ada komentar.