Vienetas 4 / 11

Paieškos strategijos: Top-k, hibridinis, pakartotinis reitingavimas

Pelnas:

  • Diegiama hibridinė paieška, apjungianti top-k pasirinkimą ir semantinę bei raktinių žodžių paiešką
  • Pirmosios paieškos tikslumo padidinimas perrikiuojant
  • Padaryti sudėtingus klausimus lengviau ieškomus naudojant tokius metodus kaip užklausų transformavimas ir HyDE

Jūs gražiai susmulkinote dokumentus ir įtraukėte juos į vektorinę duomenų bazę. Dabar tikrasis darbas: reikiamų dalių atnešimas, kai vartotojas užduoda klausimą. Tai vadinama paieška ir yra RAG kokybės pagrindas. Prisiminkite frazę „Retrieval quality = RAG quality“; Šis įrenginys yra būtent tos kokybės gerinimo menas. Apžvelgsime praktinius metodus nuo aukščiausios kokybės atrankos iki hibridinės paieškos, nuo pakartotinio reitingavimo iki užklausos transformavimo.

Top-k: kiek dalių atsinešime?

Paprasčiausias nustatymas: kiek vienetų (k) grąžinti iš paieškos. Jei atsinešate mažiau (k=1), yra didelė rizika praleisti tinkamą gabalą; Jei pridėsite per daug (k=20), tai padidins modelio triukšmą ir padidės žetonų kaina.

Atskirkite dvi sąvokas. Prisiminkite: greitis, kuriuo teisingas kūrinys yra tarp gautų. Tikslumas: greitis, kuriuo tai, kas gaunama, yra aktuali. Padidinus k, padidėja prisiminimas, bet sumažėja tikslumas. Tikslas yra subalansuoti abu.

top-k

Poveikis

tinkama situacija

1-3

Didelis tikslumas, rizika praleisti

Paprasti, vieno atsakymo klausimai

4-8

Balansas; dauguma scenarijų

Bendroji įmonių RAG

10-20

Didesnis prisiminimas, padidėja triukšmas

Su pakartotiniu reitingavimu (toliau)

Patarimas: įprastas ir galingas raštas: platinkite (k = 20), tada susiaurinkite ir pakeiskite reitingą (4 geriausi). Taip nieko nepraleisite ir modeliui suteiksite švarų kontekstą.

Hibridinė paieška: dviejų paieškų galia

Semantinė (vektorinė) paieška užfiksuoja prasmę, bet praleidžia dalykų: pilną produkto kodą ("XR-4471"), retą santrumpą, tikrąjį pavadinimą, versijos numerį. Šioms tikslios atitikties užduotims atlikti labai tinka senosios mokyklos raktinių žodžių paieška, ypač klasikinis algoritmas, vadinamas BM25.

Hibridinė paieška sujungia dvi: veikia ir semantinė, ir raktinių žodžių paieška, derinant rezultatus. Taigi tokiu klausimu kaip „Garantinis laikotarpis

Sujungimas paprastai atliekamas naudojant RRF (Reciprocal Rank Fusion): takelis, kuris yra aukščiau abiejuose sąrašuose, yra į priekį.

# Hibridinis paieškos (konceptualus)sem = vektorinis_paieška(klausimas, k=20) # prasmėsraktas = bm25_search(klausimas, k=20) # fullwordresult = rrf_merge(sem, key)[:8] # sujungti du, top 8

Pakartotinis reitingas: antrasis ir protingesnis leidimas

Pirmasis skambutis gali būti greitas, bet nemandagus. Atliekant pakartotinį reitingą pirmoje paieškoje grąžinti kandidatai vertinami po vieną naudojant galingesnį modelį (dažniausiai kryžminį kodavimo įrenginį – modelį, kuris kartu skaito klausimą ir ištrauką bei įvertina tinkamumą), o aktualiausi perkeliami į viršų.

Logika tokia: pirmoje paieškoje priskiriamas didelis skaičius atšaukimui skirtų kandidatų (20 kandidatų), perrinkėjas atrenka geriausius 4 tikslumui. Šis dviejų etapų metodas yra daug tikslesnis nei vieno etapo paieška. Tai kainuoja šiek tiek vėlavimo ir papildomo apdorojimo; Pelnas yra reikšmingas kokybės padidėjimas.

# Dviejų etapų paieškos (konceptualūs) kandidatai = hibridinis_paieška(klausimas, k = 20) # platus, greitas rezultatas = reranker.score(klausimas, kandidatai) # kiekvieno kandidato konteksto tinkamumo balas = reitinguotas.rankas()[:4] # 4 geriausi

Užklausos transformavimas

Kartais problema slypi ne paieškoje, o pačiame klausime. Jei vartotojas klausia „o kaip dėl nuotolinių darbuotojų? “, to negalima ieškoti vien (neaišku, kas skirta nuotoliniams darbuotojams). Štai užklausos transformavimo būdai:

  • Perrašyti: naudokite pokalbių istoriją, kad klausimas būtų atskiras: „Kokios nuotolinės tarnybos turi teisę į kasmetines atostogas?
  • Kelios užklausos: sugeneruokite 3 skirtingas to paties klausimo išraiškas, ieškokite su visomis, sujunkite rezultatus. Skirtingi žodžiai randa skirtingas dalis.
  • HyDE (hipotetiniai dokumentų įterpimai): pirmiausia atspausdinkite „galimą atsakymą“ į modelį, tada įdėkite ir ieškokite to įsivaizduojamo atsakymo. Išgalvotas atsakymas kartais randamas geriau, nes žodžiais jis artimesnis tikram dokumentui.

