Saya akhirnya mengerti mengapa re-ranker begitu kuat setelah saya memahami perbedaan utama antara bi- dan cross-encoder. Saya selanjutnya menemukan cara untuk menggabungkan kekuatan mereka menggunakan arsitektur terpadu. Izinkan saya menjelaskan: RAG adalah 80% pengambilan dan 20% pembangkitan. Jadi jika RAG tidak berfungsi, kemungkinan besar, itu adalah masalah pengambilan. Itulah mengapa mendapatkan arsitektur pengambilan Anda yang benar sangat penting - dan itu dimulai dengan memahami dua (sebenarnya tiga) pendekatan pengkodean ini. (lihat visual di bawah ini saat Anda membaca) 1️⃣ Bi-encoder Bi-encoder (tulang punggung pencarian vektor) memproses kueri dan dokumen secara terpisah. - Penyematan dokumen telah dihitung sebelumnya - Kueri disematkan pada waktu pencarian Ini membuat bi-encoder sempurna untuk pengambilan awal: - sangat cepat - bekerja dalam skala besar - melewatkan info kontekstual penting 2️⃣ Cross-encoder Cross-encoder mengambil pendekatan yang sama sekali berbeda untuk peringkat ulang. Mereka memproses kueri dan setiap dokumen sebagai satu unit. - Gabungkan kueri dengan dokumen ([CLS] Kueri [SEP] Dokumen [SEP]) - Jalankan model bersama-sama untuk perhatian silang penuh Hal ini membuat cross-encoder ideal untuk tahap kedua: - menangkap hubungan semantik untuk akurasi yang lebih baik - tetapi jauh lebih lambat dan banyak sumber daya untuk koleksi besar Sekarang, bagaimana jika kita bisa menggabungkan yang terbaik dari kedua dunia! 3️⃣ ColBERT ColBERT menyatukan kekuatan cross-encoder dan skalabilitas bi-encoder. - Mengkodekan kueri dan dokumen secara terpisah - Membuat matriks interaksi dengan skor kesamaan antara semua pasangan token kueri-dokumen - Ambil skor maksimum untuk setiap token kueri di seluruh token dokumen - Jumlah skor maksimum untuk skor pencocokan akhir _____ Itu bungkusnya! Jika Anda merasa berwawasan luas, bagikan kembali dengan jaringan Anda. Temukan saya → @akshay_pachaar ✔️ Untuk wawasan dan tutorial lebih lanjut tentang LLM, Agen AI, dan Pembelajaran Mesin!
46,67K