zisky:
- Implementace hybridního vyhledávání, které kombinuje výběr top-k a sémantické vyhledávání a vyhledávání podle klíčových slov
- Zvýšení přesnosti prvního vyhledávání s přeřazením
- Usnadnění vyhledávání obtížných otázek pomocí technik, jako je transformace dotazů a HyDE
Dokumenty jste pěkně skartovali a vložili do vektorové databáze. Nyní skutečná práce: načítání správných kusů, když uživatel položí otázku. Toto se nazývá retrieval a je páteří kvality RAG. Pamatujte na frázi „Kvalita vyhledávání = kvalita RAG“; Tato jednotka je přesně uměním zlepšit tuto kvalitu. Probereme praktické techniky od výběru top-k po hybridní vyhledávání, od přehodnocení po transformaci dotazů.
Top-k: Kolik kusů přineseme?
Nejzákladnější nastavení: kolik kusů (k) vrátit z vyhledávání. Pokud přinesete méně (k=1), existuje vysoké riziko, že vám chybí správný kus; Pokud přidáte příliš mnoho (k=20), přidá se do modelu šum a cena tokenu se zvýší.
Rozlišujte mezi dvěma pojmy. Přivolání: rychlost, při které je správný dílek mezi získanými. Přesnost: rychlost, s jakou je to, co je načteno, relevantní. Zvýšení k zvyšuje paměť, ale snižuje přesnost. Cílem je vyvážit obojí.
top-k
Dopad
vhodná situace
1-3
Vysoká přesnost, riziko chyby
Jednoduché otázky s jednou odpovědí
4-8
Zůstatek; většina scénářů
Obecný podnikový RAG
10-20
Vyšší vyvolání, zvýšení šumu
S přehodnocením (níže)
Tip: Běžný a účinný vzor: načtěte široký (k=20), poté zužte s přehodnocením (první 4). Nic vám tak neunikne a modelu dáte čistý kontext.
Hybridní vyhledávání: Síla dvou vyhledávání
Sémantické (vektorové) vyhledávání zachycuje význam, ale chybí věci: úplný kód produktu ("XR-4471"), vzácná zkratka, vlastní jméno, číslo verze. Pro tyto úkoly přesné shody je velmi dobré staré vyhledávání klíčových slov – zejména klasický algoritmus nazvaný BM25.
Hybridní vyhledávání kombinuje obojí: funguje jak sémantické, tak klíčové vyhledávání, které kombinuje výsledky. Tedy v otázce jako „Záruční doba na
Sloučení se obvykle provádí pomocí RRF (Reciprocal Rank Fusion): stopa, která je v obou seznamech výše, se dostane dopředu.
# Hybridní vyhledávání (koncepční)sem = vector_search(otázka, k=20) # významový klíč = bm25_search(otázka, k=20) # fullwordresult = rrf_merge(sem, klíč)[:8] # fuse the two, top 8
Re-ranking: Second a Smarter Pass
První hovor může být rychlý, ale hrubý. Přehodnocením se hodnotí kandidáti vrácení prvním vyhledáváním jeden po druhém pomocí výkonnějšího modelu (obvykle křížový kodér – model, který čte otázku a pasáž dohromady a hodnotí relevanci) a ty nejrelevantnější přesune na začátek.
Logika je následující: první vyhledávání přiřadí velký počet kandidátů na odvolání (20 kandidátů), re-ranker vybere nejlepší 4 pro přesnost. Tento dvoustupňový přístup je mnohem přesnější než jednostupňové vyhledávání. Stojí to určité zpoždění a dodatečné zpracování; Přínosem je výrazné zvýšení kvality.
# Dvoufázové vyhledávání (koncepční) kandidáti = hybrid_search(otázka, k=20) # široké, rychlé skóre = reranker.score(otázka, kandidáti) # skóre relevance pro každý kontext kandidáta = hodnoceno.rank()[:4] # top 4
Transformace dotazu
Někdy není problém v hledání, ale v samotné otázce. Pokud se uživatel zeptá „a co vzdálení pracovníci?“ “, toto nelze hledat samostatně (není jasné, co je pro vzdálené pracovníky). Zde jsou techniky transformace dotazů:
- Přepsat: Použijte historii konverzace, aby se otázka stala samostatnou: "Na co mají vzdálení pracovníci nárok na roční dovolenou?"
- Multi-query: Generujte 3 různé výrazy stejné otázky, hledejte se všemi, spojte výsledky. Různá slova nacházejí různé kousky.
- HyDE (Hypothetical Document Embeddings): Nejprve vytiskněte „možnou odpověď“ k modelu, poté ji vložte a vyhledejte tuto imaginární odpověď. Imaginární odpověď se někdy najde lépe, protože se slovy blíží skutečnému dokumentu.
# Multi-query (koncepční) varianty = model.uret("Vyjádřete tuto otázku 3 různými způsoby: " + question)tum_sonuc = []pro v ve variantách: all_sonuc += vector_intermediate(v, k=6)context = singular_and_order(tum_result)[:6]
Slabé vyhledávání / silné vyhledávání
Slabé (jednostupňové, pouze sémantika, konstantní k=3):
result = vector_search(quest, k=3)# Problém: Chybí kód produktu, nelze zadat správnou část 3 v obtížných otázkách.
Výkonné (hybridní + widek + re-ranking + multi-query v případě potřeby):
kandidáti = hybrid_search(rewrite(otázka, minulost), k=20)kontext = reranker.score(otázka, kandidáti).first(4)# Je zachycena přesná shoda i význam; Jde o 4 nejlepší modely.
Tři mini pouzdra
Případ 1 – Kód produktu unikl. Čistě sémantické vyhledávání v týmu podpory nemohlo najít doslovně „RTX-9080“ v otázce „Chyba ovladače RTX-9080“; Přivážel další produkty s podobnými názvy. Když bylo přidáno hybridní vyhledávání, došlo k přesné shodě kódu a míra vracení správných článků se zvýšila z 58 % na 92 %.
Případ 2 – Rozdíl v přeřazení. Právník pracoval s k=5, ale správná položka je většinou 7-10. Zůstal v řadách. Když bylo zavedeno k=20 + re-ranking, míra toho, že správný článek byl v top 3, se zvýšila z 61 % na 94 %; Latence se zvýšila pouze o 300 ms – přijatelný kompromis.
Případ 3 – Následná otázka bez kontextu. V HR asistentce se uživatel ptá „a co brigádníci?“ Když jsem se zeptal, systém přinesl nepodstatné části. Přepsáním dotazu (vytažením kontextu „roční dovolené“ z minulosti a přidáním „Zaměstnanci na částečný úvazek mají nárok na dovolenou za kalendářní rok“) se zvýšila míra správných odpovědí ze 40 % na 86 %.
Časté chyby
- Spoléhání se pouze na sémantické vyhledávání: Chybí kód produktu, zkratka, vlastní jméno; Přidejte hybrid.
- Zachování příliš malého k: Správný kus nemůže vstoupit do seznamu; udělejte to široké a zužte re-rank.
- Nikdy nepřemýšlejte o přehodnocení: První hledání je neslušné; Druhý chytrý průchod výrazně zlepšuje kvalitu.
- Hledání navazujících otázek tak, jak je: Otázka bez kontextu hledá nesmyslné; přepsat.
- Slepé zvýšení k (bez přehodnocení): Model je zaplněn šumem, odezva je zkreslená a náklady rostou.
Pozor: Každá technika zvyšuje náklady a zpoždění. Multi-query znamená 3-násobné vyhledávání, re-ranking znamená další model volání. Začněte nejprve jednoduchým hybridem + rozumné k; Změřte a přidejte těžké techniky tam, kde je to opravdu potřeba. Přidávání bez měření.
V souhrnu
- Top-k je rovnováha mezi vyvoláním a přesností; Obecně 4-8 je dobrý začátek.
- Hybridní vyhledávání kombinuje sémantické vyhledávání s vyhledáváním podle klíčových slov (BM25); Obnovuje přesné shody.
- Re-ranking přehodnotí kandidáty z širokého počátečního vyhledávání pomocí robustního modelu a vybere ty nejlepší.
- Transformace dotazů (přepisování, více dotazů, HyDE) umožňuje vyhledávat obtížné a bezkontextové otázky.
- Silný vzor: široký aport → splynutí s hybridem → úzký s přeřazením; ale přidejte každou techniku měřením.
Aplikační úkol
Připravte si 6 obtížných otázek s údaji z předchozích celků: alespoň 2 vyžadující přesnou shodu (kód produktu, zkratka, datum), 2 sémantické (stejné téma s různými slovy), 2 navazující otázky bez kontextu. (1) Nejprve považujte každou otázku za čisté sémantické vyhledávání a ručně označte, které části se objeví. (2) Znovu vyhodnoťte stejné otázky s přidáním hybridního a nového pořadí. (3) Přepište doplňující otázky bez kontextu. Poznamenejte si v tabulkové formě, která technika se liší v jakém typu otázky.
kontrolní seznam
- [ ] Vím, že top-k je vyvážení s přesností vyvolání a rozumný startovní rozsah.
- [ ] Dokážu vysvětlit, proč hybridní vyhledávání obnovuje přesné shody.
- [ ] Mohu použít dvoukrokovou logiku přeřazení (široké → chytré úzké).
- [ ] Uznávám potřebu přepsat doplňující otázky bez kontextu.
- [ ] Potvrzuji, že jsem přidal těžké techniky měřením, nikoli měřením.