Vahid 4 / 11

Axtarış Strategiyaları: Top-k, Hybrid, Re-ranking

Qazanclar:

  • Top-k seçimini və semantik və açar söz axtarışını birləşdirən hibrid axtarışın həyata keçirilməsi
  • Yenidən sıralama ilə ilk axtarışın dəqiqliyinin artırılması
  • Sorğunun çevrilməsi və HyDE kimi üsullarla çətin sualları daha axtarıla bilən etmək

Siz sənədləri gözəl şəkildə doğradınız və vektor verilənlər bazasına yerləşdirdiniz. İndi əsl iş: istifadəçi sual verəndə düzgün parçaların alınması. Bu axtarış adlanır və RAG keyfiyyətinin əsasını təşkil edir. "Alma keyfiyyəti = RAG keyfiyyəti" ifadəsini xatırlayın; Bu bölmə məhz həmin keyfiyyəti yaxşılaşdırmaq sənətidir. Biz top-k seçimindən hibrid axtarışa, təkrar sıralamadan sorğunun çevrilməsinə qədər praktiki texnikaları əhatə edəcəyik.

Top-k: Neçə Parça gətirəcəyik?

Ən əsas parametr: axtarışdan qayıtmaq üçün neçə ədəd (k). Əgər daha az gətirsəniz (k=1) düzgün parçanı əldən vermə riski yüksəkdir; Əgər çox əlavə etsəniz (k=20), bu modelə səs-küy əlavə edəcək və token qiyməti artacaq.

İki anlayışı fərqləndirin. Xatırla: düzgün parçanın əldə edilənlər arasında olması dərəcəsi. Dəqiqlik: əldə edilənin uyğunluq dərəcəsi. k-nin artırılması yaddaşı artırır, lakin dəqiqliyi azaldır. Məqsəd ikisini balanslaşdırmaqdır.

top-k

Təsir

uyğun vəziyyət

1-3

Yüksək dəqiqlik, qaçırma riski

Sadə, bir cavablı suallar

4-8

Balans; əksər ssenarilər

Ümumi korporativ RAG

10-20

Daha yüksək yaddaş, səs-küy artır

Yenidən sıralama ilə (aşağıda)

İpucu: Ümumi və güclü nümunə: geniş (k=20) əldə edin, sonra yenidən sıralama ilə daraltın (top 4). Beləliklə, siz heç nəyi qaçırmayacaqsınız və modelə təmiz kontekst verəcəksiniz.

Hibrid Axtarış: İki Axtarışın Gücü

Semantik (vektor) axtarış mənasını tutur, lakin bir şeyi əldən verir: tam məhsul kodu ("XR-4471"), nadir abreviatura, müvafiq ad, versiya nömrəsi. Bu dəqiq uyğunluq tapşırıqları üçün köhnə məktəb açar söz axtarışı - xüsusən BM25 adlı klassik alqoritm - çox yaxşıdır.

Hibrid axtarış ikisini birləşdirir: həm semantik, həm də açar söz axtarışları işləyir, nəticələri birləşdirir. Beləliklə, kimi bir sualda "Zəmanət müddəti

Birləşmə adətən RRF (Reciprocal Rank Fusion) ilə aparılır: hər iki siyahıda daha yüksək olan trek önə çıxır.

# Hibrid axtarış (konseptual)sem = vector_search(sual, k=20) # meankey = bm25_search(sual, k=20) # fullwordresult = rrf_merge(sem, key)[:8] # ikisini birləşdirir, üst 8

Yenidən sıralama: İkinci və daha ağıllı keçid

İlk zəng tez, lakin kobud ola bilər. İlk axtarış nəticəsində qaytarılan namizədləri bir-bir daha güclü modellə (adətən çarpaz kodlayıcı — sualı və keçidi birlikdə oxuyan və uyğunluğu qiymətləndirən model) yenidən sıralanır və ən uyğun olanları yuxarıya aparır.

