22. června 2026

Maximální recall: Proč má vyhledávač házet tři sítě, ne jednu

Jakmile odvedete tu těžkou práci se zkomprimováním rozlehlé znalostní báze do čistých indexů, čelíte okamžiku, na kterém se celý systém otáčí. Přijde otázka. Někde v tisíci tabulkách jsou ty tři čtyři, které bot opravdu potřebuje. Najde je?

Tenhle krok — vyhledávání — je výjimečně nemilosrdný, protože jeho selhání jsou nevratná. Každá pozdější fáze umí napravit nedokonalý vstup: generátor může ignorovat irelevantní tabulku, rozhodčí může odmítnout špatný dotaz. Ale nic dál nemůže použít tabulku, která se nikdy nenašla. Falešně pozitivní výsledek je v téhle fázi malá daň. Falešně negativní je fatální. Tahle asymetrie by měla řídit celý návrh a vede k jednomu závěru: ve fázi vyhledávání optimalizujte na recall, ne na přesnost.

Každá jednotlivá síť má díry

Lákavý přístup je vybrat nejlepší metodu vyhledávání a spolehnout se na ni. Problém je, že každá metoda je sama o sobě k něčemu slepá.

Čistě sémantické (vektorové) vyhledávání je skvělé na parafrázi — propojí „stav lidí" s tabulkou o zaměstnancích i bez společných slov — ale může zakopnout o přesné technické termíny a doménový žargon, tedy přesně o to, co se čistě neembedduje. Čistě klíčový nebo modelem řízený výběr je ostrý na explicitní shody a doménovou znalost, ale mine uživatele, který věc popíše, aniž ji kdy pojmenuje. Ať hodíte jakoukoli jednu síť, existuje třída otázek, která jí proklouzne.

Tohle nespravíte hledáním lepší sítě. Spravíte to tím, že hodíte několik najednou a slijete úlovek.

Tři sítě, paralelně

Silný vyhledávač spustí několik nezávislých metod souběžně a slije jejich výsledky. Tři komplementární sítě pokryjí většinu mezer:

Dávkování modelem. Modelu nemůžete ukázat tisíc tabulek naráz, takže je rozdělíte do dávek — po zhruba padesáti — a dávky spustíte paralelně, přičemž žádáte model, ať z každé vybere relevantní tabulky podle otázky, vytažených klíčových slov a lidského názvu a asociací každé tabulky. Tohle je síť, která rozumí kontextu: toleruje překlepy a pády slov a zná doménová propojení, která by klíčová shoda minula — že „zaměstnanec", „pracovník" a „smlouva" míří na tentýž shluk tabulek. Dávkování je to, co jí umožní škálovat na obří schéma bez přetečení kontextu.

Sémantické vyhledávání. Zaembedujte nejen surovou otázku, ale všechno, co jste z ní vytáhli — záměr, texty entit, jejich normalizované formy, klíčová slova — a prohledejte vektorový index na tabulky, jejichž názvy a asociace jsou významově podobné. Držte práh podobnosti, ať zůstanete relevantní, ale garantujte podlahu kandidátů, aby se těžká otázka nikdy nevrátila prázdná. Tohle je síť, která chytá parafrázi a mlhavý význam.

Vyhledávání v asociacích. Klíčová slova otázky porovnejte konkrétně proti ručně psanému a auto-generovanému slovníku. Tohle je síť naladěná na soukromý slovník vaší domény — interní přezdívku, zkratku, termín, který něco znamená jen tady.

A entitní krok z dřívějška vyplatí dividendu: kandidátní tabulky, které už nominovalo rozpoznávání entit, spadnou rovnou do společného fondu. Ve chvíli, kdy tohle běží, máte čtyři nezávislé názory na to, které tabulky jsou důležité.

Sjednocení, ne průnik

Tady je rozhodnutí, které definuje celou strategii: výsledky sjednotíte (union), ne protnete. Necháte si každou tabulku, kterou vynesla jakákoli metoda, ne jen ty, na kterých se shodly.

Pokud je vaším instinktem přesnost, působí to špatně — určitě jsou tabulky, které vybraly všechny tři metody, nejbezpečnější? Jenže ten instinkt optimalizuje špatnou věc. Průnik zahodí přesně ty úlovky, které ospravedlňují více sítí: tabulku, kterou našlo jen sémantické vyhledávání, tu, kterou znal jen slovník. Každá metoda existuje proto, že vidí něco, co ostatní ne, a průnik tenhle příspěvek z principu zahazuje.

Union je správná volba, protože náklady jsou divoce asymetrické. Kandidát navíc, irelevantní, vás stojí trochu kontextu níže v řetězci — a generátor i rozhodčí jsou stejně stavění na to, aby ho prořezali. Chybějící relevantní tabulka vás stojí odpověď: nezodpověditelnou otázku, nebo hůř, sebevědomý dotaz proti špatným datům. Když je jeden druh chyby malá daň a druhý fatální, kloníte se silně k tomu chytit všechno. Lepší pět kandidátů s jedním navíc než čtyři, které tiše vypustily ten, na kterém záleželo.

Recall tady, přesnost později

Krok zpět a tohle je obecný princip systémů s rozšířeným vyhledáváním, ne vrtoch databází. Fáze vyhledávání a fáze uvažování mají jiné úkoly. Úkol vyhledávání je neminout — zaručit, že je správný materiál v místnosti. Úkol uvažování je vybrat — zvolit správný materiál z toho, co tam je. Smíchejte je a dostanete vyhledávač, který je příliš opatrný, vypouští dobré kandidáty, aby vypadal přesně, a hladoví fázi uvažování o možnosti, které už nezíská zpět.

Tak zodpovědnost čistě rozdělíte. Ve vyhledávání házejte široce, sjednocením komplementárních metod, přijměte kandidáty navíc a nechte pozdější fáze — generování, sampling, rozhodčího — udělat přesné prořezání, ve kterém jsou dobré. Hybridní vyhledávání kombinující lexikální, sémantický a doménový signál poráží jakoukoli jednu metodu ne proto, že je každá jednotlivě lepší, ale protože jejich slepá místa se nepřekrývají.

Obava z nákladů se v praxi z velké části vypaří. Dávkování a paralelismus drží i průchod tisícem tabulek rychlý a je to ten druh nízkointeligenčního matchování, který předáte levným, rychlým modelům místo tomu nejdražšímu. Zaplatíte trochu víc v nejlevnější fázi pipeline, abyste umožnili ty drahé — což je přesně ten obchod, který chcete.

Trefte vyhledávání a všechno po něm má šanci. Zkazte ho — minete tu jednu tabulku — a nejchytřejší model na světě vám napíše bezchybný dotaz proti datům, která na otázku odpovědět nemůžou.


Stává se, že váš bot prostě... mine správná data a pak sebevědomě odpoví? To je skoro vždy problém recallu ve vyhledávání, ne problém uvažování. Pojďme se podívat, kolik sítí ten váš hází.