Keuntungan:
- Melaksanakan carian hibrid yang menggabungkan pemilihan top-k dan carian semantik dan kata kunci
- Meningkatkan ketepatan carian pertama dengan penarafan semula
- Menjadikan soalan sukar lebih mudah dicari dengan teknik seperti transformasi pertanyaan dan HyDE
Anda mencincang dokumen dengan baik dan memasukkannya ke dalam pangkalan data vektor. Kini kerja sebenar: mengambil bahagian yang betul apabila pengguna bertanya soalan. Ini dipanggil retrieval dan merupakan tulang belakang kualiti RAG. Ingat frasa "Kualiti pengambilan = kualiti RAG"; Unit ini betul-betul seni untuk meningkatkan kualiti itu. Kami akan merangkumi teknik praktikal daripada pemilihan top-k kepada carian hibrid, daripada kedudukan semula kepada transformasi pertanyaan.
Top-k: Berapa Helai Yang Akan Kami Bawa?
Tetapan paling asas: berapa keping (k) untuk dikembalikan daripada carian. Jika anda membawa kurang (k=1) terdapat risiko tinggi kehilangan bahagian yang betul; Jika anda menambah terlalu banyak (k=20), ia akan menambahkan bunyi pada model dan kos token akan meningkat.
Membezakan antara dua konsep. Ingat: kadar bahagian yang betul adalah antara yang diambil. Ketepatan: kadar di mana perkara yang diambil adalah berkaitan. Menambah k meningkatkan ingatan tetapi mengurangkan ketepatan. Matlamatnya adalah untuk mengimbangi kedua-duanya.
atas-k
Kesan
situasi yang sesuai
1-3
Ketepatan tinggi, risiko terlepas
Soalan mudah, satu jawapan
4-8
Baki; kebanyakan senario
RAG korporat am
10-20
Ingatan yang lebih tinggi, bunyi meningkat
Dengan kedudukan semula (di bawah)
Petua: Corak biasa dan berkuasa: ambil lebar (k=20), kemudian sempit dengan kedudukan semula (4 teratas). Dengan cara ini anda tidak akan terlepas apa-apa dan anda memberikan konteks yang bersih kepada model.
Carian Hibrid: Kuasa Dua Carian
Carian semantik (vektor) menangkap makna tetapi terlepas perkara: kod produk penuh ("XR-4471"), singkatan jarang berlaku, nama betul, nombor versi. Untuk tugasan padanan tepat ini, carian kata kunci sekolah lama—terutamanya algoritma klasik yang dipanggil BM25—sangat bagus.
Carian hibrid menggabungkan kedua-dua: kedua-dua carian semantik dan kata kunci berfungsi, menggabungkan hasil. Oleh itu, dalam soalan seperti "Tempoh jaminan bagi
Penggabungan biasanya dilakukan dengan RRF (Reciprocal Rank Fusion): trek yang lebih tinggi dalam kedua-dua senarai muncul ke hadapan.
# Pencarian hibrid (konseptual)sem = vector_search(soalan, k=20) # meaningkey = bm25_search(question, k=20) # fullwordresult = rrf_merge(sem, key)[:8] # cantumkan kedua-duanya, top 8
Kedudukan semula: Lulus Kedua dan Lebih Pintar
Panggilan pertama boleh menjadi cepat tetapi kasar. Kedudukan semula menjaringkan calon yang dikembalikan oleh carian pertama satu demi satu dengan model yang lebih berkuasa (biasanya pengekod silang — model yang membaca soalan dan petikan bersama-sama dan menjaringkan perkaitan) dan mengalihkan yang paling relevan ke atas.
Logiknya adalah ini: carian pertama memberikan sejumlah besar calon untuk dipanggil semula (20 calon), penaraf semula memilih 4 terbaik untuk ketepatan. Pendekatan dua peringkat ini jauh lebih tepat daripada carian satu peringkat. Ia memerlukan sedikit kelewatan dan pemprosesan tambahan; Keuntungan adalah peningkatan yang ketara dalam kualiti.
# Calon perolehan dua peringkat (konseptual) = carian_hibrid(soalan, k=20) # luas, skor pantas = reranker.skor(soalan, calon) # skor perkaitan untuk setiap konteks calon = dinilai.pangkat()[:4] # 4 teratas
Mengubah Pertanyaan
Kadang-kadang masalahnya bukan dalam carian, tetapi dalam soalan itu sendiri. Jika pengguna bertanya "bagaimana dengan pekerja jauh?" ', ini tidak boleh dicari sendirian (tidak jelas apa untuk pekerja jauh). Berikut ialah teknik transformasi pertanyaan:
- Tulis semula: Gunakan sejarah perbualan untuk membuat soalan kendiri: "Apakah pekerja jauh berhak mendapat cuti tahunan?"
- Berbilang pertanyaan: Hasilkan 3 ungkapan berbeza bagi soalan yang sama, cari dengan kesemuanya, gabungkan hasilnya. Perkataan yang berbeza mencari kepingan yang berbeza.
- HyDE (Pembenaman Dokumen Hipotesis): Mula-mula cetak "jawapan yang mungkin" pada model, kemudian benamkan dan cari jawapan khayalan itu. Jawapan khayalan kadangkala didapati lebih baik kerana ia lebih dekat dalam perkataan dengan dokumen sebenar.
# Varian berbilang pertanyaan (konseptual) = model.uret("Nyatakan soalan ini dalam 3 cara berbeza: " + soalan)tum_sonuc = []untuk v dalam varian: all_sonuc += vector_intermediate(v, k=6)context = singular_and_order(tum_result)[:6]
Retrieval Lemah / Kuat Retrieval
Lemah (peringkat tunggal, semantik sahaja, malar k=3):
hasil = vector_search(soalan, k=3)# Masalah: kod produk terlepas, tidak boleh memasukkan bahagian 3 yang betul dalam soalan sukar.
Berkuasa (hibrid + widek + kedudukan semula + berbilang pertanyaan jika perlu):
calon = hybrid_search(tulis semula(soalan, lalu), k=20)konteks = reranker.skor(soalan, calon).first(4)# Kedua-dua padanan tepat dan makna ditangkap; Ia pergi kepada 4 model terbaik.
Tiga Kes Mini
Kes 1 — Kod produk terlepas. Carian semantik tulen pada pasukan sokongan tidak menemui kata kerja "RTX-9080" dalam soalan "ralat pemandu RTX-9080"; Dia membawa produk lain dengan nama yang sama. Apabila carian hibrid ditambahkan, padanan kod tepat berlaku dan kadar pengembalian artikel yang betul meningkat daripada 58% kepada 92%.
Kes 2 — Perbezaan kedudukan semula. Paralegal bekerja dengan k=5 tetapi item yang betul ialah 7-10 pada kebanyakan masa. Dia kekal dalam barisan. Apabila k=20 + kedudukan semula diperkenalkan, kadar artikel yang betul berada dalam 3 teratas meningkat daripada 61% kepada 94%; Kependaman meningkat hanya 300ms — satu kompromi yang boleh diterima.
Kes 3 — Soalan susulan tanpa konteks. Dalam pembantu HR, pengguna bertanya "bagaimana dengan pekerja sambilan?" Apabila saya bertanya, sistem membawa bahagian yang tidak berkaitan. Dengan menulis semula pertanyaan (menarik konteks "cuti tahunan" dari masa lalu dan menambah "Pekerja sambilan berhak mendapat cuti tahunan"), kadar jawapan yang betul meningkat daripada 40% kepada 86%.
Kesilapan biasa
- Bergantung pada carian semantik semata-mata: Kod produk, singkatan, nama betul terlepas; Tambah hibrid.
- Mengekalkan k terlalu kecil: Sekeping yang betul tidak boleh memasuki senarai; jadikan ia lebar dan sempitkannya dengan kedudukan semula.
- Tidak pernah memikirkan tentang kedudukan semula: Carian pertama adalah biadap; Pas pintar kedua meningkatkan kualiti dengan ketara.
- Mencari soalan susulan seperti: Soalan tanpa konteks mencari tidak bermakna; menulis semula.
- Meningkatkan k secara membuta tuli (tanpa kedudukan semula): Model dipenuhi dengan bunyi bising, tindak balas diherotkan dan kos meningkat.
Berhati-hati: Setiap teknik menambah kos dan kelewatan. Berbilang pertanyaan bermaksud carian 3 kali ganda, kedudukan semula bermaksud panggilan model tambahan. Mulakan dengan hibrid mudah + k munasabah dahulu; Ukur dan tambah teknik berat di mana benar-benar diperlukan. Menambah tanpa mengukur.
Secara ringkasnya
- Top-k ialah keseimbangan antara ingat semula dan ketepatan; Secara amnya 4-8 adalah permulaan yang baik.
- Carian hibrid menggabungkan carian semantik dengan carian kata kunci (BM25); Memulihkan padanan tepat.
- Kedudukan semula menjaringkan semula calon daripada carian awal yang luas dengan model yang mantap dan memilih yang terbaik.
- Transformasi pertanyaan (menulis semula, berbilang pertanyaan, HyDE) menjadikan soalan sukar dan bebas konteks boleh dicari.
- Corak kuat: pengambilan luas → bergabung dengan hibrid → sempit dengan kedudukan semula; tetapi tambah setiap teknik dengan mengukurnya.
Tugasan permohonan
Sediakan 6 soalan sukar dengan data daripada unit sebelumnya: sekurang-kurangnya 2 yang memerlukan padanan tepat (kod produk, singkatan, tarikh), 2 semantik (topik yang sama dengan perkataan yang berbeza), 2 soalan susulan tanpa konteks. (1) Mula-mula fikirkan setiap soalan sebagai carian semantik tulen dan tandakan bahagian mana yang akan muncul secara manual. (2) Nilai semula soalan yang sama dengan hibrid dan penarafan semula ditambah. (3) Tulis semula soalan susulan tanpa konteks. Perhatikan dalam bentuk jadual teknik yang membuat perbezaan dalam jenis soalan.
senarai semak
- [ ] Saya tahu top-k ialah imbangan ketepatan ingat dan julat permulaan yang munasabah.
- [ ] Saya boleh menerangkan sebab carian hibrid memulihkan padanan tepat.
- [ ] Saya boleh menggunakan logik dua langkah penarafan semula (luas → sempit pintar).
- [ ] Saya menyedari keperluan untuk menulis semula soalan susulan tanpa konteks.
- [ ] Saya mengesahkan bahawa saya menambah teknik berat dengan mengukur, bukan dengan mengukur.