Začneme tím co už umíte #
Když dneska potřebujete aby Claude nebo ChatGPT odpovědělo na něco co je ve vašich dokumentech, postupujete asi takhle: otevřete aplikaci, přetáhnete tam pár souborů, položíte otázku. Funguje to. Někdy překvapivě dobře.
Možná jste šli ještě dál a v Claude jste si vytvořili Project, kam jste si nahrál celý projekt. Nebo jste v ChatGPT připojil Google Drive a Claude si bere dokumenty přímo odtamtud. V Microsoft Copilotu zase vidí celý váš Office 365, tedy emaily, dokumenty i kalendář.
A vy si v tuhle chvíli říkáte: tak co řešíme? Vždyť to funguje.
Kde to láme, když je dokumentů moc #
Funguje to. Ale jen do určitého bodu.
Když přihodíte pět dokumentů, Claude je přečte a odpoví. Když dvacet, začíná to být drahé a pomalé. Když dvě stě, narážíte na limit. A když by jich měla být dvacet tisíc, nebo dokonce dvě stě tisíc, což je situace velké advokátní kanceláře, tak už to vůbec nejde.
Důvod je technický a má dvě roviny.
První rovina je kontext. Každý jazykový model (LLM) má omezené množství textu, který dokáže „udržet v hlavě" najednou. U Claude je to dnes asi 150 stránek textu1, u některých modelů víc. Když máte víc dokumentů než se vejde do tohohle limitu, jednoduše to neumíte naládovat všechno najednou.
Druhá rovina je cena a rychlost. I kdyby se to vešlo, každý dotaz znamená že LLM musí přečíst všechno znovu. Posíláte mu celou knihovnu pokaždé když se na něco zeptáte. To je drahé a pomalé. Představte si že každou otázkou v Googlu vyhledáváte přes všechny stránky internetu znovu od začátku. To nikdo nedělá. Google má index. A LLM nemá.
Co potřebuje firma #
Velká firma, třeba advokátní kancelář, banka nebo výrobní podnik, nemá pět souborů. Má desítky nebo stovky tisíc dokumentů. Smlouvy z dvaceti let zpátky. Faktury. Emaily. Interní směrnice. Manuály. Zápisy z porad.
A potřebuje aby zaměstnanec mohl položit otázku, třeba „co stojí ve smlouvě s firmou ABC ohledně sankcí", a aby systém dokázal najít odpověď. Ne aby zaměstnanec musel ručně hledat o jakou smlouvu jde, otevřít ji, najít článek o sankcích, a předhodit to Claudovi v příloze.
To je rozdíl mezi tím co dnes umí běžný uživatel s Claude nebo ChatGPT, a tím co potřebuje firma. Běžný uživatel rozhoduje co je relevantní a co nahraje. Firma potřebuje systém který to ví sám.
A tady přichází RAG #
RAG je zkratka pro Retrieval Augmented Generation. Doslova „generování obohacené o vyhledávání". Hrozný překlad. Pojďme to říct lidsky.
Představte si knihovníka v knihovně se sto tisíci knihami. Vy přijdete a zeptáte se: „Hledám něco o stříhání růží na podzim." Knihovník nepřečte celou knihovnu. Místo toho:
- Pochopí o co se ptáte
- Půjde do regálu se zahradou a najde tři knihy o pěstování růží
- V těch knihách najde stránky kde se mluví o podzimním řezu
- Donese vám konkrétní pasáže
A vy si z těch pasáží uděláte odpověď. Knihovník vám neřekne svou odpověď. Donese vám materiál a vy z něj odpovídáte sami.
RAG funguje úplně stejně, jen knihovníka tam dělá počítač a „vy si tvoříte odpověď" dělá LLM.
Konkrétně to probíhá ve třech fázích.
Fáze první se děje jednou předem, dlouho před tím než vy položíte první otázku. Všechny firemní dokumenty se rozsekají na menší kousky, typicky odstavce, klauzule nebo sekce. Každý kousek se přečte a převede do podoby kterou počítač rozumí: na vektor čísel který reprezentuje význam toho textu. Tyhle „číselné odrazy" textů se uloží do speciální databáze.
Fáze druhá se děje pokaždé když se zeptáte. Vaše otázka se převede do stejné podoby, tedy na vektor čísel reprezentující její význam. Databáze se podívá: které z těch sto tisíc kousků dokumentů má nejpodobnější význam jako vaše otázka? Vrátí třeba deset nejlepších.
Fáze třetí je tam kde přichází LLM. Dostane: vaši otázku, deset nalezených kousků, a instrukci „odpověz na otázku na základě těchto kousků". A LLM odpoví. Často i s odkazy na to z jakých dokumentů odpověď vytvořil.
Tohle je RAG. Knihovník, který se naučil rozumět významu, a LLM který umí z najitých kousků sestavit odpověď.
Co RAG slibuje #
Z hlediska firmy to vypadá jako sen. Zaměstnanec se může zeptat na cokoli a systém najde odpověď napříč všemi firemními dokumenty. Bez ohledu na to kde dokument leží, jak je starý, kdo ho psal. Bez nutnosti vědět který soubor otevřít.
Pro advokátní kancelář to znamená: koncipient se může zeptat „byla už podobná klauzule ve smlouvách za posledních pět let" a systém najde precedenty. Partner se může zeptat „co konkrétně klient ABC podepsal ohledně mlčenlivosti" a systém vytáhne přesné formulace. Senior partner si může nechat vypracovat rešerši k novému soudnímu sporu, a systém projede tisíce dříve řešených případů a najde paralely.
Před pár lety tohle nešlo. Dnes to funguje. To je obrovský skok a stojí za to ho ocenit.
Jak přesně RAG dělá to co dělá, kde jsou jeho silné a slabé stránky a jak se s nimi v praxi pracuje, to je téma navazujících částí seriálu.