105 lines
9.1 KiB
Markdown
105 lines
9.1 KiB
Markdown
---
|
|
id: 그래프-데이터베이스
|
|
title: "그래프 데이터베이스"
|
|
category: "10_Wiki/Topics"
|
|
status: "draft"
|
|
verification_status: "conceptual"
|
|
canonical_id: ""
|
|
aliases: ["지식 그래프", "GraphDB", "GraphRAG"]
|
|
duplicate_of: ""
|
|
source_trust_level: "B"
|
|
confidence_score: 0.90
|
|
created_at: 2026-06-08
|
|
updated_at: 2026-06-08
|
|
review_reason: ""
|
|
merge_history: []
|
|
tags: ["research", "RAG 아키텍처 및 파이프라인 기초", "GraphRAG"]
|
|
raw_sources: ["NotebookLM Synthesis", "Source 9", "Source 11", "Source 15", "Source 16", "Source 20"]
|
|
applied_in: ["LangGraph", "Microsoft Research GraphRAG", "Ragas Graph Schemas"]
|
|
github_commit: ""
|
|
---
|
|
|
|
# [[그래프 데이터베이스]]
|
|
|
|
## 🎯 한 줄 통찰 (One-line insight)
|
|
데이터를 단순한 텍스트 조각이 아닌 **개체(Entity)와 관계(Relationship)의 네트워크**로 구조화하여, 기존 벡터 검색이 놓치기 쉬운 복잡한 다중 도약(Multi-hop) 지식 연결을 정밀하게 복원하는 차세대 RAG 검색 인프라의 핵심이다 [1-3].
|
|
|
|
## 🧠 핵심 개념 (Core concepts)
|
|
- **지식 그래프 (Knowledge Graph):** 소스 문서에서 추출된 개체들을 정점(Node)으로, 그들 사이의 논리적 연결을 간선(Edge)으로 구축한 정형화된 지식 구조이다 [3, 4].
|
|
- **다중 도약 추론 (Multi-hop Reasoning):** 서로 직접적으로 연결되지 않은 여러 문서나 정보 단락 사이의 관계를 추적하여 질문에 답변하는 능력이다 [4, 5].
|
|
- **관계 인식 검색 (Relationship-aware Retrieval):** 개별 문서의 유사성뿐만 아니라, 데이터 간의 연결 구조 자체를 탐색하여 정밀한 맥락을 확보하는 기법이다 [2, 6].
|
|
- **커뮤니티 탐지 (Community Detection):** Leiden 알고리즘 등을 통해 지식 그래프 내의 밀집된 개체 그룹을 식별하고, 이들의 요약본을 글로벌 질의에 활용하는 기술이다 [2].
|
|
|
|
## 🧩 추출된 패턴 (Extracted patterns)
|
|
- **개체-관계 추출 패턴:** LLM을 사용하여 소스 문서에서 핵심 엔티티와 그 관계를 명제 형태로 추출하여 그래프를 생성한다 [2].
|
|
- **하이브리드 지식 결합 모델:** 낮은 지연 시간과 높은 재현율(Recall)을 위한 **벡터 검색(Vector RAG)**과 정밀한 관계 추적을 위한 **그래프 검색(GraphRAG)**을 혼합하여 사용하는 설계 패턴이 권장된다 [5, 6].
|
|
- **Retrieve-Reason-Prune:** 그래프 상에서 관련 이웃 노드를 탐색하고, LLM의 추론을 통해 불필요한 경로를 가지치기(Pruning)하며 정답을 찾아가는 전략이다 [5].
|
|
|
|
## 📖 세부 내용 (Details)
|
|
그래프 데이터베이스는 RAG 파이프라인에서 단순 평탄 벡터 색인 구조의 한계를 극복하기 위해 도입된다 [3]. 기존의 벡터 기반 검색은 의미적 유사성에만 의존하여 관련 문서 조각을 찾지만, 문서 전체를 관통하는 복잡한 논리 구조나 엔티티 간의 계층적 상호 참조를 파악하는 데는 어려움이 있다 [1, 5].
|
|
|
|
**GraphRAG의 작동 메커니즘**
|
|
GraphRAG는 원천 문서에서 개체와 관계를 추출하여 지식 그래프를 먼저 구축한다 [2]. Microsoft Research의 방법론에 따르면, 구축된 그래프에 **Leiden 알고리즘**을 적용하여 계층적 커뮤니티를 탐지하고 각 커뮤니티의 요약 정보를 생성한다 [2]. 사용자가 글로벌 질의를 수행할 때 시스템은 이러한 커뮤니티 요약을 검색 단위로 사용하여 전체 데이터셋에 대한 통찰력 있는 답변을 제공할 수 있다 [2].
|
|
|
|
**구현 프레임워크 및 도구**
|
|
- **LangGraph:** 개체와 개념의 엔티티 네트워크를 그래프 구조로 구축하여 사용자의 추상적 질문 흐름을 제어하는 데 활용된다 [3, 7].
|
|
- **Ragas:** 테스트 세트 생성(Testset Generation) 시 지식 그래프 구축(KG Building) 기능을 포함하며, 그래프 스키마 내에 변환(Transforms) 및 합성(Synthesizers) 로직을 관리한다 [8].
|
|
- **데이터베이스 연동:** Neo4j와 같은 전용 그래프 데이터베이스나, 지식 그래프를 텍스트로 변환하여 LLM에 주입하는 기법이 사용된다 [4].
|
|
|
|
## ⚖️ 모순 및 업데이트 (Contradictions & updates)
|
|
- **지연 시간과 정밀도의 트레이드오프:** 벡터 RAG는 검색 속도가 빠르고 인프라가 단순하지만 복잡한 관계 파악에 한계가 있는 반면, 그래프 기반 RAG는 정밀도와 설명 가능성은 높으나 인프라 구축 비용과 검색 지연 시간이 상대적으로 크다 [5, 6].
|
|
- **성능 실증:** Anthropic의 리서치에서는 임베딩과 키워드(BM25) 하이브리드만으로도 오류를 49% 줄였음을 강조하나, 더 깊은 엔티티 밀집 도메인(법률, 과학 등)에서는 그래프 구조의 도입이 필수적인 보완책으로 제시된다 [5, 9].
|
|
|
|
## 🛠️ 적용 사례 (Applied in summary)
|
|
- **Microsoft Research GraphRAG:** Leiden 알고리즘을 통한 커뮤니티 탐지 및 글로벌 질의 대응 시스템에 적용되었다 [2].
|
|
- **LangGraph 프레임워크:** 복잡한 인과 관계 및 논리 상호 참조를 구조화하기 위해 RAG 아키텍처에 연동되어 다중 도약 질문 제어에 활용된다 [3].
|
|
- **Ragas Library:** 지식 그래프를 기반으로 한 테스트 데이터 생성 및 평가 스키마에 그래프 엔진이 적용되었다 [8].
|
|
|
|
## ✅ 검증 상태 및 신뢰도
|
|
- **상태:** draft
|
|
- **검증 단계:** conceptual (Microsoft Research 및 주요 프레임워크에서 방법론이 제시됨)
|
|
- **출처 신뢰도:** B (연구 보고서 및 기술 블로그 기반 합성 정보)
|
|
- **중복 검사 결과:** 신규 생성 (지식 그래프 기반 RAG 최적화 주제로 단독 생성됨)
|
|
|
|
|
|
## 🔗 관련 문서 링크 (Related document links)
|
|
|
|
### 상위/유사 개념
|
|
#### [아키텍처/기반 기술]
|
|
- [[RAG 아키텍처 및 파이프라인 기초]]
|
|
- 연결 이유: 그래프 데이터베이스는 고도화된 RAG 시스템의 인덱싱 및 검색 단계에서 핵심 인프라로 기능함.
|
|
- 이 개념을 통해 더 깊게 이해할 수 있는 부분: 지식 저장 구조의 확장성 및 관계형 지식의 활용 방법.
|
|
- [[Vector Database]]
|
|
- 연결 이유: 의미적 유사성 검색을 담당하는 벡터 DB와 상호 보완적인 관계임.
|
|
- 이 개념을 통해 더 깊게 이해할 수 있는 부분: 유사성 기반 검색과 구조적 관계 검색의 기술적 차이.
|
|
|
|
#### [구현/활용 도구]
|
|
- [[Agentic RAG]]
|
|
- 연결 이유: 에이전트가 자율적으로 지식 그래프를 탐색(Graph Walk)하여 정답을 추론하는 로직의 기반이 됨.
|
|
- 이 개념을 통해 더 깊게 이해할 수 있는 부분: 제어 루프 내에서의 지식 탐색 전략.
|
|
- [[Multi-hop Reasoning]]
|
|
- 연결 이유: 그래프 데이터베이스 도입의 핵심적인 목적이자 해결 과제임.
|
|
- 이 개념을 통해 더 깊게 이해할 수 있는 부분: 파편화된 지식 간의 논리적 결합 메커니즘.
|
|
|
|
### 심층 후속 질문 (Deeper Research Questions)
|
|
- 그래프 구조에서 '노드'와 '간선'의 추출 품질이 최종 답변의 정밀도에 미치는 정량적 영향은 무엇인가?
|
|
- Leiden 알고리즘을 통한 커뮤니티 탐지 방식이 일반적인 벡터 클러스터링과 비교하여 글로벌 질의에서 갖는 구체적인 이점은 무엇인가?
|
|
- Vector RAG와 GraphRAG를 하이브리드로 구성할 때, 검색 결과의 랭킹을 통합하는 최적의 수리 모델은 무엇인가?
|
|
- 엔티티 밀집도가 낮은 도메인에서도 그래프 데이터베이스 도입이 비용 대비 효율적인가?
|
|
- 그래프 순회 시 발생하는 지연 시간(Latency)을 프로덕션 수준에서 제어하기 위한 캐싱 전략은 어떻게 설계해야 하는가?
|
|
- LangGraph를 활용한 상태 머신 기반 그래프 검색과 전통적인 지식 그래프 쿼리 언어(Cypher 등)의 성능 차이는 어떠한가?
|
|
|
|
### 실무 적용 맥락 (Practical Application Contexts)
|
|
- **Implementation:** 소스 문서에서 엔티티와 관계를 추출하는 파이프라인을 구축하고, 이를 Neo4j나 LangGraph 노드로 변환하여 저장해야 함 [3].
|
|
- **System Design:** 복잡한 질문에 대응하기 위해 벡터 검색으로 후보군을 좁히고 그래프 탐색으로 정밀도를 높이는 하이브리드 설계를 고려해야 함 [5].
|
|
- **Operation / Maintenance:** 지식 그래프의 엔티티 명칭 모호성을 제거(Entity Resolution)하고, 관계 업데이트 시 그래프의 무결성을 유지하는 모니터링이 필요함 [10].
|
|
- **Learning Path:** 단순 벡터 검색을 마스터한 후, 다중 도약 질문 해결을 위해 LangGraph나 GraphRAG 방법론을 학습하는 단계로 전개함 [11].
|
|
|
|
### 인접 주변 주제 (Adjacent Topics)
|
|
- [[Entity Extraction]]
|
|
- 확장 방향: 그래프 노드를 생성하기 위한 텍스트 마이닝 및 개체명 인식 기술.
|
|
- [[BM25]]
|
|
- 확장 방향: 희소 검색(Sparse)과 그래프 검색을 결합한 하이브리드 검색 고도화.
|
|
|
|
## 📝 변경 이력 (Change history)
|
|
- 2026-06-08: Initial draft generated via Datacollector_MAC P-Reinforce engine (Based on Sources [1, 2, 4-6, 8] |