GraphRAG: RAG์ Knowledge Graph์ ๋ง๋จ
๐๏ธ GraphRAG์ ๋ฑ์ฅ ๋ฐฐ๊ฒฝ
๋ฐ์ผํ๋ก ๋๊ท๋ชจ ์ธ์ด ๋ชจ๋ธ, LLM์ด ๋ฑ์ฅํ์ฌ ์ฐ๋ฆฌ์ ์ผ์์ด ํฌ๊ฒ ๋ณํํ์๋ค. GPT๋ LLaMA์ ๊ฐ์ ๋ชจ๋ธ๋ค์ ์ฌ์ฉ์์ ์ฟผ๋ฆฌ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋๋ผ์ด ์์ค์ ์๋ต์ ์์ฑํ๋ฉฐ ๊ฐ๋ ฅํ ํผํฌ๋จผ์ค๋ฅผ ๋ณด์ด์ง๋ง, ๊ทธ์ ๋์์ ์น๋ช ์ ์ธ ํ๊ณ๋ ๊ฐ์ง๊ณ ์๋ค. ๋ฐ๋ก LLM์ด ํ์ต ์ดํ ์ ๋ฐ์ดํธ๋ ์ต์ ์ ๋ณด๋ค์ ๋ํด ๋ฌด์งํ๊ณ , ํ์ต๋์ง ์์ ํน์ ๋๋ฉ์ธ ์ง์์ ๋ํด ์ ๋๋ก ์๋ตํ์ง ๋ชปํ๋ค๋ ์ ์ด๋ค. ์ด๋ฌํ ํ๊ณ๋ ์ข ์ข Hallucination์ด๋ผ๋ ํํ๋ก ๋ํ๋๋ฉฐ, ๊ทธ๋ด๋ฏํ์ง๋ง ์ฌ์ค๊ณผ ๋ค๋ฅธ ๋ต๋ณ์ ์์ฑํ๊ฒ ๋๋ค.
์ด๋ฌํ ๋ฌธ์ ๋ฅผ ๋ณด์ํ๊ธฐ ์ํด ๋ฑ์ฅํ ๊ฒ์ด RAG(Retrieval-Augmented Generation)์ด๋ค. RAG์ ์ฃผ์ ์์ด๋์ด๋ '์ง์ ๊ฒ์'๊ณผ LLM์ ๊ฒฐํฉ์ด๋ค. ์ต์ ์ ๋ณด ๋ฑ์ ํฌํจํ ์ธ๋ถ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ณ๋๋ก ๋๊ณ , ์ฌ์ฉ์๋ก๋ถํฐ ์ง๋ฌธ์ด ๋ค์ด์ค๋ฉด ์ธ๋ถ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก๋ถํฐ ์ฐ๊ด์ฑ์ด ๋์ ์ ๋ณด๋ฅผ ๊ฒ์(Retrieval)ํ๋ค. ์ดํ LLM์ ์ด ์ง์์ ํ์ฉํ์ฌ ์๋ต์ ์์ฑ(Generation)ํ๋ค. ์ด ์ธ๋ถ ์ง์์ ์ผ๋ฐ์ ์ผ๋ก ๋ฒกํฐ๋ก ๋ณํ๋์ด ์ ์ฅ๋๋ฉฐ, ์ฌ์ฉ์ ์ฟผ๋ฆฌ์ ๋ฒกํฐ ์ ์ฌ๋๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ์ ํ ์ ๋ณด๋ฅผ ์ฐพ์๋ธ๋ค. ์ด๋ฌํ ๋ฐฉ์์ ํํ ๋ฒกํฐ ๊ธฐ๋ฐ์ RAG๋ผ๊ณ ๋ถ๋ฆฐ๋ค.
๊ทธ๋ฌ๋ RAG ๋ฐฉ์๋ ์๋ฒฝํ์ง ์๋ค. ๋ง์ผ ์ฌ๋ฌ ๊ฐ์ ๋ฌธ์๊ฐ ์ฃผ์ด์ก์ ๋, RAG๋ ๋ฌธ์ ๊ฐ์ ๋งฅ๋ฝ์ด๋ ๊ด๊ณ์ฑ์ ์ถฉ๋ถํ ๊ณ ๋ คํ์ง ๋ชปํ๋ค. ๋ํ ์๋ก ๋ค๋ฅธ ๋๋ฉ์ธ์ด ์์ ๋, ๋ ๋๋ฉ์ธ์ ํตํฉํ ๊น์ ์ธ์ฌ์ดํธ๋ฅผ ์ป๊ธฐ๋ ์ด๋ ต๋ค. ๋ํ ์ฌ์ ํ Hallucination์ด ๋ฐ์ํ๋ค.
์ด๋ฌํ ๋ฌธ์ ๋ฅผ ๊ทน๋ณตํ๊ธฐ ์ํด ์ ์๋ ๊ฒ์ด GraphRAG์ด๋ค. GraphRAG๋ ๋ง์ดํฌ๋ก์ํํธ์์ ์๋กญ๊ฒ ์ ์ํ ๋ชจ๋ธ๋ก, ๋ฌธ์ ๊ฐ์ ๊ด๊ณ๋ฅผ ๊ทธ๋ํ(graph) ๊ตฌ์กฐ๋ก ํํํ์ฌ ๋ฌธ์๋ค ๊ฐ์ ์ฐ๊ฒฐ์ฑ๊ณผ ๋งฅ๋ฝ์ ๋ณด์กดํ๋ฉฐ ์ ๋ณด๋ฅผ ํ์ฅํ๋ค.
๐๏ธ GraphRAG์ ํต์ฌ ์์ด๋์ด
๋ฒกํฐ ๊ธฐ๋ฐ RAG๋ ์ฌ์ฉ์ ์ฟผ๋ฆฌ์ ๊ฐ์ฅ ์ ์ฌํ ๋ฌธ์๋ค์ ๊ฐ๋ณ์ ์ผ๋ก ์ ํํ๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ๊ฐ์ ๋งฅ๋ฝ์ด๋ ํ๋ฆ์ ๋์น๊ธฐ ์ฌ์ ๋ค. ์ด์ ๋ฐํด GraphRAG๋ ๋ฌธ์ ํ๋๋ง ๋ณด๋ ๊ฒ์ด ์๋๋ผ ๊ทธ ๋ฌธ์์ ์ฐ๊ฒฐ๋ ์ด์ ๋ฌธ์๊น์ง ํจ๊ป ๊ณ ๋ คํ๊ธฐ ๋๋ฌธ์ ๋์ฑ ํ๋ถํ ๋งฅ๋ฝ ์ ๋ณด๋ฅผ ์์งํ ์ ์๋ค. ์ด๋ฅผ ํตํด "์ด ๋ฐ์ดํฐ์ ์ฃผ์ ์ฃผ์ ๋ ๋ฌด์์ ๋๊น"์ ๊ฐ์ ํฌ๊ด์ ์ธ ๊ฒ์ ๋ฐ ๋ต๋ณ์ ์ ํฉํ๋ค.
GraphRAG์์ ๊ฐ ๋ฌธ์๋ ๋ ธ๋(Node)๋ก ํํ๋๋ฉฐ, ๋ฌธ์ ๊ฐ์ ์ฐ๊ฒฐ๊ด๊ณ๋ ์ฃ์ง(Edge)๋ก ํํ๋๋ค. ์ด๋ฌํ ์ง์ ๊ทธ๋ํ๊ฐ ์์ฑ๋๋ฉด, ์ฌ์ฉ์ ์ฟผ๋ฆฌ์ ๊ฐ์ฅ ์ ํฉํ anchor node๋ฅผ ๋จผ์ ์ฐพ๊ณ , ๊ทธ ์ด์ ๋ ธ๋๋ค์ ํจ๊ป ์ถ์ถํจ์ผ๋ก์จ ์ฟผ๋ฆฌ์ ๊ด๋ จ๋ subgraph๋ฅผ ํ์ฑํ๋ค. ์ด ํ์ ๊ทธ๋ํ์์ ์ฐ๊ฒฐ๋ ๋ฌธ์๋ค์ ๊ธฐ๋ฐ์ผ๋ก context๋ฅผ ๊ตฌ์ฑํ์ฌ LLM์ ์ ๋ ฅํ๊ฒ ๋๋ค.
GraphRAG์ ์ ์ฒด ๋์์ ์๋์ ๊ฐ์ ๋จ๊ณ๋ก ๊ตฌ์ฑ๋๋ค.
1. Knowledge Graph ์์ฑ
์ ์ฒด ๋ฌธ์ ์งํฉ์ผ๋ก๋ถํฐ ์๋ฏธ์ /๋ ผ๋ฆฌ์ ์ธ ์ฐ๊ฒฐ์ ๋ฐํ์ผ๋ก Knowledge Graph๋ฅผ ์์ฑํ๋ค. ์ด ๊ทธ๋ํ๋ ๋ฌธ์๋ค์ ๋ ธ๋๋ก, ์ฐ๊ฒฐ ๊ด๊ณ๋ฅผ ์ฃ์ง๋ก ํํํ๋ค.
2. ์ฟผ๋ฆฌ์ anchor node ๋งคํ
์ฌ์ฉ์์ ์ฟผ๋ฆฌ๋ฅผ ์ ๋ ฅ ๋ฐ์ผ๋ฉด, ์ด ์ฟผ๋ฆฌ์ ๊ฐ์ฅ ๊ด๋ จ ์๋ ๋ฌธ์๋ฅผ ๊ทธ๋ํ ์์์ anchor node๋ก ์ ํํ๋ค.
3. Subgraph ํ์ฅ
anchor node๋ฅผ ๊ธฐ์ค์ผ๋ก ์ด์ ๋ ธ๋๋ค์ ํ์ฅํ์ฌ ํ์ ๊ทธ๋ํ๋ฅผ ์์ฑํ๋ค.
4. Context ๊ตฌ์ฑ ๋ฐ LLM ์์ฑ
์ถ์ถ๋ subgraph ๋ด์ ๋ฌธ์๋ค์ ์กฐํฉํ์ฌ ํ๋์ context๋ฅผ ๊ตฌ์ฑํ๊ณ , ์ด๋ฅผ LLM์ ์ ๋ ฅํ์ฌ ์๋ต์ ์์ฑํ๋ค.
๐๏ธ GraphRAG์ ์ฅ์
GraphRAG์ ์ฅ์ ์ ํฌ๊ฒ 3๊ฐ์ง๋ก ์ ๋ฆฌํ ์ ์๋ค.
1. ๋ฌธ๋งฅ ๋ณด์กด
๋ฌธ์ ๊ฐ์ ๊ด๊ณ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก context๋ฅผ ๊ตฌ์ฑํ๊ธฐ ๋๋ฌธ์ ์ ๋ณด์ ํ๋ฆ์ด๋ ๋ ผ๋ฆฌ์ ์ฐ๊ฒฐ์ด ์ ์ง๋๋ค. ์ด๋ ํนํ ๊ธด ๋ฌธ์๋ ๋ณต์กํ ์ฃผ์ ์ ๋ํด ์ ์ฉํ๋ค.
2. ์ ๋ณด ์ฐ๊ฒฐ์ฑ ๊ฐํ
๋จ์ํ ์ฟผ๋ฆฌ์ ์ ์ฌํ ๋ฌธ์๋ง ๋ณด๋ ๊ฒ์ด ์๋๋ผ, ๊ด๋ จ๋ ์ฌ๋ฌ ๋ฌธ์๋ค์ ํจ๊ป ๊ณ ๋ คํจ์ผ๋ก์จ ๋จํธ์ ์ธ ์ง์์ด ์๋๋ผ ํตํฉ์ ์ด๊ณ ์ฐ๊ฒฐ๋ ์ง์์ ํ์ฉํ ์ ์๋ค.
3. Hallucination ์ํ
LLM์ด ์ฐธ๊ณ ํ๋ ์ ๋ณด๊ฐ ๋์ฑ ํ๋ถํด์ง๊ธฐ ๋๋ฌธ์ ๊ฒฐ๊ณผ์ ์ผ๋ก hallucination ๋ฌธ์ ๋ฅผ ์ค์ด๊ณ ์๋ต์ ์ ํ์ฑ์ ๋์ด๋ ๋ฐ ๊ธฐ์ฌํ๋ค.
https://microsoft.github.io/graphrag/
Welcome - GraphRAG
Welcome to GraphRAG ๐ Microsoft Research Blog Post ๐ GraphRAG Accelerator ๐ GraphRAG Arxiv Figure 1: An LLM-generated knowledge graph built using GPT-4 Turbo. GraphRAG is a structured, hierarchical approach to Retrieval Augmented Generation (RAG),
microsoft.github.io
https://arxiv.org/pdf/2404.16130