Daromadlar:
- Top-k tanlovi va semantik va kalit so'zlarni qidirishni birlashtirgan gibrid qidiruvni amalga oshirish
- Qayta tartiblash bilan birinchi qidiruvning aniqligini oshirish
- So'rovlarni o'zgartirish va HyDE kabi texnikalar yordamida qiyin savollarni qidirishni osonlashtiring
Hujjatlarni yaxshi parchalab tashladingiz va vektor ma'lumotlar bazasiga joylashtirdingiz. Endi haqiqiy ish: foydalanuvchi savol berganda kerakli qismlarni olish. Bu qidirish deb ataladi va RAG sifatining asosidir. "Qayta olish sifati = RAG sifati" iborasini eslang; Bu birlik aynan shu sifatni yaxshilash san'atidir. Biz top-k tanlovidan gibrid qidiruvga, qayta tartiblashdan so'rovlarni o'zgartirishgacha bo'lgan amaliy usullarni ko'rib chiqamiz.
Top-k: Biz qancha dona olib kelamiz?
Eng asosiy sozlama: qidiruvdan qaytish uchun qancha dona (k). Agar siz kamroq olib kelsangiz (k=1) to'g'ri bo'lakni o'tkazib yuborish xavfi yuqori; Agar siz juda ko'p qo'shsangiz (k=20), u modelga shovqin qo'shadi va token narxi oshadi.
Ikki tushunchani farqlang. Eslatib o'tamiz: to'g'ri bo'lak olinganlar orasida bo'lish tezligi. Aniqlik: olingan narsaning tegishli darajasi. K ni oshirish eslab qolishni oshiradi, lekin aniqlikni pasaytiradi. Maqsad ikkalasini muvozanatlashdir.
top-k
Ta'sir
mos holat
1-3
Yuqori aniqlik, o'tkazib yuborish xavfi
Oddiy, bitta javobli savollar
4-8
Balans; ko'p stsenariylar
Umumiy korporativ RAG
10-20
Yuqori eslab qolish, shovqin kuchayadi
Qayta reyting bilan (quyida)
Maslahat: Umumiy va kuchli naqsh: keng (k=20) olib keling, so‘ngra qayta tartiblash bilan toraytiring (top 4). Shunday qilib, siz hech narsani o'tkazib yubormaysiz va modelga toza kontekst berasiz.
Gibrid qidiruv: ikkita qidiruvning kuchi
Semantik (vektor) qidiruv ma'noni qamrab oladi, lekin narsalarni o'tkazib yuboradi: to'liq mahsulot kodi ("XR-4471"), nodir qisqartma, tegishli nom, versiya raqami. Ushbu aniq mos keladigan vazifalar uchun eski maktab kalit so'zlarini qidirish, ayniqsa BM25 deb nomlangan klassik algoritm - juda yaxshi.
Gibrid qidiruv ikkalasini birlashtiradi: ham semantik, ham kalit so'zlarni qidirish natijalarni birlashtiradi. Shunday qilib, "Kafolat muddati" kabi savolda
Birlashtirish odatda RRF (Reciprocal Rank Fusion) bilan amalga oshiriladi: ikkala ro'yxatda yuqoriroq bo'lgan trek oldinga chiqadi.
# Gibrid qidiruv (kontseptual)sem = vektor_qidiruv(savol, k=20) # meankey = bm25_search(savol, k=20) # fullwordresult = rrf_merge(sem, key)[:8] # ikkitasini birlashtiring, yuqori 8
Qayta reyting: Ikkinchi va Smarter Pass
Birinchi qo'ng'iroq tez, ammo qo'pol bo'lishi mumkin. Birinchi qidiruv natijasida qaytgan nomzodlarni birma-bir kuchliroq model bilan qayta reyting baholaydi (odatda oʻzaro kodlovchi — savol va parchani birgalikda oʻqiydi va ahamiyatini baholaydigan model) va eng mosini yuqoriga koʻtaradi.
Mantiq shunday: birinchi qidiruv chaqirib olish uchun ko'p sonli nomzodlarni tayinlaydi (20 nomzod), qayta tartiblovchi aniqlik uchun eng yaxshi 4 tasini tanlaydi. Ushbu ikki bosqichli yondashuv bir bosqichli qidiruvga qaraganda ancha aniqroq. Bu biroz kechikish va qo'shimcha ishlov berishni talab qiladi; Daromad sifatning sezilarli o'sishidir.
# Ikki bosqichli qidirish (kontseptual) nomzodlar = gibrid_qidiruv(savol, k=20) # keng, tezkor ball = reranker.score(savol, nomzodlar) # har bir nomzod konteksti uchun moslik balli = rated.rank()[:4] # top 4
So'rovni o'zgartirish
Ba'zida muammo qidiruvda emas, balki savolning o'zida. Agar foydalanuvchi "masofadagi ishchilar haqida nima desa bo'ladi?" ', buni yolg'iz izlab bo'lmaydi (masofadagi ishchilar uchun nima ekanligi aniq emas). Bu erda so'rovlarni o'zgartirish texnikasi:
- Qayta yozish: Savolni mustaqil qilish uchun suhbatlar tarixidan foydalaning: "Masofadagi ishchilar yillik ta'tilga qanday haqli?"
- Ko'p so'rov: bir xil savolning 3 xil ifodasini yarating, ularning barchasi bilan qidiring, natijalarni birlashtiring. Turli xil so'zlar turli qismlarni topadi.
- HyDE (Hypotetik Hujjat Embeddings): Avval modelga "mumkin bo'lgan javob" ni chop eting, so'ngra o'sha xayoliy javobni joylashtiring va qidiring. Xayoliy javob ba'zan yaxshiroq topiladi, chunki u haqiqiy hujjatga so'z bilan yaqinroqdir.
# Ko'p so'rov (kontseptual)variantlar = model.uret("Bu savolni 3 xil usulda ifodalang: " + savol)tum_sonuc = []variantlarda v uchun: all_sonuc += vektor_intermediate(v, k=6)kontekst = yagona_va_tartib(tum_natija)[:6]
Zaif olish / Kuchli olish
Zaif (bir bosqich, faqat semantika, doimiy k=3):
natija = vector_search(savol, k=3)# Muammo: mahsulot kodi o'tkazib yuborilgan, qiyin savollarga 3-qismni to'g'ri kiritib bo'lmaydi.
Kuchli (gibrid + widek + qayta tartiblash + kerak bo'lsa ko'p so'rov):
nomzodlar = gibrid_search(qayta yozish(savol, o'tgan), k=20)kontekst = reranker.score(savol, nomzodlar).first(4)# Har ikkala aniq moslik va ma'no ushlangan; U eng yaxshi 4 ta modelga kiradi.
Uchta mini korpus
1-holat - Mahsulot kodi o'chirildi. Qo'llab-quvvatlash guruhida sof semantik qidiruv "RTX-9080 haydovchi xatosi" savolida "RTX-9080" so'zini topa olmadi; U shunga o'xshash nomdagi boshqa mahsulotlarni olib kelardi. Gibrid qidiruv qo'shilgach, aniq kod mos keldi va to'g'ri maqolalarni qaytarish darajasi 58% dan 92% gacha ko'tarildi.
2-holat – Reytingdagi farq. Paralegal k=5 bilan ishlagan, lekin to'g'ri element ko'pincha 7-10. U safda qolardi. k=20 + qayta tartiblash joriy etilganda, to'g'ri maqolaning birinchi 3-likda bo'lish darajasi 61% dan 94% gacha ko'tarildi; Kechikish atigi 300 ms ga oshdi - bu maqbul kelishuv.
3-holat - Kontekstsiz keyingi savol. HR yordamchisida foydalanuvchi “part-taymerlar-chi?” deb so'raydi. Men so'raganimda, tizim ahamiyatsiz qismlarni olib keldi. So'rovni qayta yozish orqali ("yillik ta'til" kontekstini o'tmishdan tortib, "To'liq bo'lmagan ishchilar yillik ta'til olish huquqiga ega"" qo'shilishi bilan), to'g'ri javob darajasi 40% dan 86% gacha ko'tarildi.
Umumiy xatolar
- Faqat semantik qidiruvga tayanib: Mahsulot kodi, qisqartma, tegishli nom o'tkazib yuborilgan; Gibrid qo'shing.
- k ni juda kichik saqlash: To'g'ri bo'lak ro'yxatga kira olmaydi; uni kengroq qilib, uni qayta tartib bilan toraytiring.
- Hech qachon qayta tartiblash haqida o'ylamang: Birinchi qidiruv qo'pol; Ikkinchi aqlli o'tish sifatni sezilarli darajada yaxshilaydi.
- Keyingi savollarni quyidagicha qidirish: Kontekstsiz savol ma'nosizni qidiradi; qayta yozish.
- Ko'r-ko'rona ortib borayotgan k (qayta tartibsiz): Model shovqin bilan to'ldiriladi, javob buziladi va narx oshadi.
Ehtiyot bo'ling: har bir texnika xarajat va kechikishni oshiradi. Ko'p so'rov 3 marta qidirishni anglatadi, qayta tartiblash qo'shimcha modelni chaqiradi. Avval oddiy gibrid + oqilona k bilan boshlang; Haqiqatan ham kerak bo'lganda og'ir texnikalarni o'lchang va qo'shing. O'lchovsiz qo'shish.
Xulosa
- Top-k - eslab qolish va aniqlik o'rtasidagi muvozanat; Odatda 4-8 - yaxshi boshlanish.
- Gibrid qidiruv semantik qidiruvni kalit so'z (BM25) bilan birlashtiradi; Aniq mosliklarni tiklaydi.
- Qayta tartiblash kuchli model yordamida nomzodlarni keng ko'lamli dastlabki qidiruvdan qayta baholaydi va eng yaxshilarini tanlaydi.
- So'rovlarni o'zgartirish (qayta yozish, ko'p so'rov, HyDE) qiyin va kontekstsiz savollarni qidirishga imkon beradi.
- Kuchli naqsh: keng ko'lamli yuklash → gibrid bilan birlash → qayta tartiblash bilan tor; lekin har bir texnikani o'lchash orqali qo'shing.
Ilova vazifasi
Oldingi bo'limlar ma'lumotlari bilan 6 ta qiyin savol tayyorlang: kamida 2 ta aniq moslikni talab qiladigan (mahsulot kodi, qisqartma, sana), 2 ta semantik (turli so'zlar bilan bir xil mavzu), kontekstsiz 2 ta keyingi savol. (1) Avval har bir savolni sof semantik qidiruv sifatida o'ylab ko'ring va qaysi qismlar paydo bo'lishini qo'lda belgilang. (2) Gibrid va qayta reyting qo'shilgan bir xil savollarni qayta baholang. (3) Keyingi savollarni kontekstsiz qayta yozing. Jadval ko'rinishida qaysi usul qaysi savol turini farqlashiga e'tibor bering.
nazorat ro'yxati
- [ ] Men top-k - eslab qolish-aniqlik balansi va oqilona boshlang'ich diapazoni bilaman.
- [ ] Men nima uchun gibrid qidiruv aniq mosliklarni tiklashini tushuntira olaman.
- [ ] Men ikki bosqichli qayta tartiblash mantig'ini qo'llashim mumkin (keng → aqlli tor).
- [ ] Men keyingi savollarni kontekstsiz qayta yozish zarurligini tushunaman.
- [ ] Men og'ir texnikalarni o'lchash orqali emas, balki o'lchash orqali qo'shganimni tasdiqlayman.