Jednotka 4 / 11

Stratégie vyhľadávania: Top-k, Hybrid, Re-ranking

zisky:

  • Implementácia hybridného vyhľadávania, ktorá kombinuje výber top-k a sémantické vyhľadávanie a vyhľadávanie podľa kľúčových slov
  • Zvýšenie presnosti prvého vyhľadávania s prehodnotením
  • Uľahčenie vyhľadávania v zložitých otázkach pomocou techník, ako je transformácia dotazov a HyDE

Dokumenty ste pekne skartovali a vložili do vektorovej databázy. Teraz skutočná práca: získavanie správnych kúskov, keď používateľ položí otázku. Toto sa nazýva vyhľadávanie a je základom kvality RAG. Pamätajte na frázu „Kvalita získavania = kvalita RAG“; Táto jednotka je presne umenie zlepšovania tejto kvality. Pokryjeme praktické techniky od výberu top-k po hybridné vyhľadávanie, od prehodnotenia po transformáciu dopytov.

Top-k: Koľko kusov prinesieme?

Najzákladnejšie nastavenie: koľko kusov (k) vrátiť z vyhľadávania. Ak prinesiete menej (k=1), existuje vysoké riziko, že vám chýba správny kus; Ak pridáte príliš veľa (k=20), pridá to do modelu hluk a cena tokenu sa zvýši.

Rozlišujte dva pojmy. Odvolanie: rýchlosť, pri ktorej je správny kus medzi tými, ktoré boli nájdené. Presnosť: rýchlosť, s akou je to, čo sa získava, relevantné. Zvýšenie k zvyšuje vybavovanie, ale znižuje presnosť. Cieľom je vyvážiť tieto dve veci.

top-k

Vplyv

vhodná situácia

1-3

Vysoká presnosť, riziko chyby

Jednoduché otázky s jednou odpoveďou

4-8

Zostatok; väčšina scenárov

Všeobecné podnikové RAG

10-20

Vyššia pamäť, zvyšuje sa hluk

S prehodnotením (nižšie)

Tip: Bežný a účinný vzor: načítajte široký (k=20), potom zúžte s prehodnotením (prvé 4). Takto vám nič neunikne a modelu dáte čistý kontext.

Hybridné vyhľadávanie: Sila dvoch vyhľadávaní

Sémantické (vektorové) vyhľadávanie zachytáva význam, ale chýba mu: úplný kód produktu ("XR-4471"), zriedkavá skratka, vlastný názov, číslo verzie. Pre tieto úlohy presnej zhody je veľmi dobré vyhľadávanie kľúčových slov zo starej školy – najmä klasický algoritmus s názvom BM25.

Hybridné vyhľadávanie spája tieto dve veci: funguje sémantické vyhľadávanie aj vyhľadávanie podľa kľúčových slov, ktoré kombinuje výsledky. Teda v otázke ako „Záručná doba na

Zlúčenie sa zvyčajne vykonáva pomocou RRF (Reciprocal Rank Fusion): skladba, ktorá je v oboch zoznamoch vyššia, sa dostane dopredu.

# Hybridné vyhľadávanie (koncepčné)sem = vector_search(otázka, k=20) # významový kľúč = bm25_search(otázka, k=20) # fullwordresult = rrf_merge(sem, kľúč)[:8] # fuse the two, top 8

Prehodnotenie: Druhý a inteligentnejší pas

Prvý hovor môže byť rýchly, ale hrubý. Opätovné hodnotenie hodnotí kandidátov vrátených pri prvom vyhľadávaní jeden po druhom pomocou výkonnejšieho modelu (zvyčajne krížového kódovača – modelu, ktorý číta otázku a pasáž spolu a hodnotí relevantnosť) a posúva tých najrelevantnejších na začiatok.

Logika je takáto: prvé vyhľadávanie priradí veľký počet kandidátov na odvolanie (20 kandidátov), ​​re-ranker vyberie najlepších 4 pre presnosť. Tento dvojstupňový prístup je oveľa presnejší ako jednostupňové vyhľadávanie. Stojí to určité oneskorenie a dodatočné spracovanie; Prínosom je výrazné zvýšenie kvality.

# Dvojfázové vyhľadávanie (koncepčných) kandidátov = hybrid_search(otázka, k=20) # široké, rýchle skóre = reranker.score(otázka, kandidáti) # skóre relevantnosti pre každý kontext kandidáta = hodnotené.rank()[:4] # top 4

Transformácia dotazu

Niekedy nie je problém v hľadaní, ale v samotnej otázke. Ak sa používateľ spýta „a čo vzdialení pracovníci?“ “, toto nemožno hľadať samostatne (nie je jasné, čo je pre vzdialených pracovníkov). Tu sú techniky transformácie dotazov:

  • Prepísať: Použite históriu konverzácií, aby sa otázka stala samostatnou: „Na čo majú vzdialení pracovníci nárok na ročnú dovolenku?“
  • Multi-query: Vygenerujte 3 rôzne výrazy tej istej otázky, hľadajte so všetkými, kombinujte výsledky. Rôzne slová nachádzajú rôzne kúsky.
  • HyDE (Hypothetical Document Embeddings): Najprv vytlačte „možnú odpoveď“ na model, potom vložte a hľadajte túto imaginárnu odpoveď. Imaginárna odpoveď sa niekedy nájde lepšie, pretože je slovami bližšie k skutočnému dokumentu.

