RAG (česky: generování rozšířené o vyhledávání) je technika v oblasti umělé inteligence, která umožňuje velkým jazykovým modelům přistupovat k externím datům v reálném čase, aniž by bylo nutné model znovu trénovat.
Zatímco standardní model odpovídá pouze na základě svých „vnitřních znalostí“ (které mají datum uzávěrky), RAG mu umožňuje nejdříve vyhledat relevantní informace v soukromých dokumentech nebo na internetu a až poté sestavit odpověď.
Proces probíhá v několika krocích, které se spustí po zadání dotazu uživatelem:
Předem připravené dokumenty se rozdělí na menší kusy (chunks) a převedou se na číselné vektory (embeddings) pomocí speciálního modelu. Tyto vektory se uloží do vektorové databáze.
Když položíte dotaz, systém jej také převede na vektor a najde v databázi sémanticky nejpodobnější kusy textu.
Původní dotaz se „obali“ nalezenými texty. Vznikne nový, rozšířený prompt:
„Zde jsou informace z naší dokumentace: [Nalezený text]. Na základě těchto informací odpověz na otázku: [Původní dotaz].“
LLM zpracuje tento obří prompt a vygeneruje odpověď, která je přesná a podložená fakty.
| Vlastnost | RAG | Fine-tuning |
|---|---|---|
| Znalost nových dat | Okamžitá (stačí přidat soubor) | Vyžaduje nový trénink (dny/týdny) |
| Přesnost (fakta) | Velmi vysoká | Střední (může stále halucinovat) |
| Náklady | Nízké (provoz databáze) | Vysoké (výpočetní výkon GPU) |
| Transparentnost | Vysoká (uvádí zdroje) | Nízká (černá skříňka) |
Příklad z praxe: Firemní chatbot pro zaměstnance. Místo aby se ptali kolegů, položí dotaz chatbotu, který pomocí RAG prohledá firemní PDF směrnice, Wiki stránky a Slack historii a okamžitě odpoví s odkazem na zdroj.