# Proč RAG halucinuje: tři místa, kde vzniká chyba, a jak je změřit

Zdroj: https://warpy.cz/blog/proc-rag-halucinuje-tri-mista-kde-vznika-chyba-a-jak-je-zmerit

Publikováno: 2026-11-12T08:25:15.000Z  
Aktualizováno: 2026-11-12T08:25:15.000Z

Redakce: [Warpy AI lab](https://warpy.cz/o-nas).

Rubrika: [AI v praxi](https://warpy.cz/ai-novinky/rubrika/praxe/llms.txt). Přibližná doba čtení: 7 min.

Když RAG odpoví špatně, chyba většinou není v modelu. Změřili jsme vlastní index: z padesáti nejlepších výsledků odpovídaly na dotaz čtyři. Tři místa, kde chyba vzniká, a jak je změřit.

![Magazínový plakát rubriky Praxe s tmavým pozadím a titulkem o tom, proč RAG halucinuje a kde vzniká chyba](https://warpy.cz/blog-media/0d494abc-8268-4b10-a80f-6f2ea9c29146.webp)

## Proč RAG halucinuje: tři místa, kde vzniká chyba, a jak je změřit

Když RAG odpoví špatně, chyba většinou není v modelu. Změřili jsme to na vlastním korpusu: u deseti dotazů odpovídaly na otázku čtyři z padesáti nejlepších výsledků a pět nejlepších úryvků poskytlo modelu v mediánu 554 znaků podkladu. Model dostane pár nesouvisejících vět a přesto musí odpovědět. Chyba vzniká na třech místech: při dělení textu, při hledání a při sestavení promptu.

| Místo | Co se pokazí | Naměřené číslo (10. 11. 2026) |
| --- | --- | --- |
| 1\. Dělení textu | úryvek ztratí definici, podmínku nebo kontext | medián 126 znaků, 88,6 % úryvků má pod 200 znaků, 33,5 % dokumentů dodá jediný úryvek |
| 2\. Hledání | vrátí věty se stejnými slovy a jiným významem | 4 z 50 výsledků odpovídaly na dotaz, u 4 z 10 dotazů přišlo všech 5 výsledků z jediného zdroje |
| 3\. Sestavení promptu | model odpoví i tam, kde podklad chybí | 98,3 % úryvků napsal jazykový model, ověřených je 15,2 % |

### Odkud čísla jsou

Měřili jsme na vlastním výzkumném korpusu, který Warpy používá pro rešerše. V době měření v něm bylo 316 099 úryvků z 16 481 dokumentů: příspěvky z Redditu, záznamy z arXivu a GitHubu, přepisy videí, články z webu a poznámky z vlastní práce. Úryvek je jedna věta nebo krátký fakt, který z dokumentu vytáhl jazykový model. Index jsme prohledali lexikálním vyhledávačem, tedy podle slov a ne podle významu, a vždy jsme brali pět nejlepších výsledků. Devět z deseti dotazů jsme napsali česky; formulovali jsme je tak, jak se ptá člověk z firmy, která RAG staví.

Korpus je z 95 procent anglický. To je pro českou firmu samo o sobě důležitá informace: index z cizojazyčných materiálů může odpovídat na český dotaz špatně i tehdy, když je technicky v pořádku. Nejde o benchmark RAG jako technologie. Jde o diagnostiku jednoho reálného indexu, postaveného bez vektorového vyhledávání a bez přerovnávání. Právě proto jsou na něm chyby vidět.

### 1\. Dělení textu: úryvek, který neumí odpovědět sám

První místo je dělení dokumentů na úryvky. Krátký úryvek ztratí všechno, co k němu patřilo: definici pojmu, podmínku platnosti, výjimku. Model pak čte větu bez okolí a doplňuje ji z toho, co si pamatuje z tréninku. Halucinace vzniká i tehdy, když vyhledávač našel správný dokument.

V našem korpusu je medián úryvku 126 znaků a devadesátý percentil 205 znaků. Pod 200 znaků má 88,6 procenta úryvků, pod 100 znaků 29,8 procenta. Když jich vyhledávač vrátí pět, model dostane zhruba 630 znaků podkladu. V našich deseti dotazech byl medián součtu pěti výsledků 554 znaků.

Druhé číslo ukazuje něco jiného: 5 523 dokumentů z 16 481, tedy 33,5 procenta, dodalo do indexu jediný úryvek. Z takového dokumentu se nedá poznat, o čem je, a model nemá jak zjistit, jestli věta platí obecně, nebo jen v jedné kapitole.

Jak to změřit: spočítejte medián a devadesátý percentil délky úryvku, podíl úryvků pod 200 znaků a podíl dokumentů, které přispěly jediným úryvkem. Když vyjde medián pod 200 znaků, úryvky nenesou kontext a RAG bude halucinovat častěji, i s dobrým modelem.

Co s tím: delší úryvky, které respektují strukturu dokumentu (nadpis, seznam, tabulka), a ke každému úryvku krátká věta, o čem je. Anthropic v experimentu s takovým popisem snížil podíl nezdařených vyhledání o 35 procent (měřeno v top 20 úryvcích).

### 2\. Hledání: stejná slova, jiný význam

Druhé místo je vyhledání. Model nedostane dokument, dostane pět úryvků, které vybral vyhledávač. Když vybere špatně, model nemá z čeho odpovědět.

Náš test to ukázal doslova. Dotaz „proč RAG halucinuje“ vrátil pět vět o linuxové složce /proc: skript na výpis procesů, sandbox bwrap, mazání cache. Důvod je mechanický. Vyhledávač odstraní diakritiku při indexaci i při hledání, takže se české slovo „proč“ změní na „proc“. To se v korpusu vyskytuje jako cesta /proc v 85 úryvcích. Slovo „halucinuje“ v korpusu není ani jednou, kořen „halucin“ najdete v pěti úryvcích z 316 099.

U deseti dotazů jsme ručně hodnotili, jestli výsledek odpovídá dotazu. Odpovídaly čtyři výsledky z padesáti. U čtyř dotazů přišlo všech pět výsledků z jediného zdroje. Nejhorší případ byl dotaz na GDPR a lokální AI: pět vět o tom, že někdo testoval DGX Spark, dohromady 262 znaků. Model dostal pětkrát skoro totéž a k otázce nic.

Jak to změřit: připravte sadu dotazů, u kterých víte, který úryvek je správná odpověď, a měřte, jak často se objeví v prvních pěti výsledcích. Zároveň počítejte, kolik různých zdrojů těch pět výsledků má. Když je zdroj jeden, model nemá jak ověřit, jestli úryvek není výjimka.

Co s tím: kombinovat hledání podle slov s hledáním podle významu (vektory), přidat přerovnání výsledků a pro češtinu ošetřit diakritiku. Anthropic u kombinace obojího naměřil o 49 procent méně nezdařených vyhledání, s přerovnáním o 67 procent (opět v top 20 úryvcích).

### 3\. Sestavení promptu: podklad, který už je parafráze

Třetí místo je to, co se dostane do promptu. Tady je chyba nejméně viditelná: podklad sám může být text od modelu.

V našem korpusu napsal 310 647 úryvků z 316 099 jazykový model DeepSeek V4.1 Flash. To je 98,3 procenta. Ověřených proti zdroji je 15,2 procenta a u 82,6 procenta úryvků index neuchovává doslovný citát, proti kterému by se odpověď dala zkontrolovat. Když se pak RAG zeptáte, model nečte dokument, čte parafrázi, kterou udělal jiný model. Chyba z prvního modelu se v odpovědi zopakuje a tváří se jako fakt z dokumentu.

Druhá část problému je v promptu. Když prompt neumožní odpovědět „v podkladech to není“, model snadno odpoví i tam, kde podklad chybí. Výzkum RAGTruth ukázal, že i s vyhledáváním vznikají odpovědi, které podklad nepodporují nebo mu odporují: anotátoři u téměř 18 tisíc odpovědí označili halucinace na úrovni jednotlivých slov. Práce Lost in the Middle zase ukázala, že modelům dělá problém najít informaci uprostřed dlouhého kontextu, i když tam je.

Jak to změřit: vezměte odpověď a každou její větu hledejte v podkladu. Věty, které v podkladu nejsou, jsou chyba, ať jsou pravdivé nebo ne. Zvlášť měřte, kolik odpovědí vzniklo u dotazů, kde podklad odpověď vůbec neobsahuje. Správná odpověď na takový dotaz je „nevím“.

Co s tím: v promptu vyžadovat u každé věty odkaz na úryvek, povolit odpověď „v podkladech není“ a nejlepší úryvek dávat na začátek, ne doprostřed. Když model cituje, poznáte chybu dřív než uživatel.

### Kdy to neplatí

-   Korpus je výzkumný, ne firemní. Obsahuje příspěvky z Redditu, přepisy videí a články, z 95 procent anglicky. Dá se čekat, že český dotaz proti anglickému indexu selhává snadněji než český dotaz proti českým dokumentům.
-   Měřili jsme jen lexikální hledání bez vektorů a bez přerovnání. Dobře postavený firemní RAG bude mít podíl správných výsledků vyšší. Čtyři správné výsledky z padesáti nejsou výsledek RAG jako technologie.
-   Čísla jsou z jednoho dne a jednoho indexu. Po přeindexování se změní.
-   Ideální délka úryvku závisí na typu dokumentu. U smlouvy je delší úryvek nutnost, u tabulky parametrů naopak škodí.
-   Čísla z RAGTruth a z Anthropicu pocházejí z jiných modelů a jiných korpusů. Bereme je jako směr, ne jako srovnání s naším měřením.

### Časté otázky

#### Jak poznám, že chyba je v hledání, a ne v modelu?

Vezměte úryvky, které RAG modelu poslal, a položte stejnou otázku jen nad nimi. Když odpověď v úryvcích není, model nemohl odpovědět správně a chyba je v hledání nebo v dělení textu. Když tam je a model ji nepoužil, chyba je v promptu nebo v modelu.

#### Kolik úryvků má RAG vrátit?

Tolik, kolik jich je potřeba k pokrytí odpovědi, a to se musí změřit, ne odhadnout. V našem korpusu poskytlo pět úryvků v mediánu 554 znaků podkladu, což je na technickou otázku málo. Pět je rozumný start, ale číslo samo o sobě nic neříká.

#### Pomůže jen zvětšit kontext modelu?

Ne. Delší kontext znamená víc šumu a informace uprostřed se ztrácí. Podle práce Lost in the Middle je výsledek nejlepší, když je potřebná informace na začátku nebo na konci. Vyplatí se tedy méně a lépe seřazených úryvků.

#### Stačí do promptu napsat, ať model nehalucinuje?

Nestačí, ale pomůže to. Instrukce bez měření může chybu jen přesunout: model začne odmítat i to, co v podkladech je. Proto se vyplatí měřit obojí, kolik odpovědí je bez opory v podkladu a kolik správných odpovědí model odmítl.

### Co si odnést

RAG neodstraňuje halucinace sám. Přesouvá je z modelu do pipeline a tam se dají měřit. Tři čísla, která se vyplatí sledovat: délka úryvku, podíl dotazů, u kterých se správný úryvek dostal do prvních pěti výsledků, a podíl vět v odpovědi, které nemají oporu v podkladu. Když je u prvního čísla málo znaků, řešte dělení. Když u druhého, řešte hledání. Když u třetího, řešte prompt.

Jestli RAG pro firemní dokumenty stavíte nebo opravujete, podívejte se na stránku [RAG pro firemní dokumenty](https://warpy.cz/sluzby/rag-firemni-dokumenty). Když zvažujete, jestli má smysl dokumenty doladit modelem, pomůže [rozhodovací tabulka RAG vs fine-tuning](https://warpy.cz/blog/rag-vs-fine-tuning-pro-firemni-dokumenty-rozhodovaci-tabulka). Jak se chová kontext při předávání mezi agenty, ukazuje článek [677 tokenů místo 93 tisíc](https://warpy.cz/blog/jak-zachovat-kontext-pri-stridani-ai-agentu-677-tokenu-misto-93-tisic). Čísla o provozu našeho modelu najdete v [labu](https://warpy.cz/lab/deepseek-v41-flash-tp3).

### Zdroje

-   [Anthropic: Introducing Contextual Retrieval](https://www.anthropic.com/news/contextual-retrieval)
-   [Barnett et al.: Seven Failure Points When Engineering a Retrieval Augmented Generation System (arXiv 2401.05856)](https://arxiv.org/abs/2401.05856)
-   [Liu et al.: Lost in the Middle: How Language Models Use Long Contexts (arXiv 2307.03172)](https://arxiv.org/abs/2307.03172)
-   [Niu et al.: RAGTruth: A Hallucination Corpus for Developing Trustworthy Retrieval-Augmented Language Models (arXiv 2401.00396)](https://arxiv.org/abs/2401.00396)

Zdroj podkladů: [https://arxiv.org/abs/2401.05856](https://arxiv.org/abs/2401.05856)

## Související čtení

- [RAG vs fine-tuning pro firemní dokumenty. Rozhodovací tabulka](https://warpy.cz/blog/rag-vs-fine-tuning-pro-firemni-dokumenty-rozhodovaci-tabulka): Když má model znát obsah dokumentů, potřebujete RAG. Když má psát vaším stylem a dodržovat formát, potřebujete fine-tuning. Rozhodovací tabulka a měření, kolik dokumentů se vejde do dlouhého kontextu.

- [Nous Research přeučil čínský Qwen na západní hodnoty. Podíl propagandistických odpovědí spadl z 22 na 0,9 procenta](https://warpy.cz/blog/nous-research-preucil-cinsky-qwen-na-zapadni-hodnoty-podil-propagandistickych-odpovedi-spadl-z-22-na-0-9-procenta): Americká laboratoř Nous Research vzala otevřený model Qwen3.8-27B od Alibaby a doladila ho na západní hodnoty.

- [Lokální LLM proti API: 91 milionů tokenů za hodinu mění ekonomiku agentů](https://warpy.cz/blog/lokalni-llm-proti-api-ekonomika-agentu): Čtyři DGX Sparky obsloužily za hodinu 91,1 milionu tokenů včetně prefix cache. Kolik by stejný provoz při běhu 24/7 stál za den a za měsíc? Srovnáváme vlastní sestavu s GPT-5.6 a dalšími API.

## Od článku k vlastnímu řešení

- [RAG nad firemními dokumenty a daty](https://warpy.cz/sluzby/rag-firemni-dokumenty)

- [Lokální LLM: nasazení, fine-tuning a optimalizace](https://warpy.cz/sluzby/lokalni-llm)

[Probrat váš projekt s Warpy](https://warpy.cz/kontakt)

[Další články](https://warpy.cz/ai-novinky/llms.txt)