# Varianty viacerých dotazov = model.uret("Vyjadrite túto otázku 3 rôznymi spôsobmi: " + question)tum_sonuc = []pre v vo variantoch: all_sonuc += vector_intermediate(v, k=6)context = singular_and_order(tum_result)[:6]

Slabé vyhľadávanie / silné vyhľadávanie

Slabé (jednostupňové, len sémantika, konštanta k=3):

result = vector_search(quest, k=3)# Problém: chýba kód produktu, v zložitých otázkach nie je možné zadať správnu časť 3.

Výkonný (hybridný + široký + re-ranking + multi-query v prípade potreby):

kandidáti = hybrid_search(prepísať(otázka, minulosť), k=20)kontext = reranker.score(otázka, kandidáti).first(4)# Zachytená je presná zhoda aj význam; Ide o 4 najlepšie modely.

Tri mini puzdrá

Prípad 1 – Kód produktu unikol. Čisto sémantické vyhľadávanie v tíme podpory nenašlo doslovne „RTX-9080“ v otázke „Chyba ovládača RTX-9080“; Prinášal ďalšie produkty s podobnými názvami. Keď sa pridalo hybridné vyhľadávanie, došlo k presnej zhode kódu a miera vrátenia správnych článkov sa zvýšila z 58 % na 92 ​​%.

Prípad 2 – Zmena poradia. Právnik pracoval s k=5, ale správna položka je väčšinou 7-10. Zostal v radoch. Keď sa zaviedlo k=20 + re-ranking, miera toho, že správny článok bol v top 3, sa zvýšila zo 61 % na 94 %; Latencia sa zvýšila iba o 300 ms – prijateľný kompromis.

Prípad 3 – Následná otázka bez kontextu. V HR asistentke sa používateľ pýta „a čo brigádnici?“ Keď som sa pýtal, systém priniesol nepodstatné časti. Prepísaním dotazu (vytiahnutím kontextu „ročná dovolenka“ z minulosti a pridaním „Zamestnanci na čiastočný úväzok majú nárok na ročnú dovolenku“) sa miera správnych odpovedí zvýšila zo 40 % na 86 %.

Časté chyby

  • Spoliehanie sa výlučne na sémantické vyhľadávanie: chýba kód produktu, skratka, vlastné meno; Pridajte hybrid.
  • Udržiavanie príliš malého k: Správny kus nemôže vstúpiť do zoznamu; urobiť ho širokým a zúžiť re-rankom.
  • Nikdy nepremýšľať o zmene poradia: Prvé hľadanie je neslušné; Druhý smart pass výrazne zlepšuje kvalitu.
  • Vyhľadávanie nadväzujúcich otázok tak, ako je: Otázka bez kontextu hľadá nezmyselné; prepísať.
  • Slepo rastúce k (bez prehodnotenia): Model je naplnený šumom, odozva je skreslená a náklady sa zvyšujú.
Pozor: Každá technika zvyšuje náklady a oneskorenie. Viacnásobný dopyt znamená 3-násobné vyhľadávanie, zmena poradia znamená dodatočné volanie modelu. Začnite najprv s jednoduchým hybridom + rozumné k; Zmerajte a pridajte ťažké techniky tam, kde je to naozaj potrebné. Pridávanie bez merania.

V súhrne

  • Top-k je rovnováha medzi vyvolaním a presnosťou; Vo všeobecnosti je 4-8 dobrý začiatok.
  • Hybridné vyhľadávanie kombinuje sémantické vyhľadávanie s vyhľadávaním podľa kľúčových slov (BM25); Obnovuje presné zhody.
  • Re-ranking prehodnotí kandidátov zo širokého počiatočného vyhľadávania pomocou robustného modelu a vyberie tých najlepších.
  • Transformácia dopytov (prepisovanie, viacnásobné dopytovanie, HyDE) umožňuje vyhľadávať zložité a bezkontextové otázky.
  • Silný vzor: široký aport → splynutie s hybridom → úzky s prehodnotením; ale pridajte každú techniku ​​jej meraním.

Aplikačná úloha

Pripravte si 6 náročných otázok s údajmi z predchádzajúcich jednotiek: aspoň 2 vyžadujúce presné zhody (kód produktu, skratka, dátum), 2 sémantické (rovnaká téma s rôznymi slovami), 2 doplňujúce otázky bez kontextu. (1) Najprv pomyslite na každú otázku ako na čisté sémantické vyhľadávanie a manuálne označte, ktoré časti sa objavia. (2) Prehodnoťte rovnaké otázky s pridaným hybridom a prehodnotením. (3) Prepíšte doplňujúce otázky bez kontextu. V tabuľkovej forme si poznačte, ktorá technika robí rozdiel v ktorom type otázky.

kontrolný zoznam

  • [ ] Viem, že top-k je vyváženie presnosti vyvolania a rozumného štartovacieho rozsahu.
  • [ ] Viem vysvetliť, prečo hybridné vyhľadávanie obnovuje presné zhody.
  • [ ] Môžem použiť dvojkrokovú logiku prehodnotenia (široká → inteligentná úzka).
  • [ ] Uznávam potrebu prepisovať doplňujúce otázky bez kontextu.
  • [ ] Potvrdzujem, že som pridal ťažké techniky meraním, nie meraním.