Hybrid Search dan Reranking untuk RAG yang Lebih Akurat
Pencarian vektor saja sering meleset untuk kode produk dan istilah khusus. Begini hybrid search dan reranking menaikkan ketepatan chatbot RAG.
Jawaban singkat
Hybrid search menggabungkan pencarian kata kunci (seperti BM25) dengan pencarian vektor agar istilah persis dan makna sama-sama tertangkap. Reranking lalu menilai ulang kandidat teratas dengan model yang lebih teliti sebelum potongan dokumen dikirim ke model AI.
Daftar isi
- Kenapa pencarian vektor saja sering meleset?
- Bagaimana hybrid search dan reranking bekerja?
- Hybrid search, dua pencarian digabung
- Reranking, penilaian ulang yang lebih teliti
- Perbandingan pendekatan pencarian
- Kapan memakai hybrid, kapan perlu reranking?
- Urutan menerapkan yang masuk akal
- Pertanyaan yang sering diajukan
Hybrid search adalah cara mencari potongan dokumen dengan dua metode sekaligus: pencarian kata kunci yang mencocokkan kata persis, dan pencarian vektor yang mencocokkan makna. Reranking adalah tahap tambahan setelahnya, ketika model khusus membaca ulang kandidat teratas lalu mengurutkannya berdasarkan relevansi yang sebenarnya.
Keduanya penting karena di sistem RAG, model AI hanya bisa menjawab sebaik dokumen yang diberikan kepadanya. Kalau tahap pencarian mengambil potongan yang salah, prompt sebagus apa pun tidak menolong. Jawabannya akan meleset, atau lebih buruk, terdengar meyakinkan padahal salah.
Kenapa pencarian vektor saja sering meleset?
Pencarian vektor bekerja dengan mengubah teks menjadi embedding, deretan angka yang mewakili makna, lalu mencari potongan yang maknanya paling dekat dengan pertanyaan. Ini hebat untuk pertanyaan yang memakai kata berbeda dari dokumen, misalnya "cara balikin barang" yang cocok dengan bagian "kebijakan pengembalian".
Kelemahannya muncul pada hal yang harus cocok persis. Beberapa contoh yang sering bermasalah:
- Kode produk dan nomor seri, seperti "SKU-A1203" atau "tipe X200".
- Nomor pasal, nomor surat, atau nomor faktur.
- Nama orang, nama tempat, dan singkatan internal perusahaan.
- Pesan error teknis yang harus dicocokkan kata demi kata.
Bagi model embedding, "X200" dan "X300" bisa terasa sangat mirip. Bagi pelanggan yang bertanya soal X200, jawaban tentang X300 adalah jawaban salah. Dasar embedding dan cara memotong dokumen dibahas di embedding dan chunking untuk RAG.
Bagaimana hybrid search dan reranking bekerja?
Hybrid search, dua pencarian digabung
Pada hybrid search, satu pertanyaan dikirim ke dua mesin pencari sekaligus. Mesin kata kunci, biasanya memakai algoritma BM25 atau full text search, menangkap kecocokan kata persis. Mesin vektor menangkap kecocokan makna. Hasil keduanya lalu digabung menjadi satu daftar.
Cara penggabungan yang populer adalah Reciprocal Rank Fusion (RRF). Setiap dokumen diberi skor berdasarkan peringkatnya di masing-masing daftar, dengan rumus 1 dibagi (k + peringkat), lalu skor dari dua daftar dijumlahkan. Konstanta k yang sering dipakai adalah 60. Kelebihan RRF: kamu tidak perlu menyamakan skala skor BM25 dan skor kemiripan vektor yang memang berbeda.
Banyak database sudah mendukung pendekatan ini. Di PostgreSQL, misalnya, kamu bisa memadukan ekstensi pgvector untuk pencarian vektor dengan full text search bawaan PostgreSQL. Beberapa vector database dan mesin pencari juga menyediakan mode hybrid sendiri. Pilihan database dibahas di vector database untuk RAG.
Reranking, penilaian ulang yang lebih teliti
Pencarian tahap pertama harus cepat karena menyisir seluruh dokumen. Akibatnya, ketelitiannya terbatas. Reranker bekerja di tahap kedua, hanya pada kandidat teratas, misalnya 20 sampai 50 potongan.
Reranker yang umum berupa model cross-encoder. Bedanya dengan embedding: embedding mengubah pertanyaan dan dokumen menjadi angka secara terpisah, sedangkan cross-encoder membaca pertanyaan dan dokumen bersamaan, lalu memberi skor relevansi. Cara ini lebih akurat, tetapi lebih lambat, sehingga hanya dipakai pada kandidat terbatas. Setelah diurutkan ulang, hanya beberapa potongan teratas, misalnya 3 sampai 5, yang dikirim ke model AI.
Perbandingan pendekatan pencarian
| Pendekatan | Kuat di | Lemah di | Biaya dan kecepatan |
|---|---|---|---|
| Kata kunci (BM25) | Kode, nomor, nama, istilah persis | Sinonim, bahasa sehari-hari | Ringan dan cepat |
| Vektor saja | Makna, parafrase, pertanyaan longgar | Istilah persis, angka, kode | Perlu embedding, cepat saat cari |
| Hybrid (kata kunci + vektor) | Gabungan keduanya | Perlu menyetel penggabungan | Sedikit lebih berat dari satu metode |
| Hybrid + reranking | Urutan paling relevan | Tambahan latensi per pertanyaan | Ada biaya model reranker |
Kapan memakai hybrid, kapan perlu reranking?
Hybrid search layak dipasang hampir di semua chatbot dokumen bisnis, karena dokumen bisnis hampir selalu berisi kode produk, nama, atau nomor. Biaya tambahannya kecil dibanding manfaatnya, apalagi kalau database yang kamu pakai sudah mendukung keduanya.
Reranking layak ditambahkan ketika potongan yang benar sebenarnya sudah ada di 20 hasil teratas, tetapi sering tidak berada di urutan atas. Kondisi ini terlihat jelas bila kamu mengukur kualitas pencarian dengan set uji. Kalau potongan benar sama sekali tidak muncul di 20 teratas, reranker tidak bisa menolong. Perbaiki dulu chunking atau pencarian tahap pertama.
Reranking kurang cocok bila aplikasimu sangat sensitif terhadap waktu respons dan dokumennya sedikit serta seragam. Dalam kasus seperti itu, hybrid search yang disetel baik sering sudah cukup.
Cara menyusun set uji dan mengukur pencarian secara terpisah dari jawaban dibahas di cara mengevaluasi kualitas jawaban RAG.
Urutan menerapkan yang masuk akal
Mulai dari yang paling murah. Rapikan dulu chunking dan metadata dokumen. Metadata seperti kategori, tanggal berlaku, dan jenis dokumen bisa dipakai sebagai filter sebelum pencarian, sehingga kebijakan lama yang sudah tidak berlaku tidak ikut bersaing dengan versi terbaru. Tambahkan pencarian kata kunci di samping pencarian vektor, gabungkan dengan RRF, lalu ukur. Baru setelah itu pertimbangkan reranker, dengan jumlah kandidat dan jumlah potongan akhir yang disetel berdasarkan hasil pengukuran.
Jangan lupa memantau setelah tayang. Catat pertanyaan yang dijawab "tidak tahu" atau mendapat tanda tidak puas dari pengguna, lalu periksa potongan apa yang diambil untuk pertanyaan itu. Dari situ biasanya terlihat pola: istilah internal yang belum ada di dokumen, dokumen yang terpotong di tempat yang salah, atau kata kunci yang perlu ditambahkan sebagai sinonim. Perbaikan kecil seperti ini sering memberi dampak lebih besar daripada mengganti model.
Pertanyaan yang sering diajukan
Apakah hybrid search butuh database khusus?
Tidak selalu. PostgreSQL dengan pgvector dan full text search sudah bisa dipakai. Beberapa vector database dan mesin pencari juga punya mode hybrid bawaan.
Apakah reranker harus memakai API berbayar?
Tidak harus. Ada model reranker open source yang bisa dijalankan sendiri, dan ada juga layanan API. Pilih berdasarkan volume, latensi, dan kebutuhan privasi data.
Berapa kandidat yang sebaiknya dikirim ke reranker?
Tidak ada angka baku. Puluhan kandidat adalah titik awal yang umum. Tambah bila potongan benar sering berada di luar kandidat, kurangi bila latensi terlalu tinggi.
Apakah hybrid search membantu dokumen berbahasa Indonesia?
Ya, terutama untuk istilah persis. Pastikan pengaturan full text search mendukung bahasa yang dipakai, dan model embedding yang dipilih cukup baik untuk teks berbahasa Indonesia.


