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.