rag

Vojtěch Bruk Vojtěch Bruk 7 min čtení

Co je RAG a jak dává umělé inteligenci přístup k vlastním datům

RAG (retrieval-augmented generation) je metoda, při které jazykový model před vytvořením odpovědi vyhledá relevantní informace v externích zdrojích a použije je jako kontext. Místo toho, aby se spoléhal pouze na znalosti uložené při trénování, dostane k dotazu také konkrétní podklady – například firemní dokumentaci, články, produktový katalog nebo interní směrnice. RAG tak propojuje vyhledávání informací se schopností modelu formulovat srozumitelnou odpověď. Často se používá spolu s AI agenty, chatboty a interními znalostními asistenty.

Zkratka vychází z anglického názvu retrieval-augmented generation, česky přibližně generování rozšířené o vyhledávání. Princip byl popsán ve výzkumné práci z roku 2020, která spojila jazykový model s externí pamětí tvořenou indexem dokumentů. Dnešní implementace se liší v použitých databázích, modelech i způsobu hledání, základní myšlenka ale zůstává stejná: nejprve najít vhodné podklady, potom z nich sestavit odpověď.

Jak RAG funguje:

RAG má dvě hlavní části. První připravuje zdroje pro vyhledávání, druhá pracuje s konkrétním dotazem uživatele. V praxi jde obvykle o následující kroky:

  • Načtení dokumentů: systém získá obsah z PDF, webových stránek, databází, e-mailů nebo jiných povolených zdrojů. Už v této fázi záleží na kvalitě dat. Neaktuální, duplicitní nebo špatně strukturované dokumenty povedou ke slabším odpovědím.
  • Rozdělení na menší části: dlouhé dokumenty se rozdělí na úseky, kterým se často říká chunky. Jednotlivý úsek musí být dost malý pro přesné hledání, ale zároveň dost velký, aby si zachoval smysl. Když se například oddělí nadpis od odstavce, může systém ztratit důležitý kontext.
  • Vytvoření indexu: textové úseky se uloží do vyhledávacího systému. Častou variantou je převod textu na číselné reprezentace zvané embeddings a jejich uložení do vektorové databáze. Ne každý RAG ale musí stát pouze na vektorovém hledání. Použít lze také klasické fulltextové hledání nebo kombinaci více metod.
  • Vyhledání relevantních podkladů: po přijetí otázky systém najde úseky, které s ní nejvíce souvisejí. Pokročilejší řešení mohou dotaz nejdříve přeformulovat, výsledky filtrovat podle metadat nebo je znovu seřadit pomocí takzvaného rerankeru.
  • Rozšíření promptu: nalezené pasáže se připojí k otázce a instrukcím pro model. Dobře navržený prompt určí, že model má odpovídat z dodaných zdrojů, přiznat chybějící informace a případně uvést citace.
  • Vygenerování odpovědi: jazykový model zpracuje otázku i nalezený kontext a vytvoří výslednou odpověď. Uživatel většinou celý proces nevidí – pracuje s rozhraním podobně jako s běžným chatbotem.

RAG v praxi:

Představte si e-shop s tisíci produkty. Běžný jazykový model může dobře vysvětlit rozdíl mezi dvěma typy výrobků, ale nezná aktuální sklad, cenu ani přesné parametry konkrétní nabídky. RAG před odpovědí vyhledá relevantní položky v katalogu a předá je modelu. Ten pak může zákazníkovi srozumitelně porovnat dostupné produkty, aniž by bylo nutné model znovu trénovat při každé změně ceny.

Podobně může interní asistent hledat v pracovních postupech, návodech a zápisech z porad. Zaměstnanec se zeptá, jak schválit fakturu nebo co obsahuje konkrétní služba, systém najde správné dokumenty a sestaví odpověď s odkazy na zdroje. V zákaznické podpoře lze stejným způsobem propojit AI s nápovědou a databází vyřešených problémů. U obsahového webu může RAG čerpat z publikovaných článků a doporučit návštěvníkovi související informace nebo pomoci redaktorovi dohledat fakta.

RAG dává smysl také při práci s dokumenty, které se často mění. Nový ceník nebo aktualizovanou směrnici stačí znovu zaindexovat. Není nutné provádět fine-tuning modelu, který je dražší, pomalejší a hodí se spíše ke změně chování nebo stylu než k průběžnému doplňování faktů. RAG a fine-tuning navíc nejsou soupeři – v jednom systému lze použít obojí.

Proč je RAG důležitý:

Největší výhodou RAG je možnost pracovat s vlastními a aktuálními daty. Obecný model během trénování neviděl neveřejné firemní podklady a jeho znalosti mají časovou hranici. Vyhledávací vrstva mu může dodat informace až ve chvíli, kdy je potřebuje. Podklady lze průběžně měnit bez zásahu do samotného modelu.

Druhou výhodou je dohledatelnost. Pokud systém spolu s odpovědí ukáže použité zdroje, člověk může tvrzení rychle ověřit. To je užitečné hlavně tam, kde nestačí sebevědomě znějící text. RAG může omezit některé chyby AI aplikací, ale není automatickou zárukou pravdy. Model může špatně pochopit správně nalezený dokument, vyhledávání může vrátit nerelevantní pasáž a zdroj samotný může být chybný.

Kvalita výsledku proto stojí na celém řetězci. Je potřeba hlídat původ a aktuálnost dat, vhodné dělení dokumentů, oprávnění uživatelů, přesnost vyhledávání i instrukce pro model. U citlivých firemních podkladů je zásadní, aby vyhledávací vrstva neposlala uživateli dokument, ke kterému nemá přístup. Praktická implementace RAG je z velké části práce s daty a vyhledáváním, ne jen volání jazykového modelu.

Pro firmu je RAG zajímavý tím, že může zpřístupnit znalosti, které už existují, ale jsou rozptýlené v dokumentech a systémech. Nemusí jít jen o velký chatbot. Stejný princip lze použít v malém interním nástroji, při automatické přípravě odpovědi pro podporu nebo jako součást aplikace na webových stránkách. Hodnota nevzniká z nálepky RAG, ale z toho, zda systém spolehlivě najde správný podklad pro konkrétní úkol.

Časté otázky:

Odstraní RAG halucinace umělé inteligence?

Ne. RAG může snížit počet faktických chyb tím, že modelu dodá relevantní zdroje, ale chyby neodstraní. Selhat může vyhledávání, kvalita dokumentů i samotné generování odpovědi. Důležitá tvrzení je proto stále vhodné ověřovat.

Jaký je rozdíl mezi RAG a fine-tuningem?

RAG dodává modelu informace při každém dotazu, zatímco fine-tuning upravuje model pomocí trénovacích příkladů. RAG se hodí pro aktuální nebo soukromá fakta, fine-tuning spíše pro specifické chování, formát výstupu nebo opakovaný styl. Obě metody lze kombinovat.

Potřebuje RAG vždy vektorovou databázi?

Ne. Vektorové vyhledávání je běžné, protože umí hledat podle významové podobnosti, ale RAG může používat i fulltext, SQL dotazy, grafovou databázi nebo kombinaci více zdrojů. Správná volba závisí na typu dat a otázkách, které má systém řešit.

Je RAG vhodný i pro malou firmu?

Ano, pokud má firma dostatek užitečných dokumentů a opakující se otázky, jejichž ruční dohledávání bere čas. Začít lze s jedním dobře vymezeným zdrojem, například nápovědou nebo produktovým katalogem. Malý kvalitní index bývá užitečnější než velká hromada neudržovaných souborů.