Predstavte si, že hľadáte v zmluve z roku 2019 konkrétny bod o sankciách a ChatGPT vám odpovie všeobecnou poučkou, pretože vaše dokumenty „nevidel“.
Presne toto je hranica, na ktorú narazíte, keď chcete použiť veľký jazykový model na vlastné dáta. RAG (Retrieval-Augmented Generation, generovanie rozšírené o vyhľadávanie) je odpoveď – technika, ktorá zmení generickú AI na špecialistu na vašu firemnú dokumentáciu bez toho, aby ste museli trénovať vlastný model.
Prečo nestačí „nacpať“ dokumenty do promptu?
Kontextové okno modelov rastie, ale stále je konečné. Ak máte desaťtisíc strán technickej dokumentácie, žiadny model si ich celé neprečíta. Navyše, náklady na spracovanie každého dotazu by boli astronomické. RAG rieši tento problém elegantne: nezahŕňa celú databázu do otázky, ale najprv nájde relevantné časti dokumentov a až tie vloží modelu do kontextu.
Celý proces si môžete predstaviť ako prácu v troch fázach: príprava (indexácia), vyhľadávanie (retrieval) a generovanie odpovede (generation). Poďme sa na ne pozrieť tak, aby ste si to vedeli postaviť aj s rozpočtom do 50 € mesačne.
Krok 1: Príprava dokumentov – kde sa strácajú dáta
Základom je previesť dokumenty na čísla – vektory. Každý odsek či kapitolu rozdelíte na menšie časti (chunking) a každú časť necháte „preklopiť“ do vektorovej reprezentácie pomocou embeddovacieho modelu. Tieto vektory uložíte do vektorovej databázy.
Kľúčové rozhodnutie: veľkosť častí (chunkov). Ak sú príliš malé (napr. 100 znakov), strácate kontext. Ak sú príliš veľké (napr. 2000 znakov), vyhľadávanie je nepresné. Ideálny bod je medzi 300 a 800 tokenmi (približne 1 200 – 3 200 znakov) s prekrytím (overlap) okolo 10 – 15 %, aby sa nestratil začiatok a koniec myšlienky.
Pasca číslo jedna: formát dokumentov. PDF s naskenovanými stránkami je pre RAG nočná mora. Potrebujete strojovo čitateľný text. Ak máte staré skeny, budete potrebovať OCR vrstvu. Odporúčam nástroj Tesseract (open-source) alebo cloudové služby, ktoré to zvládnu automaticky. Nepodceňte to – kvalita vstupu priamo určuje kvalitu výstupu.
Krok 2: Výber modelu a databázy – čo reálne použijete
Nemusíte si nič hostiť sami. Pre začiatok odporúčam kombináciu:
- Embedding model:
text-embedding-3-smallod OpenAI (cena 0,02 € za 1 milión tokenov – pri 10 000 stranách dokumentácie zaplatíte približne 0,06 € za celú indexáciu). - Vektorová databáza: Qdrant alebo Pinecone. Qdrant má bezplatnú úroveň, Pinecone ponúka serverless režim, kde platíte len za skutočné využitie.
- Generatívny model: GPT-4o mini alebo Claude 3.5 Haiku. Oba sú rýchle a lacné – GPT-4o mini stojí 0,15 USD za 1 milión vstupných tokenov.
Na testovanie nemusíte písať kód od nuly. LangChain (rámec na tvorbu aplikácií s jazykovými modelmi) alebo LlamaIndex majú hotové moduly. Stačí im dať cestu k priečinku s dokumentmi a oni zvládnu chunking aj indexáciu. V praxi to znamená, že funkčný prototyp máte za jeden večer.
Krok 3: Vyhľadávanie – prečo „sémantické“ nestačí
Čisté vektorové vyhľadávanie je dobré, ale nie dokonalé. Ak hľadáte „sankcie za oneskorenú platbu“ a v dokumente je „penále pri omeškaní“, vektory to spoja správne. Problém nastáva pri číslach, skratkách alebo presných ID – tam vektorové vyhľadávanie zlyháva.
Riešenie: hybridné vyhľadávanie. Kombinácia plnotextového (BM25) a vektorového vyhľadávania. Qdrant to podporuje natívne. Výsledok: ak používateľ zadá presné číslo zmluvy, systém nájde dokument podľa kľúčového slova; ak zadá voľnú otázku, použije sémantiku. Toto je najväčší rozdiel medzi amatérskym a profesionálnym RAG systémom.
Krok 4: Generovanie odpovede – posledná míľa
Keď máte relevantné časti, vložíte ich do promptu spolu s otázkou. Tu je dôležité nastaviť teplotu (temperature) na 0 alebo 0,1, aby model nefantazíroval. Zároveň mu v inštrukcii prikážete: „Odpovedaj len na základe poskytnutých dokumentov. Ak odpoveď nepoznáš, napíš, že informáciu nemáš.“
Pasca číslo dva: halucinácie. Model sa vždy snaží odpovedať, aj keď nemá dostatok dát. Preto je kritické zahrnúť do promptu metadáta o zdroji – názov dokumentu, číslo strany, dátum. Vďaka tomu môžete odpoveď overiť a používateľ vidí, odkiaľ informácia pochádza.
Reálne čísla: čo to stojí a čo to zvládne
Poďme si to spočítať na konkrétnom príklade. Firma s 50 000 stranami dokumentácie (približne 30 – 35 miliónov tokenov) a 500 otázkami mesačne:
- Indexácia (jednorazovo): 15M tokenov × 0,02 € = 0,30 € za embeddovanie.
- Vyhľadávanie: 500 dotazov × 0,01 € (databáza) = 5 € mesačne.
- Generovanie odpovedí: 500 × 2000 vstupných tokenov (kontext) = 1M tokenov × 0,15 € = 0,15 € mesačne.
Celkové náklady: menej ako 10 € mesačne. To je menej ako jedno firemné školenie. A to hovoríme o cloudovom riešení bez nutnosti vlastného hardvéru.
Čomu sa vyhnúť – praktické odporúčania
- Nepoužívajte RAG na dáta, ktoré sa menia každú hodinu. Indexácia nie je okamžitá. Pre živé dáta použite priame napojenie na databázu.
- Pravidelne aktualizujte index. Ak pridáte nové dokumenty, musíte ich preindexovať. Naplánujte si to ako nočnú úlohu.
- Testujte na reálnych otázkach. Vytvorte si sadu 50 typických otázok od používateľov a merajte presnosť odpovedí. Bez tohto kroku nepoznáte kvalitu systému.
Verdikt: oplatí sa to?
Ak máte viac ako 500 strán interných dokumentov, ktoré ľudia pravidelne hľadajú, RAG sa oplatí už od prvého dňa. Návratnosť nie je v ušetrenom čase vyhľadávania, ale v konzistentnosti odpovedí – systém vždy nájde tú správnu verziu dokumentu, aj keď je ich viac. Začína sa s cloudovými službami a jednoduchým prototypom. Až keď narazíte na limity (rýchlosť, cena, bezpečnosť), prejdite na lokálne riešenie s open-source modelmi. Ale pre 95 % firiem je cloudová cesta správna voľba – je lacná, rýchla a škálovateľná.