# Kelių užklausų (konceptualūs) variantai = model.uret("Išreikškite šį klausimą 3 skirtingais būdais: " + klausimas)tum_sonuc = []for v variantuose: all_sonuc += vector_intermediate(v, k=6)context = singular_and_order(tum_result)[:6]

Silpnas paėmimas / stiprus atkūrimas

Silpnas (vienpakopis, tik semantika, konstanta k=3):

rezultatas = vector_search(klausimas, k=3)# Problema: praleistas prekės kodas, sunku įvesti teisingą 3 dalį.

Galingas (hibridas + Widek + pakartotinis reitingavimas + kelių užklausų, jei reikia):

kandidatai = hibridas_paieška(perrašyti(klausimas, praeitis), k=20)kontekstas = perreitinguotojas.balas(klausimas, kandidatai).first(4)# Užfiksuojama ir tiksli atitiktis, ir reikšmė; Jis patenka į 4 geriausius modelius.

Trys mini dėklai

1 atvejis – pašalintas produkto kodas. Atliekant gryną semantinę paiešką palaikymo komandoje nepavyko rasti "RTX-9080" pažodžiui klausime "RTX-9080 tvarkyklės klaida"; Jis atveždavo kitų produktų panašiais pavadinimais. Pridėjus hibridinę paiešką, įvyko tiksli kodų atitiktis ir teisingų straipsnių grąžinimo rodiklis padidėjo nuo 58% iki 92%.

2 atvejis – perskirstymo skirtumas. Pagalbininkas dirbo su k=5, bet teisingas elementas dažniausiai yra 7–10. Jis liko eilėje. Kai buvo įvestas k=20 + perskirstymas, teisingo straipsnio patekimo į geriausiųjų 3 rodiklis padidėjo nuo 61 % iki 94 %; Vėlavimas padidėjo tik 300 ms – priimtinas kompromisas.

3 atvejis. Tolesnis klausimas be konteksto. HR asistente vartotojas klausia „o kaip su ne visą darbo dieną dirbančiais darbuotojais? Kai paklausiau, sistema atnešė nereikšmingų dalių. Perrašant užklausą (ištraukus „kasmetinių atostogų“ kontekstą iš praeities ir pridėjus „Ne visą darbo dieną dirbantys asmenys turi teisę į kasmetines atostogas“), teisingų atsakymų rodiklis išaugo nuo 40% iki 86%.

Dažnos klaidos

  • Pasikliaujant vien semantine paieška: praleistas prekės kodas, santrumpa, tikrasis pavadinimas; Pridėti hibridą.
  • Išlaikant k per mažą: teisingas gabalas negali patekti į sąrašą; paverskite jį plačiu ir susiaurinkite perstatydami rangą.
  • Niekada negalvoju apie pakartotinį reitingavimą: pirmoji paieška yra grubi; Antrasis išmanusis leidimas žymiai pagerina kokybę.
  • Tolesnių klausimų paieška tokia, kokia yra: Klausimas be konteksto ieško beprasmių; perrašyti.
  • Aklai didėjantis k (be reitingo): modelis užpildytas triukšmu, atsakas iškraipomas, o kaina didėja.
Saugokitės: kiekviena technika padidina išlaidas ir vėluoja. Keli užklausa reiškia 3 kartų paiešką, pakartotinis reitingavimas reiškia papildomą modelio iškvietimą. Pradėkite nuo paprasto hibrido + protingas k pirmiausia; Išmatuokite ir pridėkite sunkiųjų technikų ten, kur tikrai reikia. Pridedama be matavimo.

Apibendrinant

  • Top-k yra balansas tarp prisiminimo ir tikslumo; Paprastai 4-8 yra gera pradžia.
  • Hibridinė paieška sujungia semantinę paiešką su raktinio žodžio (BM25) paieška; Atkuria tikslias atitiktis.
  • Pakartotinis reitingavimas iš naujo įvertina kandidatus iš plačios pradinės paieškos naudojant patikimą modelį ir atrenka geriausius.
  • Užklausos transformacija (perrašymas, kelių užklausų, HyDE) leidžia ieškoti sudėtingų ir be konteksto klausimų.
  • Stiprus raštas: platus paleidimas → sujungti su hibridu → siauras su pertvarkymu; bet pridėkite kiekvieną techniką ją išmatuodami.

Taikymo užduotis

Paruoškite 6 sudėtingus klausimus su duomenimis iš ankstesnių vienetų: bent 2 reikalaujantys tikslios atitikties (produkto kodas, santrumpa, data), 2 semantiniai (ta pati tema su skirtingais žodžiais), 2 tolesni klausimai be konteksto. (1) Pirmiausia pagalvokite apie kiekvieną klausimą kaip apie gryną semantinę paiešką ir rankiniu būdu pažymėkite, kurios dalys atsiras. (2) Iš naujo įvertinkite tuos pačius klausimus, pridėdami mišrų ir pakartotinį reitingavimą. (3) Perrašykite tolesnius klausimus be konteksto. Lentelės pavidalu pažymėkite, kokia metodika lemia, kokio tipo klausimą.

kontrolinis sąrašas

  • [ ] Žinau, kad top-k yra atšaukimo ir tikslumo balansas ir pagrįstas pradinis diapazonas.
  • [ ] Galiu paaiškinti, kodėl hibridinė paieška atkuria tikslias atitiktis.
  • [ ] Galiu taikyti dviejų žingsnių perskirstymo logiką (platus → protingas siauras).
  • [ ] Suprantu, kad reikia perrašyti tolesnius klausimus be konteksto.
  • [ ] Patvirtinu, kad sunkius metodus pridėjau matuodamas, o ne matuodamas.