--- id: [[P-Reinforce|P-Reinforce]]-AUTO-GRG-001 category: AI_and_ML confidence_score: 1.00 tags: [auto-reinforced, graph-rag, knowledge-graph, rag, semantic-relationship, complex-reasoning] last_reinforced: 2026-05-04 --- # [[GraphRAG|GraphRAG]] ## ๐Ÿ“Œ ํ•œ ์ค„ ํ†ต์ฐฐ (The Karpathy Summary) > "์ •๋ณด์˜ ์ง€๋„๋ฅผ ๊ทธ๋ฆฌ๋Š” ๊ฒ€์ƒ‰: ๋ฌธ์„œ๋ฅผ ๋‹จ์ˆœํ•œ ํ…์ŠคํŠธ ๋ฉ์–ด๋ฆฌ๊ฐ€ ์•„๋‹Œ ์—”ํ‹ฐํ‹ฐ(Entity)์™€ ๊ด€๊ณ„(Relationship)์˜ ๋„คํŠธ์›Œํฌ๋กœ ์žฌ๊ตฌ์„ฑํ•˜์—ฌ, ์—ฌ๋Ÿฌ ๋ฌธ์„œ์— ๊ฑธ์ณ ์žˆ๋Š” ๋ณต์žกํ•œ ๋งฅ๋ฝ๊ณผ ์ฃผ์ œ ๋‹จ์œ„์˜ ์งˆ๋ฌธ์— ์™„๋ฒฝํ•˜๊ฒŒ ๋‹ต๋ณ€ํ•˜๋Š” ์ง€์‹ ๊ทธ๋ž˜ํ”„ ๊ธฐ๋ฐ˜ RAG." ## ๐Ÿ“– ๊ตฌ์กฐํ™”๋œ ์ง€์‹ (Synthesized Content) GraphRAG๋Š” ์ง€์‹ ๊ทธ๋ž˜ํ”„(Knowledge Graph)์˜ ๊ตฌ์กฐ์  ์ด์ ๊ณผ LLM์˜ ์ƒ์„ฑ ๋Šฅ๋ ฅ์„ ๊ฒฐํ•ฉํ•˜์—ฌ ํ‰๋ฉด์ ์ธ ๋ฒกํ„ฐ ๊ฒ€์ƒ‰์˜ ํ•œ๊ณ„๋ฅผ ๊ทน๋ณตํ•˜๋Š” ์ฐจ์„ธ๋Œ€ RAG ์•„ํ‚คํ…์ฒ˜์ž…๋‹ˆ๋‹ค. 1. **๋™์ž‘ ์›๋ฆฌ (Mechanism)**: * **๊ทธ๋ž˜ํ”„ ์ถ”์ถœ (Graph Extraction)**: LLM์„ ์‚ฌ์šฉํ•˜์—ฌ ํ…์ŠคํŠธ ๋ฐ์ดํ„ฐ์—์„œ ์ธ๋ฌผ, ์žฅ์†Œ, ๊ฐœ๋… ๋“ฑ์˜ ์—”ํ‹ฐํ‹ฐ์™€ ๊ทธ๋“ค ์‚ฌ์ด์˜ ๊ด€๊ณ„๋ฅผ ์ถ”์ถœํ•ฉ๋‹ˆ๋‹ค. * **์ปค๋ฎค๋‹ˆํ‹ฐ ์š”์•ฝ (Community Summarization)**: ๊ฑฐ๋Œ€ํ•œ ๊ทธ๋ž˜ํ”„๋ฅผ ๋ฐ€์ ‘ํ•˜๊ฒŒ ์—ฐ๊ฒฐ๋œ ๊ทธ๋ฃน(Community)์œผ๋กœ ๋‚˜๋ˆ„๊ณ , ๊ฐ ๊ทธ๋ฃน์— ๋Œ€ํ•œ ์š”์•ฝ์„ ๋ฏธ๋ฆฌ ์ƒ์„ฑํ•ด๋‘ก๋‹ˆ๋‹ค. * **์ „์—ญ ๋ฐ ๊ตญ์†Œ ๊ฒ€์ƒ‰**: ์ „์ฒด ์ง€์‹์˜ ๊ฐœ์š”๋ฅผ ๋ฌป๋Š” ์งˆ๋ฌธ(Global Query)์—๋Š” ์ปค๋ฎค๋‹ˆํ‹ฐ ์š”์•ฝ์„ ํ™œ์šฉํ•˜๊ณ , ํŠน์ • ์—”ํ‹ฐํ‹ฐ์— ๋Œ€ํ•œ ์งˆ๋ฌธ(Local Query)์—๋Š” ๊ทธ๋ž˜ํ”„ ๋…ธ๋“œ๋ฅผ ํƒ์ƒ‰ํ•ฉ๋‹ˆ๋‹ค. 2. **์™œ GraphRAG์ธ๊ฐ€?**: * **๋‹ค๋‹จ๊ณ„ ์ถ”๋ก  ([[Multi-hop Reasoning|Multi-hop]])**: ๋ฌธ์„œ A์™€ ๋ฌธ์„œ C ์‚ฌ์ด์˜ ์—ฐ๊ฒฐ ๊ณ ๋ฆฌ๋ฅผ ๊ทธ๋ž˜ํ”„ ์ƒ์—์„œ ์ง์ ‘ ์ถ”์ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. * **์ฃผ์ œ์  ํ†ต์ฐฐ**: "์ด ์ „์ฒด ๋ฌธ์„œ๋“ค์˜ ํ•ต์‹ฌ ์ฃผ์ œ๊ฐ€ ๋ญ์•ผ?"์™€ ๊ฐ™์€ ํฌ๊ด„์ ์ธ ์งˆ๋ฌธ์— ๋Œ€ํ•ด ๋ฒกํ„ฐ ๊ฒ€์ƒ‰๋ณด๋‹ค ํ›จ์”ฌ ์šฐ์ˆ˜ํ•œ ๋‹ต๋ณ€์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. 3. **์ง€์‹์˜ ๋ฐ€๋„**: * ํŒŒํŽธํ™”๋œ ์ •๋ณด๋ฅผ ์—ฐ๊ฒฐ๋œ ์ง€์‹ ์ฒด๊ณ„๋กœ ์Šน๊ฒฉ์‹œ์ผœ, ์ •๋ณด์˜ ๋ˆ„๋ฝ ์—†๋Š” ๊ณ ๋ฐ€๋„ ์ปจํ…์ŠคํŠธ๋ฅผ LLM์— ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ## โš–๏ธ Trade-offs & Caveats * **๊ณ ๋น„์šฉ ์ „์ฒ˜๋ฆฌ**: ์ง€์‹ ๊ทธ๋ž˜ํ”„๋ฅผ ๊ตฌ์ถ•ํ•˜๊ณ  ์ปค๋ฎค๋‹ˆํ‹ฐ ์š”์•ฝ์„ ์ƒ์„ฑํ•˜๋Š” ๊ณผ์ •์—์„œ ์ผ๋ฐ˜ RAG ๋Œ€๋น„ 3~5๋ฐฐ ์ด์ƒ์˜ LLM ํ† ํฐ ๋น„์šฉ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. * **๊ตฌ์ถ• ์ง€์—ฐ ์‹œ๊ฐ„**: ๋ฐฉ๋Œ€ํ•œ ์–‘์˜ ๋ฌธ์„œ๋ฅผ ๊ทธ๋ž˜ํ”„๋กœ ์ธ๋ฑ์‹ฑํ•˜๋Š” ๋ฐ ์ƒ๋‹นํ•œ ์‹œ๊ฐ„์ด ์†Œ์š”๋ฉ๋‹ˆ๋‹ค. * **์ถ”์ถœ ๋…ธ์ด์ฆˆ**: ์—”ํ‹ฐํ‹ฐ ์ธ์‹ ๋ฐ ๊ด€๊ณ„ ์ •์˜ ๊ณผ์ •์—์„œ AI๊ฐ€ ์ž˜๋ชป๋œ ์—ฐ๊ฒฐ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, ๊ทธ๋ž˜ํ”„ ์ •์ œ ๋กœ์ง์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ## ๐Ÿ’ป ์‹ค์ „ ๊ตฌํ˜„ ์ฝ”๋“œ (Boilerplate) `Microsoft GraphRAG` ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๊ฐœ๋…์  ์ธ๋ฑ์‹ฑ ์›Œํฌํ”Œ๋กœ์šฐ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค. ```python # GraphRAG ํ”„๋กœ์ ํŠธ ์„ค์ • ๋ฐ ์ธ๋ฑ์‹ฑ (CLI ์˜ˆ์‹œ) # 1. ์ดˆ๊ธฐํ™” # graphrag init --root ./my_knowledge_garden # 2. ์ธ๋ฑ์‹ฑ ์‹คํ–‰ (ํ…์ŠคํŠธ -> ์—”ํ‹ฐํ‹ฐ ์ถ”์ถœ -> ๊ทธ๋ž˜ํ”„ ๊ตฌ์ถ•) # graphrag index --root ./my_knowledge_garden # 3. ์งˆ์˜ ์‹คํ–‰ (Global/Local ์ฟผ๋ฆฌ ๋ชจ๋“œ ์„ ํƒ ๊ฐ€๋Šฅ) from graphrag.query.context_builder import GlobalContextBuilder from graphrag.query.engine import GlobalSearch # ๊ฐœ๋…์  ํŒŒ์ด์ฌ API ํ˜ธ์ถœ ์˜ˆ์‹œ query_engine = GlobalSearch( context_builder=GlobalContextBuilder(graph_storage, community_reports), llm=ChatOpenAI(model="gpt-4-turbo") ) response = query_engine.search("์ด ์ง€์‹ ๊ธฐ์ง€์˜ ์ฃผ์š” ์•„ํ‚คํ…์ฒ˜์  ํŠน์ง•๋“ค์„ ์š”์•ฝํ•ด์ค˜.") print(response.answer) ``` ## ๐Ÿ”— ์ง€์‹ ์—ฐ๊ฒฐ (Graph) * **๊ธฐ๋ฐ˜ ๊ธฐ์ˆ **: [[Knowledge Graph|Knowledge Graph]], [[Retrieval-Augmented Generation (RAG)|RAG]] * **๊ณ ๋„ํ™” ๊ธฐ๋ฒ•**: [[Multi-hop Reasoning|Multi-hop Reasoning]], [[Entity Relationship Mapping|ER Mapping]] * **๋น„๊ต ๊ฐœ๋…**: [[Vector Search|Vector Search (Baseline)]], [[Adaptive RAG|Adaptive RAG]] --- *Last updated: 2026-05-04*