Məntiq belədir: ilk axtarış geri çağırılmaq üçün çoxlu sayda namizəd təyin edir (20 namizəd), yenidən sıralama tərtib edən şəxs dəqiqliyə görə ən yaxşı 4-ü seçir. Bu iki mərhələli yanaşma bir mərhələli axtarışdan daha dəqiqdir. Bu, müəyyən gecikmə və əlavə emal tələb edir; Qazanc keyfiyyətdə əhəmiyyətli bir artımdır.

# İki mərhələli axtarış (konseptual) namizədlər = hibrid_axtarış(sual, k=20) # geniş, sürətli xal = reranker.score(sual, namizədlər) # hər bir namizəd kontekstinə uyğunluq balı = rated.rank()[:4] # top 4

Sorğunun çevrilməsi

Bəzən problem axtarışda deyil, sualın özündə olur. İstifadəçi "uzaqdan işləyən işçilər haqqında nə deyər?" ', bunu tək axtarmaq olmaz (uzaq işçilər üçün nə olduğu aydın deyil). Sorğu çevirmə texnikaları bunlardır:

  • Yenidən yazın: Sualı müstəqil etmək üçün söhbət tarixçəsindən istifadə edin: "Uzaqdan gələn işçilərin illik məzuniyyət hüququ nədir?"
  • Çox sorğu: Eyni sualın 3 fərqli ifadəsini yaradın, hamısı ilə axtarın, nəticələri birləşdirin. Fərqli sözlər fərqli parçalar tapır.
  • HyDE (Hypothetical Document Embeddings): Əvvəlcə modelə "mümkün cavab" çap edin, sonra həmin xəyali cavabı yerləşdirin və axtarın. Xəyali cavab bəzən daha yaxşı tapılır, çünki o, real sənədə sözlə daha yaxındır.

# Çox sorğu (konseptual)variantları = model.uret("Bu sualı 3 fərqli şəkildə ifadə edin: " + sual)tum_sonuc = []variantlarda v üçün: all_sonuc += vektor_intermediate(v, k=6)kontekst = tək_və_sifariş(tum_nəticə)[:6]

Zəif Axtarış / Güclü Axtarış

Zəif (tək mərhələ, yalnız semantika, sabit k=3):

nəticə = vector_search(sual, k=3)# Problem: məhsul kodu buraxılıb, çətin suallarda 3-cü hissəni düzgün daxil edə bilmir.

Güclü (hibrid + geniş + yenidən sıralama + lazım olduqda çox sorğu):

namizədlər = hibrid_axtarış(yenidən yazma(sual, keçmiş), k=20)kontekst = reranker.score(sual, namizədlər).first(4)# Həm dəqiq uyğunluq, həm də məna tutulur; Ən yaxşı 4 modelə gedir.

Üç mini qutu

1-ci hal - Məhsul kodu qaçdı. Bir dəstək komandasında təmiz semantik axtarış "RTX-9080 sürücü xətası" sualında "RTX-9080" sözünü tapa bilmədi; O, oxşar adlarla başqa məhsullar gətirirdi. Hibrid axtarış əlavə edildikdə, dəqiq kod uyğunluğu baş verdi və düzgün məqalələrin qaytarılması nisbəti 58%-dən 92%-ə yüksəldi.

2-ci hal - Yenidən sıralama fərqi. Paralegal k=5 ilə işləyirdi, lakin düzgün bənd çox vaxt 7-10-dur. O, sıralarda qalırdı. k=20 + yenidən sıralama tətbiq edildikdə, ilk 3-lükdə olan düzgün məqalənin nisbəti 61%-dən 94%-ə yüksəldi; Gecikmə yalnız 300 ms artdı - məqbul bir kompromis.

