[Hallucination] Part 4. 지식의 지도를 그리다: GraphRAG의 인덱싱(Indexing) 원리

JOINSPIRED·2026년 3월 11일
post-thumbnail

지금까지 Part 1~3을 통해 우리는 LLM이 문맥을 놓치는 현상을 이해하고, 모델 스스로 검색 품질을 평가하며(Self-RAG), 부족한 지식을 웹으로 보완하는(CRAG) 기술적 진화를 살펴보았습니다. 이 방법들은 "프랑스의 수도는 어디인가?"와 같은 구체적인 사실(Fact)을 찾아 답변하는 데 매우 탁월합니다.

하지만 현실의 비즈니스 질문은 이보다 훨씬 포괄적입니다. 예를 들어, "수만 페이지의 고객 피드백 전체를 관통하는 주요 불만 트렌드는 무엇인가?"라는 질문을 던진다면 어떨까요? 기존의 벡터 검색(Vector RAG) 방식은 '트렌드'나 '불만'이라는 단어와 유사한 지엽적인 문서 몇 개만 가져올 뿐, 데이터 전체의 거시적인 맥락을 요약하지 못해 환각을 일으키기 쉽습니다.

마이크로소프트(Microsoft) 연구진이 발표한 GraphRAG는 지식 그래프(Knowledge Graph)를 도입해 파편화된 정보를 연결하고 데이터 전체를 조망하는 혁신적인 아키텍처입니다.


[배경 지식] RAG의 두 가지 시점: 인덱싱(Indexing)과 쿼리(Query)

모든 RAG 시스템은 크게 두 가지 시점으로 나뉘어 작동합니다. 이를 '시험공부'와 '실제 시험'에 비유하면 이해가 빠릅니다.

  1. 인덱싱 시점 (Indexing Time) = 요약 노트 만들기: 사용자가 질문하기 전, 방대한 원본 데이터를 시스템이 미리 읽고 찾기 좋게 정리하는 '사전 준비' 단계입니다. 기존 RAG는 문서를 작게 쪼개어 숫자로 된 벡터(Vector)로 변환해 두는 것이 전부였습니다.
  2. 쿼리 시점 (Query Time) = 실제 시험 응시: 사용자가 실제로 질문(Query)을 던졌을 때, 미리 만들어둔 인덱스에서 관련 내용을 찾아 LLM이 최종 답변을 작성하는 단계입니다.

GraphRAG의 진정한 혁신은 바로 이 '인덱싱 시점'에 엄청난 공을 들여 거대한 지식의 지도를 미리 그려둔다는 점에 있습니다.


1. 지식 그래프(Graph)는 무엇으로, 어떻게 구축하는가?

GraphRAG는 인덱싱 시점에 외부 데이터베이스를 가져오는 것이 아니라, LLM이 직접 원본 문서를 읽고 지식을 추상화(Abstractive Summarization)하여 스스로 지식 그래프를 축조합니다. 텍스트를 의미 단위(Chunks)로 쪼갠 뒤, 모델에게 다음 세 가지 핵심 요소를 추출하도록 지시합니다.

  • 엔티티 (Nodes): 텍스트에 등장하는 중요한 고유명사들입니다. 인물, 조직, 장소 등이 그래프의 '점(Node)'이 됩니다. (예: '애플', '아이폰')
  • 관계 (Edges): 추출된 엔티티들이 서로 어떤 연관이 있는지 분석합니다. 이 연결 고리가 엔티티들을 잇는 '선(Edge)'이 됩니다. (예: '애플'은 '아이폰'을 '출시했다')
  • 주장 및 사실 (Claims): 엔티티들과 관련된 검증 가능한 사실적 진술들을 뽑아냅니다. (예: '아이폰은 2007년에 처음 공개되었다')

결과적으로 문서 안에 흩어져 있던 단어들이 서로 촘촘하게 연결된 거대한 정보의 거미줄(지식 그래프)이 완성됩니다.


2. GraphRAG의 핵심: '커뮤니티(Community)'

지식 그래프를 구축하고 나면 수만 개의 점과 선이 복잡하게 뒤엉키게 됩니다. 이 거대한 그래프 전체를 LLM의 컨텍스트 창에 밀어 넣는 것은 물리적으로 불가능합니다. 이를 해결하기 위해 도입한 네트워크 과학의 개념이 바로 '커뮤니티(Community)'입니다.

