GraphRAG a Ollama: Pokročilá generace odpovědí na základě grafů znalostí
Moderní korporátní systémy RAG (Retrieval-Augmented Generation) se neustále vyvíjejí ve snaze překonat omezení tradičního vektorového vyhledávání. Microsoft GraphRAG představuje slibné řešení, které využívá grafy znalostí pro hlubší pochopení kontextu a získávání informací. V tomto článku se podíváme na praktické zkušenosti s GraphRAG, jeho integraci s lokálními jazykovými modely prostřednictvím Ollamy a ukázku jeho schopností na příkladu analýzy textu ponořeného do světa kyberpunku. Cílem je ukázat, jak grafové přístupy mohou výrazně zlepšit přesnost a relevanci odpovědí ve složitých informačních systémech, a nabídnout tak novou úroveň sémantického vyhledávání a analýzy dat.
Od vektorového vyhledávání ke grafům znalostí
Základem mnoha RAG systémů je vektorové vyhledávání, které navzdory své efektivitě má řadu omezení, zejména při práci se složitými dotazy a nejednoznačnými entitami. GraphRAG nabízí alternativní přístup, kdy na základě původních dokumentů vytváří plnohodnotný graf znalostí. Tento graf se skládá z entit (objektů, osob, míst) a vztahů mezi nimi, což systému umožňuje zachytit nejen přítomnost klíčových slov, ale i jejich sémantické vztahy v kontextu. Takový přístup výrazně zvyšuje přesnost a hloubku získaných informací.
Proces budování grafu znalostí v GraphRAG zahrnuje extrakci entit a vztahů z textu. Pro vizualizaci a analýzu struktury takového grafu lze použít specializované nástroje, například Gephi s pluginem Leyden. To umožňuje nejen vidět vzájemné vztahy, ale také odhalit skryté komunity nebo klastry entit, které GraphRAG automaticky identifikuje a popisuje. Je důležité poznamenat, že ve fázi budování grafu mohou nastat potíže s rozlišením entit, kdy podobné, ale neidentické termíny (například „Molly Millions“ a „Molly“) nejsou automaticky sloučeny, což vyžaduje další úpravy algoritmů nebo ruční korekci.
GraphRAG také generuje popisy komunit, které jsou uloženy v souborech typu community_reports.parquet. Tyto popisy jsou kriticky důležité pro globální vyhledávání, protože umožňují LLM získat přehled o tematických klastrech v datech na vysoké úrovni. Takový přístup výrazně překonává jednoduché vyhledávání v textových fragmentech, poskytuje strukturovanější a kontextově obohacený materiál pro generování odpovědí.
Strategie dotazování v GraphRAG
GraphRAG nabízí několik strategií vyhledávání, z nichž každá je optimalizována pro různé typy dotazů. Flexibility systému je dosaženo díky možnosti jemného ladění promptů, například v souborech local_search_system_prompt.txt a global_search_reduce_system_prompt.txt. To umožňuje přizpůsobit chování systému konkrétním úkolům a jazykům, což zajišťuje relevanci odpovědí i při formulování otázek v různých jazycích, za předpokladu podpory LLM a embeddingů.
Globální vyhledávání (Global Search)
Globální vyhledávání je určeno pro odpovědi na široké otázky, které vyžadují pochopení celého souboru dat. Funguje v režimu MapReduce, prochází popisy komunit extrahované z grafu znalostí. To umožňuje získávat zobecněné, ale zároveň hluboké a kontextově úplné odpovědi.
Příklad dotazu:
graphrag query "What are the top cyberpunk elements in this story?"
Příklad odpovědi ukazuje, jak systém agreguje informace z různých částí grafu, odkazující na konkrétní prvky pomocí human_readable_id. To uživateli umožňuje v případě potřeby se ponořit do původních dat pomocí těchto identifikátorů:
- Integrace technologií a biologie: Použití neuroperturbátoru Lewisem a protetického palce Yakuzy demonstruje, jak technologie pronikají do těla a ovlivňují kontrolu a interakci s okolním prostředím. Takové prvky jsou jasným projevem kyberpunkového tématu, kde se hranice mezi organickým a syntetickým stírají [Data: Reports (5, 7, 12, 2, +more)].
- Dystopické městské krajiny: Vyprávění popisuje dystopické městské prostory, jako jsou Nighttown a Drome, které symbolizují zkázu, bezpráví a podzemní sítě zločinu. [Data: Reports (1, 8, 2, +more)].
- Korporátní konkurence a nelegální obchody: Prvky korporátní špionáže a nelegálních technologických obchodů, jako je transakce s mikrovlnným zařízením mezi árijskou reggae skupinou a programem Yakuzy, zdůrazňují téma korporátní kontroly a konfliktů s vysokými sázkami. [Data: Reports (0, 12, 2, +more)].
- Kontrast mezi nízkou a vysokou technologií: Symbolika nízké technologie, spojená s LO TEK a jejich používáním produktů, jako jsou filtry Yiheyuan, kontrastuje s pokročilými kybernetickými vylepšeními. [Data: Reports (9, 2, +more)].
- Kyberorganické bytosti a technické dovednosti: Postavy jako Jones – kyberdelfín s vojenskou minulostí, a Molly Millions s jejími bojovými dovednostmi v používání kontrolních modulů, demonstrují syntézu organického a syntetického. [Data: Reports (11, 7, 2, +more)].
Lokální vyhledávání (Local Search)
Lokální vyhledávání, na rozdíl od globálního, se zaměřuje na konkrétní vzájemné vztahy mezi entitami. Kombinuje relevantní data z grafu znalostí s fragmenty původních dokumentů, což ho činí ideálním pro detailní otázky o konkrétních objektech nebo osobách. Tento režim je obzvláště užitečný, když je potřeba hluboké pochopení rolí a vztahů jednotlivých prvků v systému.
Příklad dotazu:
graphrag query "Who is JONES and what are his main relationships?" -m local
Příklad odpovědi ukazuje detailní vztahy:
Jones je postava popsaná jako kybernetický delfín s pokročilými senzorickými schopnostmi, spojený s objektem „Funland“. Mezi jeho hlavní funkce patří správa nádrže s čerstvou vodou a spolupráce s „Calmou“. Jones hraje klíčovou roli v operacích získávání dat, zejména ve spolupráci s Molly a Johnnym, kde jeho unikátní fyziologie umožňuje přístup k datům z Johnnyho čipu [Data: Entities (28, 33); Relationships (44, 51, +more)].
Hlavní vztahy Jonese zahrnují:
- S Molly Millions: Účast na operaci získávání dat z Johnnyho čipu, demonstrující jeho technické schopnosti [Data: Entities (33); Relationships (44, 51, +more)].
- S Johnnym: Interakce v rámci operace získávání dat, kde Jones používá své senzory pro přístup k informacím [Data: Entities (33); Relationships (44, 51, +more)].
- Se „Squid“ (Supravodivé kvantové interferometry): Použití zařízení „Squid“ pro čtení stop, což souvisí s vojenskými technologiemi [Data: Entities (19); Relationships (25, +more)].
- S Yakuza: Nepřímá souvislost prostřednictvím obav Yakuzy, že „Squid“ mohou extrahovat stopy jejich programu z Johnnyho mysli [Data: Relationships (25); Entities (19)].
Role Ollamy a další režimy vyhledávání
Použití Ollamy ve spojení s GraphRAG umožňuje lokální nasazení jazykových modelů, což je obzvláště relevantní pro projekty s omezenými výpočetními zdroji nebo přísnými požadavky na důvěrnost dat. Ollama prokazuje schopnost efektivně pracovat i s 4B modely, čímž zajišťuje funkčnost RAG systému bez nutnosti používat drahé cloudové LLM. To výrazně snižuje vstupní bariéru pro experimenty a nasazení grafových RAG systémů v korporátním prostředí.
Kromě globálního a lokálního vyhledávání nabízí GraphRAG také režimy BASIC a DRIFT:
- BASIC Search: Představuje standardní vektorové vyhledávání v částech dokumentů. Slouží jako základní srovnávací bod pro porovnání výkonu a kvality odpovědí s komplexnějšími grafovými přístupy.
- DRIFT Search: Tato funkce je prezentována jako klíčová výhoda GraphRAG, připomínající Query Expansion v tradičních RAG systémech. Je však třeba vzít v úvahu, že DRIFT Search je náročný na zdroje a trvá podstatně déle, což může být kritické pro systémy s vysokými požadavky na rychlost odezvy.
Co je důležité
- Překonání omezení vektorového vyhledávání: GraphRAG využívá grafy znalostí pro hlubokou sémantickou analýzu a získávání informací, čímž překonává tradiční vektorové metody v přesnosti a kontextu.
- Lokální nasazení s Ollamou: Integrace s Ollamou umožňuje efektivní využití GraphRAG s lokálními jazykovými modely, snižuje náklady na výpočty a zvyšuje důvěrnost dat.
- Rozmanitost strategií vyhledávání: Systém nabízí globální, lokální, BASIC a DRIFT režimy vyhledávání, z nichž každý je optimalizován pro konkrétní typy dotazů, od širokých po detailní.
- Flexibilní nastavení a adaptace: Možnost modifikace promptů a analýzy generovaných grafů znalostí (
graph.graphml,community_reports.parquet) zajišťuje vysokou míru kontroly a adaptace pro specifické potřeby projektu. - Zvýšení relevance odpovědí: Díky strukturování znalostí ve formě grafu a použití pokročilých algoritmů dotazování GraphRAG výrazně zlepšuje kvalitu a relevanci generovaných odpovědí, čímž je činí informativnějšími a přesnějšími.
— Editorial Team
Zatím žádné komentáře.