Zkratka proRetrieval-Augmented GenerationTakéretrieval augmented generationPokročilý
Definice
RAG je architektura pro práci s jazykovým modelem, která před generováním odpovědi vyhledá relevantní informace v externím úložišti a vloží je do kontextu modelu. Díky tomu může aplikace odpovídat z aktuálních firemních dat, dokumentace nebo znalostní báze, aniž by se musel model pokaždé znovu trénovat.
Nezaměňujte: Zkratka RAG může mimo umělou inteligenci znamenat také stavové značení red-amber-green; v tomto hesle jde o Retrieval-Augmented Generation.
Proč RAG připojuje zdroje až při dotazu
RAG řeší slabinu samostatného jazykového modelu: model má znalosti uložené ve vahách z tréninku, ale aplikace často potřebuje odpověď podle aktuálních smluv, interní dokumentace, katalogu produktů nebo práv uživatele. RAG proto nepředstírá, že model ví všechno. Aplikace nejdřív najde relevantní podklady a teprve potom nechá model sestavit odpověď z nalezeného kontextu.
RAG se hodí hlavně tam, kde se data mění rychleji než model, kde je nutné citovat zdroj nebo kde by nové trénování bylo drahé a riskantní. Typická architektura odděluje znalostní vrstvu od generativní vrstvy. Dokumenty lze doplňovat, mazat a řídit u nich oprávnění, zatímco model zůstává stejný.
Řetězec dotazu od otázky k odpovědi
RAG obvykle začíná přípravou dokumentů. Texty se rozdělí na menší části, převedou na embeddingy a uloží do vyhledávacího indexu, často vektorového. Vedle samotného textu se ukládají metadata: název dokumentu, datum, jazyk, oddělení, zákazník nebo přístupová práva.
- Uživatel položí otázku.
- Aplikace vytvoří embedding dotazu nebo použije klasické textové vyhledávání.
- Vyhledávací vrstva vrátí několik nejvhodnějších pasáží.
- Volitelný reranker přeuspořádá výsledky podle relevance.
- Prompt spojí otázku, pravidla odpovědi a nalezené pasáže.
- Jazykový model vygeneruje odpověď, ideálně s citacemi.
RAG není jen „přilepení dokumentů do promptu“. Kvalitu často víc ovlivní rozdělení textu, filtry nad metadaty, odstranění duplicit, detekce zastaralých dokumentů a způsob, jak aplikace modelu zakáže domýšlet chybějící fakta.
Kde RAG ztrácí přesnost
RAG selhává, když vyhledávání přinese špatné pasáže, když se správná odpověď skládá z více vzdálených dokumentů nebo když model ignoruje dodaný kontext. Problém může vzniknout i u příliš velkých úryvků: model dostane mnoho šumu a důležitá věta se ztratí. Příliš malé úryvky zase utrhnou pojem od souvislostí.
RAG vyžaduje hodnocení na reálných otázkách. Nestačí měřit jen podobnost embeddingů. Praktické testy sledují, zda byl nalezen správný zdroj, zda odpověď používá pouze dostupné informace, zda přizná nejistotu a zda respektuje oprávnění uživatele. Bez těchto kontrol může systém působit přesvědčivě, ale odpovídat z cizích nebo neplatných dat.
RAG místo fine-tuningu
RAG a fine-tuning řeší odlišné potřeby. RAG dodává modelu fakta v době dotazu. Fine-tuning mění chování modelu, styl, formát odpovědi nebo zvládání opakované úlohy. Firemní chatbot nad interní wiki obvykle začne s RAGem, protože dokumenty lze průběžně aktualizovat. Fine-tuning dává větší smysl, když aplikace potřebuje stabilní specializované chování, které nejde spolehlivě popsat promptem.
Příklady z praxe
Helpdesk nad interní dokumentací
Interní helpdesk nasadí RAG nad firemní wiki a dokumenty rozdělí podle oddělení. Zaměstnanec se zeptá na VPN, vyhledávání vrátí jen návody dostupné jeho roli a model odpoví s odkazy na konkrétní interní stránky. Výsledek je bezpečnější než obecný chatbot, protože odpověď nevychází z veřejných návodů pro jinou infrastrukturu.
const question = "Jak nastavím VPN pro účetní oddělení?"; const hits = await vectorStore.search(await embed(question), { topK: 5, filter: { department: "accounting", visibility: "internal" } }); const answer = await llm.generate({ system: "Odpovídej jen z dodaných podkladů a uveď zdroje.", context: hits.map(h => h.text).join("\n---\n"), question });Produktový asistent v e-shopu
E-shop použije RAG pro asistenta, který odpovídá na dotazy k produktům, skladové dostupnosti a reklamacím. Zákazník se zeptá, zda lze konkrétní batoh vzít jako kabinové zavazadlo, systém najde rozměry produktu a aktuální pravidla dopravce uložená v databázi. Asistent odpoví podle nalezených podkladů a neodhadne rozměry z podobného zboží.
Časté omyly
- MýtusRAG odstraní halucinace.
- Ve skutečnostiRAG riziko halucinací snižuje, ale neodstraňuje ho automaticky. Model může špatně použít správný zdroj, ignorovat kontext nebo doplnit chybějící informaci vlastní domněnkou.
- MýtusRAG je jen vektorové vyhledávání nad PDF.
- Ve skutečnostiRAG může používat vektorové vyhledávání, ale samotný index nestačí. Kvalitní řešení řeší přípravu dokumentů, metadata, oprávnění, reranking, prompt, citace a testování odpovědí.
Časté dotazy
- Potřebuje RAG vektorovou databázi?
- RAG vektorovou databázi často používá, ale vektorová databáze není povinnou součástí každého řešení. Některé aplikace kombinují fulltextové vyhledávání, filtry nad metadaty, znalostní graf nebo relační databázi. Důležité je, aby vyhledávací vrstva našla správné pasáže pro konkrétní otázku a předala modelu jen relevantní kontext.
- Kdy má RAG smysl místo fine-tuningu?
- RAG má smysl místo fine-tuningu, když aplikace potřebuje pracovat s měnícími se fakty, interními dokumenty nebo citovatelnými zdroji. Fine-tuning je vhodnější pro úpravu stylu, formátu a opakovaného chování modelu. RAG obvykle umožní rychlejší aktualizace, protože stačí změnit obsah indexu, ne znovu učit celý model.
- Může RAG pracovat s neveřejnými firemními daty?
- RAG může pracovat s neveřejnými firemními daty, pokud aplikace správně řeší přístupová práva, logování, šifrování a oddělení tenantů. Vyhledávací index nesmí vracet pasáže, které uživatel nemá právo číst. Bez kontroly oprávnění může model nechtěně shrnout citlivý dokument, i když samotný prompt vypadá bezpečně.
- Jak se pozná, že RAG odpovídá kvalitně?
- RAG má smysl testovat na sadě reálných dotazů s očekávanými zdroji a odpověďmi. Hodnocení by mělo oddělit dvě věci: zda vyhledávání našlo správné dokumenty a zda model odpověděl věcně podle nich. U důležitých aplikací se sledují také citace, odmítnutí odpovědi při chybějících datech a dodržení bezpečnostních pravidel.
Zdroje
- Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks(otevře se v novém okně)
- RAG(otevře se v novém okně)
- What is RAG? - Retrieval-Augmented Generation AI Explained(otevře se v novém okně)
- Retrieval Augmented Generation (RAG) in Azure AI Search(otevře se v novém okně)