Microsoft GraphRAG 핵심 요약
GraphRAG는 LLM을 활용하여 원본 텍스트로부터 개체 Entity, 관계 Relation, 세부 주장 Claim을 추출하고 계층적 지식 그래프를 구성하는 최첨단 RAG 아키텍처입니다. 기존 벡터 검색이 특정 키워드 주변의 미시적 청크만 가져오는 한계를 극복하고, 문서 전체의 주제를 아우르는 거시적 질문에도 완벽한 인사이트를 제공합니다.
이 문서의 주요 테마가 무엇인가라는 질문에 벡터 검색이 침묵하는 이유
기존 벡터 RAG는 사용자의 질문 벡터와 코사인 유사도가 높은 상위 서너 개의 텍스트 청크만 검색합니다. 따라서 특정 숫자나 단편적 사실을 찾는 데는 유리하지만, 데이터셋 전체의 전반적인 동향이나 분산된 사건 간의 인과관계를 묻는 질문에는 전혀 엉뚱한 대답을 내놓습니다.
GraphRAG는 지식 그래프와 커뮤니티 탐지 Community Detection 알고리즘을 결합합니다. 문서 전반의 개체 네트워크를 분석하여 사전에 계층별 요약 리포트를 만들어 두기 때문에 거시적 분석 질문에도 막힘없이 완벽한 답변을 생성합니다.
전통적 베이직 RAG vs 마이크로소프트 GraphRAG 비교표
| 비교 항목 | 전통적 베이직 Vector RAG | 마이크로소프트 GraphRAG |
|---|---|---|
| 지식 표현 방식 | 고차원 밀집 벡터 임베딩 청크 나열 | 개체와 관계 노드로 연결된 지식 그래프 네트워크 |
| 거시적 질문 대응력 | 사각지대 발생 전체 맥락 파악 불가 | 사전 생성된 커뮤니티 요약으로 완벽한 통찰 제공 |
| 다단계 연결 추론 | 청크 간 연결 고리가 없어 추론 실패 | 그래프 에지 탐색을 통해 복합 관계망 자동 규명 |
| 사전 인덱싱 비용 | 임베딩 모델 호출만으로 저렴하게 완료 | LLM 기반 개체 관계 추출로 사전 토큰 비용 발생 |
| 답변 신뢰성 환각 | 유사도 높은 오답 청크 참조 위험 | 지식 그래프 기반 팩트 체킹으로 환각 극소화 |
GraphRAG 파이프라인 구축 3단계 가이드
1단계. 작업 디렉토리 초기화 및 graphrag 패키지 설치
pip install graphrag 명령어를 실행하고 python -m graphrag.index --init 명령어로 기본 settings.yaml 파일을 생성합니다.
2단계. settings.yaml에 OpenAI 또는 로컬 LLM 설정
인덱싱에 사용할 모델과 임베딩 모델의 API 키 및 엔드포인트를 입력합니다.
3단계. python -m graphrag.index 명령어로 인덱싱 실행
입력 문서 폴더에 텍스트 파일을 넣고 빌드를 돌리면 엔터티 추출, 지식 그래프 생성, 커뮤니티 리포트가 자동으로 생성됩니다.
자주 묻는 질문 FAQ
Q. 글로벌 쿼리와 로컬 쿼리는 어떤 차이가 있나요?
글로벌 쿼리는 커뮤니티 요약 리포트를 기반으로 전체 문서의 경향을 답하고, 로컬 쿼리는 특정 개체 중심의 이웃 노드를 탐색하여 세부 사실을 답합니다.
Q. 인덱싱 비용이 많이 들지 않나요?
대규모 문서 인덱싱 시 많은 토큰이 소모될 수 있으므로, gpt-4o-mini나 로컬 Ollama Qwen 모델을 연결하여 사전 인덱싱 비용을 90% 이상 절감할 수 있습니다.
Q. 네오포제 Neo4j 같은 외부 그래프 DB가 꼭 필요한가요?
필수가 아닙니다. 기본적으로 Parquet 파일 형태로 로컬 디스크에 그래프 구조를 저장하므로 별도의 무거운 외부 데이터베이스 없이도 가볍게 동작합니다.
