GraphRAG 작동 방식
Source: Dev.to
색인 단계 (오프라인, 비용이 많이 들지만 한 번만 수행)
- 텍스트 청킹 – 입력 텍스트를 관리 가능한 청크로 나눕니다.
- 엔터티 추출 – LLM을 사용해 각 청크에서 엔터티(사람, 장소, 조직, 개념)와 관계를 식별합니다.
- 지식 그래프 구축 – 노드는 엔터티, 엣지는 관계(설명 포함)인 그래프를 생성합니다.
- 커뮤니티 탐지 – 그래프 알고리즘(예: Leiden 알고리즘)을 적용해 서로 밀접하게 연관된 엔터티 클러스터(커뮤니티)를 식별합니다.
- 계층적 요약 – 각 커뮤니티에 대해 여러 수준의 요약을 생성합니다(하향식 계층: 상세한 저수준 커뮤니티 → 상위 수준 집계 요약).
그 결과는 구조화된 색인: 그래프 + 사전 생성된 커뮤니티 요약입니다. 이는 벡터 임베딩만으로는 놓치기 쉬운 데이터 전체에 걸친 암묵적 연결을 포착합니다.
질의 단계
- 로컬 질의(구체적인 세부 사항) – 언급된 엔터티와 가까운 관련 서브그래프 또는 텍스트 청크를 검색합니다.
- 글로벌 질의(전체적인 이해) –
- 질의와의 유사성을 기반으로 관련 커뮤니티 요약을 선택합니다.
- 각 요약으로부터 부분 답변을 생성하도록 LLM을 활용합니다.
- 부분 답변을 집계하고 요약해 최종 일관된 응답을 만듭니다.
커뮤니티 단위로 수행되는 이 “맵‑리듀스” 방식은 전체적인 추론을 가능하게 합니다.
표준 RAG보다 나은 이유
- 포괄성 – 더 넓은 주제와 연결을 포착해 보다 완전한 답변을 제공합니다.
- 다양성 – 반복을 줄이고 다양한 관점을 드러냅니다.
- 역량 강화 – 복잡한 데이터셋(예: 상충되는 뉴스 소스)에 대해 근거 기반의 통찰을 제공합니다.
원 논문 실험(데이터셋 ≈ 100만 토큰)에서는 GraphRAG가 전역 질문에 대해 포괄성 및 다양성 같은 지표에서 기존 RAG 대비 70–80 % 향상된 성능을 보였습니다.
실용적인 세부 사항
- 오픈소스 구현: microsoft/graphrag on GitHub
- 비용 – 색인 단계는 추출 및 요약을 위한 다수의 LLM 호출로 비용이 많이 들지만, 질의 단계는 효율적입니다.
- 후속 개선 – LazyGraphRAG(비용 효율 향상), DRIFT 검색, 동적 커뮤니티 선택, 새로운 도메인에 대한 자동 튜닝 등 다양한 변형이 존재합니다.
요약
GraphRAG는 그래프 구조를 활용해 “전역 의미 형성”을 가능하게 함으로써, 대규모·프라이빗·내러티브가 풍부한 데이터셋에 대해 LLM이 추론하도록 하는 중요한 진보를 나타냅니다. 표준 RAG가 불완전하거나 피상적인 답변을 제공할 때 특히 유용합니다.