커뮤니티란, 그래프 내에서 '서로 유독 더 밀접하게 연결된 엔티티들의 무리'를 뜻합니다. 인간 사회로 비유하면 그 계층 구조가 명확해집니다.

  • 하위 커뮤니티: 수많은 개인(엔티티)이 모여 형성된 '가족'이나 '팀' 단위 (미시적 정보)
  • 중간 커뮤니티: 팀들이 모여 이루어진 '회사'나 '동호회' 단위 (중간 맥락)
  • 최상위 루트 커뮤니티: 조직들이 모여 형성된 '국가 경제'나 '산업군' (거시적 테마)

GraphRAG는 라이덴(Leiden) 알고리즘을 사용해 전체 지식 그래프를 이러한 계층적 커뮤니티로 분할합니다. 그리고 인덱싱 시점에 각 커뮤니티별로 "이 무리의 핵심 인물은 누구이며, 어떤 주요 이슈가 얽혀 있는가"를 설명하는 요약 보고서(Community Summaries)를 미리 작성해 둡니다.


3. 숲을 조망하는 답변: 맵-리듀스(Map-Reduce)와 전역적 쿼리

사용자가 "이 데이터셋 전체를 관통하는 핵심 트렌드는 무엇인가?"와 같은 거시적인 질문을 던지는 쿼리 시점(Query Time)이 되면, GraphRAG는 개별 문서 조각을 찾는 대신 미리 생성된 '커뮤니티 요약 보고서'를 활용해 맵-리듀스(Map-Reduce) 공정을 가동합니다.

  1. 매핑 (Map): 시스템은 수많은 커뮤니티 요약 보고서들을 LLM에게 병렬로 나누어 줍니다. LLM은 각각의 보고서를 읽고 질문에 대한 '부분적인 답변(Intermediate answers)'을 작성하며 유용성 점수를 매깁니다.
  2. 리듀스 (Reduce): 쓸모없다고 판단된 답변은 필터링하고, 살아남은 답변들을 점수 순으로 정렬합니다. 이를 최종적으로 종합하여 데이터 전체를 아우르는 '전역적 답변(Global Answer)'을 도출합니다.

💡 [Deep Dive] 97%의 비용을 아끼는 '루트 레벨(C0)'

마이크로소프트의 실험 결과, 가장 거시적인 테마를 담은 최상위 '루트 레벨(C0)' 커뮤니티 요약본들만 활용해도 전체 텍스트 요약(TS) 대비 토큰 소모량을 무려 97% 이상 절약할 수 있었습니다. 또한 기존 벡터 RAG 대비 답변의 포괄성에서 72~83%의 높은 승률을 거두었습니다.


4. 실제 도입 및 배포 현황: 오픈소스 생태계의 확장

GraphRAG 아키텍처는 이미 개발자들이 즉시 활용할 수 있는 강력한 생태계를 갖추고 있습니다.

  • 공식 오픈소스 배포: GraphRAG 전체 파이프라인은 MIT 라이선스 기반 오픈소스로 GitHub에 전면 공개되어 있습니다.
  • 프레임워크 통합: LangChainLlamaIndex의 확장 모듈로 통합되어 기존 RAG 파이프라인에 쉽게 이식할 수 있습니다.
  • 그래프 DB와의 결합: Neo4jNebulaGraph와 같은 상용 그래프 데이터베이스 플랫폼들과도 성공적으로 연동됩니다.

시리즈 결론

우리는 총 4편의 긴 여정을 통해 LLM의 고질적인 환각을 억제하는 RAG 기술의 진화를 살펴보았습니다.

  • Part 1 (Lost in the Middle): 긴 문맥의 중간 정보를 망각하는 모델의 인지적 한계 확인.
  • Part 2 (Self-RAG): 모델 스스로 검색 품질을 비판(Critique)하는 능동적 성찰 도입.
  • Part 3 (CRAG): 부적절한 정보를 버리고 외부 웹(Web)으로 확장하는 교정 메커니즘.
  • Part 4 (GraphRAG): 지식 그래프를 통해 데이터 전체의 맥락(Global Sensemaking)을 조망.

이러한 RAG의 발전으로 인공지능이 단순히 텍스트를 나열하지 않고, 스스로 지식을 검열하고 방대한 데이터에서 숲을 그려낼 줄 아는 진정한 '문제 해결사(Problem-Solver)'로 발전해나가는 것 같습니다.

profile
기술과 산업에 대해 궁금한 것들을 함께 이야기 해보고 싶습니다.

0개의 댓글