3-cü hal – Kontekstsiz cavab sualı. HR köməkçisində istifadəçi “part-taymerlər necə?” deyə soruşur. Soruşanda sistem aidiyyəti olmayan hissələri gətirdi. Sorğunu yenidən yazmaqla (keçmişdən "illik məzuniyyət" kontekstini çıxararaq və "Yarımçıq işləyən işçilər illik məzuniyyət hüququna malikdirlər" əlavə etməklə) düzgün cavab nisbəti 40%-dən 86%-ə yüksəldi.

Ümumi səhvlər

  • Yalnız semantik axtarışa əsaslanaraq: Məhsul kodu, abbreviatura, müvafiq ad buraxılıb; Hibrid əlavə edin.
  • k-ni çox kiçik saxlamaq: Düzgün parça siyahıya daxil ola bilməz; onu genişləndirin və yenidən dərəcə ilə daraltın.
  • Heç vaxt yenidən sıralama haqqında düşünməyin: İlk axtarış kobuddur; İkinci ağıllı keçid keyfiyyəti əhəmiyyətli dərəcədə yaxşılaşdırır.
  • Əlavə sualların axtarışı: Kontekstsiz sual mənasızlığı axtarır; yenidən yaz.
  • Kor-koranə artan k (yenidən dərəcə olmadan): Model səs-küylə doludur, cavab təhrif olunur və xərclər artır.
Ehtiyatlı olun: Hər bir texnika xərc və gecikmə əlavə edir. Çox sorğu 3 qat axtarış deməkdir, yenidən sıralama əlavə model çağırışı deməkdir. Əvvəlcə sadə hibrid + ağlabatan k ilə başlayın; Həqiqətən lazım olan yerdə ağır texnikaları ölçün və əlavə edin. Ölçmədən əlavə etmək.

Xülasə

  • Top-k geri çağırma və dəqiqlik arasında balansdır; Ümumiyyətlə 4-8 yaxşı başlanğıcdır.
  • Hibrid axtarış semantik axtarışı açar söz (BM25) axtarışı ilə birləşdirir; Dəqiq uyğunluqları bərpa edir.
  • Yenidən sıralama güclü modellə geniş ilkin axtarışdan namizədləri yenidən qiymətləndirir və ən yaxşılarını seçir.
  • Sorğunun çevrilməsi (yenidən yazma, çox sorğu, HyDE) çətin və kontekstsiz sualları axtara bilən edir.
  • Güclü model: geniş gətirmə → hibrid ilə birləşmə → yenidən dərəcə ilə dar; lakin hər bir texnikanı ölçməklə əlavə edin.

Tətbiq tapşırığı

Əvvəlki bölmələrin məlumatları ilə 6 çətin sual hazırlayın: ən azı 2 dəqiq uyğunluq tələb edən (məhsul kodu, abbreviatura, tarix), 2 semantik (müxtəlif sözlərlə eyni mövzu), kontekstsiz 2 cavab sualı. (1) Əvvəlcə hər bir sualı saf semantik axtarış kimi düşünün və hansı hissələrin çıxacağını əl ilə qeyd edin. (2) Hibrid və yenidən sıralama əlavə etməklə eyni sualları yenidən qiymətləndirin. (3) Kontekstsiz əlavə sualları yenidən yazın. Cədvəl şəklində qeyd edin ki, hansı texnika hansı sual tipində fərq yaradır.

yoxlama siyahısı

  • [ ] Mən top-k-nin geri çağırma dəqiqliyi balansı və ağlabatan başlanğıc diapazonu olduğunu bilirəm.
  • [ ] Hibrid axtarışın niyə dəqiq uyğunluqları bərpa etdiyini izah edə bilərəm.
  • [ ] Yenidən sıralanmanın iki pilləli məntiqini tətbiq edə bilərəm (geniş → ağıllı dar).
  • [ ] Mən əlavə sualları kontekstsiz yenidən yazmağın zəruriliyini dərk edirəm.
  • [ ] Təsdiq edirəm ki, ağır texnikaları ölçməklə deyil, ölçməklə əlavə etmişəm.