Tmavé pozadí

RAG – část první – úvod

Matouš Eibich
Matouš Eibich 11. 9. 2024
RAG – část první – úvod

Využijte schopnosti LLMs komunikovat s interní datasety!

RAG - část první - úvod

O čem je řeč?

V moderním světě zaměřeném na data je schopnost využít unikátní datasety vaší organizace zásadní. Velké jazykové modely (LLM) jsou mocné nástroje datové analýzy, ale nemají přístup k vašim specifickým datům (a je to tak dobře!). Retrieval Augmented Generation (RAG) se v tomto kontextu stává klíčovou technologií, umožňující LLM bezpečně využívat proprietární zdroje dat. Integrací RAG mohou firmy obohatit LLM svými interními datasety, čímž transformují tyto modely na přizpůsobené nástroje, které poskytují relevantní a přesné odpovědi. Tento přístup nejen rozšiřuje funkčnost LLM, ale zároveň zajišťuje, že citlivé informace zůstávají v bezpečných mezích organizace.

Jak to funguje?

Systém RAG je v základní podobě elegantně jednoduchý. Skládá se z řady propojených komponent, které usnadňují využití vašich dat. Proces, jak je zobrazen na přiloženém obrázku, popisuje zjednodušenou cestu od získávání dat až po generování odpovědí.

basic_rag.PNG

Zdroj: https://www.deeplearning.ai/short-courses/langchain-chat-with-your-data/

Načítání dokumentů

První fáze spočívá v nahrávání vašich dat. Vstupní data mohou být velmi různorodá - od tradičních dokumentů, jako jsou soubory PDF a Word, až po moderní zdroje dat, např. Notion, YouTube nebo GitHub. Při načítání dat hrají hlavní roli konektory, které jsou schopné převést různé druhy obsahu na text, se kterým se dále už pracuje velmi jednoduše.

Dělení

Kvůli omezením kontextového okna LLM (a ceně za tokeny) jsou velké dokumenty rozděleny na menší části. To zajišťuje, že modely mohou efektivně pracovat s relevantními segmenty dat a vyvozovat smysluplné závěry. 

Ukládání

Ve fázi ukládání systém převádí úseky textu na číselné vektory pomocí embedding modelů. Tato část je zásadní - LLM jako matematické modely nemohou rozumět přirozenému jazyku, potřebují mít text reprezentovaný čísly. Vektory jsou poté uloženy ve vektorové databázi (známé také jako vector store nebo jednoduše index), která slouží jako referenční bod pro vyhledávání. Embedding modelů je velké množství a volba často závisí na jazyce. Pro češtinu jsou dostupné kvalitní modely např. od Seznamu. Z našich experimentů však stále nejlépe vychází embedding modely od OpenAI, které jsou natolik obecné, že zvládají dobře i český jazyk. 

Vyhledávání

Když je zadán dotaz, je také převeden na vektor (stejným embedding modelem jako při fázi ukládání). Systém poté prohledává vektorovou databázi pro nejrelevantnější textové úseky pomocí porovnávání podobnosti vektorů (což zní náročně, ale je to relativně jednoduchá matematika). 

Inference

Poslední krok spočívá v tom, že získané textové úseky a původní dotaz jsou předány do LLM. V této části všechno začne dávat smysl - bez RAG systému bychom měli dotaz, ale nemohli bychom získat relevantní textové úseky, ze kterých LLM formuluje odpověď. LLM by tedy odpovídalo pouze na základě trénovacích dat. To by bylo v pořádku, pokud bychom se ptali na obecnou otázku (např. Kdy se narodil Napoleon?). Ale pokud nás zajímají otázky specifické pro naši společnost (např. Jaký klient má ve smlouvě konkrétní výjimku?), je třeba jazykovému modelu pomoci a předložit mu relevantní text. V tomto nastavení tedy LLM funguje pouze jako generátor, který syntetizuje informace do smysluplné odpovědi, ale zpravidla nevyužívá svých „znalostí”. 

Závěr

Stručně řečeno, skutečná hodnota RAG spočívá v jeho schopnosti poskytnout LLM přístup k dříve neviděným interním datasetům. Tento přístup je klíčový pro organizace, které potřebují využívat svá proprietární data pro lepší rozhodování. Integrací RAG mohou LLM generovat odpovědi, které jsou nejen přesné, ale také přizpůsobené specifickému kontextu a znalostní bázi firmy.

Matouš Eibich
Matouš Eibich 11. 9. 2024