논문 리뷰

GraphRAG(2024) / From Local to Global: A Graph RAG Approach to Query-Focused Summarization

cch8ii 2025. 10. 27. 02:56
논문 링크: https://arxiv.org/abs/2404.16130
 

From Local to Global: A Graph RAG Approach to Query-Focused Summarization

The use of retrieval-augmented generation (RAG) to retrieve relevant information from an external knowledge source enables large language models (LLMs) to answer questions over private and/or previously unseen document collections. However, RAG fails on gl

arxiv.org

 

 

한 줄 정리

  • 그래프 기반 인덱스와 커뮤니티 요약을 이용해, 말뭉치 전체에 대한 전역 의미 파악을 가능하게 하는 RAG 방식
  • 목표
    • 벡터 검색 중심 RAG가 어려워하는 전역(global) 질문에 답하기
    • 질의 일반성과 코퍼스 규모가 커져도 성능과 비용 측면에서 확장
    • 동일 데이터셋에 대한 반복 질의를 효율적으로 지원
  • 기존의 문제점
    • 벡터 RAG: 몇 개 문서 내에 국소화된 정보엔 강하지만, “데이터셋의 주요 테마는?” 같은 전역적 의미 파악에 취약
    • QFS(질의 중심 요약): 전통 기법은 질의가 들어올 때마다 코퍼스 전부를 다시 훑고, 관련 부분을 뽑아 묶어 요약하는 구조이기 때문에 대규모 코퍼스로 확장이 어려움
    • 컨텍스트 윈도우 한계: 전역 정보를 한 번에 넣기 어렵고, 원문 직접 요약(map–reduce)만으론 구조적 단서가 부족
  • 핵심 아이디어
    • 문서 → 엔터티/관계/클레임 추출 → 엔터티 지식 그래프 구축(LLM 이용)
    • 그래프에 커뮤니티 탐지(Leiden) 적용, 계층적(hierarchical) 커뮤니티 구성
    • 하위 → 상위로 바텀업 커뮤니티 요약을 사전 생성(노드·엣지·클레임을 우선순위로 압축)
    • 질의 시 map-reduce: 커뮤니티 요약별 부분 답변 생성(자체 도움점수 0–100 부여) → 점수순으로 통합해 전역 답변
  • 성과
    • ~100만 토큰급 두 코퍼스(팟캐스트, 뉴스)에서 벡터 RAG 대비
      • 포괄성 승률: 72–83%(팟캐스트), 72–80%(뉴스)
      • 다양성 승률: 75–82%(팟캐스트), 62–71%(뉴스)

기존 방법론과 한계

LLM은 비약적으로 큰 발전을 이뤄왔지만 LLM만으로는 한계가 존재했다. 

  • 학습 시점 이후의 정보나 본 적이 잘 없는 정보의 경우 알지 못한다. 
  • 한 번에 넣을 수 있는 토큰이 제한되기 때문에 긴 자료를 전부 읽기 어렵다. 
  • 할루시네이션이 발생할 가능성이 잇는데 이때 근거를 제시하기가 쉽지 않다. 
  • 보안이 되어잇는 문서나 개인 데이터처럼 모델이 사전에 학습하지 못한 자료는 외부에서 전달해주어야 한다. 

출처: https://devocean.sk.com/blog/techBoardDetail.do?ID=166632&boardType=techBlog

RAG (retrieval-augmented generation) 는 이러한 한계를 해결하기 위해 나타났다. RAG의 작동 원리는 간단히 이야기하면 다음과 같다. 

  1. 쿼리와 관련된 원문 조각을 검색하고
  2. 그 조각을 프롬프트에 첨부한 뒤
  3. 답변을 생성

쿼리와 의미가 유사한 (= 텍스트 임베딩을 사용해 벡터 공간에서 쿼리와 가까운)고정 개수의 레코드를 반환하고 생성된 답변은 그 검색된 레코드들에 담긴 정보만을 사용한다. 

즉, RAG (retrieval-augmented generation) 는 외부 지식원에서 관련된 정보를 검색해 결합하는 방법론으로, LLM이 비공개이거나 이전에 학습할 때는 본 적이 없던 문서 집합에 대해서도 답하도록 만들어준다는 큰 장점을 가졌다. 이러한 전통적인 접근법을 벡터 RAG라고 부른다. 

하지만 RAG는 본질적으로 질의 중심 요약(QFS, Query-Focused Summarization) 과제이지, 명시적 검색 과제가 아니기 때문에 말뭉치 전체를 대상으로 하는 전역적인 질문에서는 실패한다는 단점이 있었다. 즉, 벡터 RAG은 소수의 문서 안에 정보가 국소적으로 존재할 때 잘 작동한다는 것이다. 

💡 RAG는 본질적으로 QFS 과제이지, 명시적 검색 과제가 아니라서 전역 질문에서 실패한다? 
일반적인 RAG는 쿼리와 직접적으로 연관된 몇 개의 로컬 청크만 잘 찾아오면 그걸로 답을 만들 수 있다는 기본 가정을 가지고 있다. 때문에 보통 top-k 유사도 검색으로 문서 조각을 몇 개 고르고 그 범위 안에서 답을 쓰는 것이다. 이런 방법론을 질의 중심 요약이라고 하고 질문과 가까운 부분만 요약해 답하는 전략이라고 이해하면 쉽다. 예를 들어 '피자를 진짜 맛있게 만드는 방법이 뭐가 있을까?'라는 질문에 피자를 진짜 맛있게 만드는 방법과 유사도가 높은 문서의 청크만 뽑아와서 답변을 생성하는 것이다. 
그렇다면 전역적인 질문이란 무엇일까? 
'200개의 기사 전반을 관통하는 핵심 주제와 상호 관계를 알려줘!'와 같은 질문의 경우 말뭉치 전체를 모두 아우르는 주제, 관계를 요구한다. 때문에 몇 가지의 문서 조각으로는 전체 흐름을 대표하지 못하고 유사도가 높은 소수의 토픽으로만 쏠려서 유사도가 그렇게 높지 않은 문서에 대해 관련성을 잘 잡지 못한다. 만약 이렇게 전역적인 질문에도 잘 답하게 하려면 엄청나게 많은 청크를 엄청 엄청 많이 모아서... 통합?해야 하는데 일반적인 RAG는 이런 전역적인 통합 메커니즘이 거의 불가능한 것이다. (말뭉치 전체에 대한 전반적 이해를 요구하는 의미 파악형(sensemaking) 질의를 지원하지 못함)

 

의미를 파악하는 것은 (사람, 장소, 사건 간의) 연결 관계를 추론하여 그 궤적을 예측하고 효과적으로 행동하기 위해 요구되는 추론을 포함한다. GPT, LLaMA, Gemini와 같은 LLM은 복잡한 텍스트가 한 번에 입력되면 그 안에서의 연결을 찾아내 쿼리에 맞는 요약을 잘 만든다. 이는 입력 범위가 작을 때이기 때문에 의미 파악형(sensemaking) 질의를 잘한다고 볼 수 있을 것이다.

규모가 커져서 RAG가 필요할 때 이제 문제가 발생한다.

이제 데이터셋의 규모가 너무 많이 커지면서 이런 데이터들을 LLM에게 컨텍스트로 다 전달해주지 못하는 정도가 되었다. 때문에 Retrieval로 일부만 고를 수밖에 없게 된 것이다, 이렇게 되면 위에서 언급한 바와 같이 벡터 RAG의 한계가 발생한다. 벡터 RAG는 쿼리와 유사한 아주 국소적인 청크를 몇 개 top-k로 뽑아오는데 이는 로컬 근거에만 의존하는 방식이다. 결국 말뭉치 전반에 흩어진 단서들 간의 연결 (문서 A의 인물↔문서 F의 사건↔문서 K의 장소…) 을 동시 집계하기가 어렵고 전반적인 주제 구조, 상호 관계, 장기 추세와 같은 전역적 의미 파악이 되지 않는다.. 

 

이후 그래프를 사용하는 RAG류의 방법론이 많이 나왔지만 기존엔 그래프의 일부분인 특정 노드, 서브 그래프 정도만 프롬프트에 포함시키거나 그래프의 구조적 특성만 참고해서 답을 강화시키는 형식이었다. 하지만 이러한 접근들은 위에서 말한 한계를 해결하지 못하고 그래프를 전역적인 구조로 사용하지 못한다. 

 

GraghRAG

출처: https://neo4j.com/labs/genai-ecosystem/langchain/

때문에 본 논문에서는 대규모 텍스트 말뭉치 전부를 대상으로 의미 파악을 가능하게 하는 그래프 기반 RAG 접근법 GraphRAG를 제시한다. 

 

 

그렇다면 GraghRAG은 어떤 방식으로 작동하길래 전역적인 정보를 잘 뽑아낼 수 있는 것일까? 

GraghRAG은 LLM을 이용해 두 단계로 그래프 인덱스를 추출한다. 

출처:  https://tech.kakaoenterprise.com/95

① 먼저 원문 문서들로 엔티티 지식 그래프를 도출

GraphRAG은 먼저 LLM을 사용해 지식 그래프를 구성한다. 각각의 노드는 말뭉치의 핵심 엔티티에 해당하며 엣지는 엔티티 간의 관계를 나타낸다. 

 

 

출처: https://devocean.sk.com/blog/techBoardDetail.do?ID=166632&boardType=techBlog

② 서로 밀접히 연관된 엔티티들의 모든 커뮤니티에 대해 사전 생성된 요약을 만든다. 

그래프를 클러스터링해서 서로 밀접히 연결된 엔티티 묶음을 찾고 이 묶음을 논문에서는 커뮤니티라고 부른다. 즉, 그래프를 서로 밀접히 연관된 엔티티들의 커뮤니티의 계층으로 분할한 뒤 (ex: '최하위 커뮤니티 → 하위 커뮤니티  →  ...  →  최상위 커뮤니티' ) LLM을 이용해 커뮤니티 수준 요약을 생성한다,

이 요약은 추출된 커뮤니티의 계층 구조를 따라 가장 아래 레벨부터 각 커뮤니티의 요약을 Bottom-up 방식으로 생성하며 상위 요약은 하위 요약을 재귀적으로 압축, 통합하기 때문에 상위 수준 요약은 하위 수준 요약을 재귀적으로 포함한다. 결과적으로 이렇게 생성된 최상위 커뮤니티 요약을 하나만 봐도 말뭉치 전반에 대한 전역적인 설명과 통찰을 제공할 수 있도록 설계된다. 

💡 GraphRAG의 핵심 차별점
여기서 기존에 나왔던 그래프를 활용한 RAG와 GraphRAG의 핵심 차별점이 드러난다. GraphRAG는 그래프의 성질인 내재적 모듈성(modularity)과 커뮤니티 계층성 (Hierarchical Communities)에 주목한다는 것이다. 

- 모듈성(Modularity): 그래프 안에서 노드들이 서로 강하게 연결된 작은 집단 (커뮤니티)이 존재한다는 성질
  (ex: 뉴스 그래프에서 “정치 커뮤니티”, “경제 커뮤니티”, “과학 커뮤니티” 등)
- 커뮤니티 계층(Hierarchical Communities): 커뮤니티가 중첩적인 계층 구조로 존재한다는 성질
  (ex: “정치” → “국내정치” → “선거/정책” 세부 주제)

GraphRAG는 이러한 모듈 구조를 적극적으로 이용해 각 커뮤니티마다의 요약을 만들고 하위 커뮤니티 요약을 상위로 재귀적으로 통합해 전역적인 요약을 만들어낼 수 있게 한다. 즉, 그래프의 연결망 구조 그 자체를 요약을 생성하는 인덱스로 쓰는 것이다. 

기존 RAG들은 그래프를 검색용 데이터 구조로만 썼다면, GraphRAG는 그래프의 구조적 패턴(커뮤니티 계층) 자체를 활용해 전역적인 의미 파악(sensemaking) 요약을 생성한다.

 

③ 커뮤니티 요약에 대해 Map-Reduce 방식으로 쿼리에 답한다. 

map 단계에선 각 요약은 쿼리에 대한 부분 답변을 독립적으로, 병렬적으로 생성하고 이렇게 생성된 부분 답변마다 유용도, 관련성 점수를 매겨서 컨텍스트 제한 안에서 중요한 것들만 우선적으로 모으게 된다. reduce 단계에서는 이 부분 답변들을 결합해 최종 전역 답변을 만든다.

 

이러한 과정을 통해 질문이 주어지면 각 커뮤니티 요약을 사용해 부분 응답을 생성하고 마지막으로 모든 부분 응답을 다시 요약해 사용자에게 최종 응답을 제공한다. 

약 100만 토큰 규모의 데이터셋에서 전역적인 의미 파악(sensemaking) 질문들을 대상으로 GraphRAG는 포괄성, 다양성 측면 모두 기존의 표준 RAG 기준선 대비 상당한 향상을 이뤘다고 한다. 

 

GraphRAG Workflow

좀 더 자세하게 각 단계들이 어떻게 이뤄지는지에 대해 알아보자. 

그림 1은 GraphRAG 접근과 파이프라인의 상위 수준 데이터 흐름을 보여준다. 

 

Source Documents → Text Chunks

일단 가장 먼저 말뭉치의 문서들을 텍스트 청크로 분할하는데, LLM은 이후 단계 처리를 위해 각 청크에서 정보를 추출한다.

청크 크기를 어떻게 정할지는 근본적인 설계 결정으로 청크가 길수록 추출을 위한 LLM 호출 횟수가 줄어서 비용이 절감되는 대신 청크 앞 부분에 나타난 정보에 대한 재현율 (recall) 이 떨어지는 문제가 발생한다. 

재현율(recall)은 문서의 전체 정보 중 얼마나 많이 포착했나를 판단하는 지표로 청크를 짧게 하면 낮아지며, 정밀도(precision)는 포착한 정보가 얼마나 정확하고 관련성이 높은가를 판단하는 지표이기 때문에 청크를 짧게 하면 할수록 높아진다. 즉, 청크를 짧게 할수록 정밀도는 높아지지만 비용도 늘고 재현율은 떨어진다.때문에 이런 트레이드 오프를 고려해서 청크 크기를 결정해야 한다. 

더보기

때문에 뒤에서 나오지만 본 논문에서는 팟캐스트 말뭉치는 약 1,669 청크 (약 100만 토큰)로, 뉴스 말뭉치는 약 3,197 청크 (약 170만 토큰)로 나눈다. 

 

Text Chunks → Entities & Relationships

이 단계에서는 주어진 청크에서 중요한 엔터티의 출현과 엔터티 간 관계를 추출하도록 LLM을 프롬프팅한다. 또한 LLM은 각 엔티티와 관계에 대한 짧은 설명도 생성한다. 즉, 각 텍스트 청크에서 누가, 무엇을, 어디서, 어떻게 관련되어 있는지를 LLM이 자동으로 뽑아내는 과정이라고 이해하면 된다. 

추가적으로 LLM은 검출된 엔티티에 대한 claim (= 날짜, 사건, 다른 엔터티와의 상호작용 같은 중요 사실 진술) 을 추출하도록 한다. 

 

결국 LLM이 각 청크에서 ① 엔터티(중요한 사람·조직·장소 등), ② 그들 사이의 관계, ③ 그리고 핵심 사실 진술(claim)을 뽑아서 짧은 설명을 붙힌다. 

예를 들어서 한 청크에 다음과 같은 텍스트가 있다고 가정해볼 때...

“삼성전자는 2023년 8월 서울에서 열린 반도체 기술 포럼에서
차세대 인공지능 칩을 공개했다.
이번 포럼에는 엔비디아와 인텔도 참석했다.”

 

  • Entity
    엔터티  설명
    삼성전자 한국의 주요 반도체 기업
    서울 대한민국의 수도, 행사 개최 장소
    반도체 기술 포럼(2023) 2023년 8월 서울에서 열린 기술 행사
    엔비디아(NVIDIA) AI 칩 제조 기업
    인텔(Intel) 글로벌 반도체 회사
    인공지능 칩(AI chip) 삼성전자가 공개한 차세대 제품
  • Relation 
    관계 설명
    삼성전자 → 인공지능 칩 삼성전자가 새로운 AI 칩을 공개했다.
    반도체 기술 포럼 → 서울 해당 행사는 서울에서 열렸다.
    엔비디아 ↔ 반도체 기술 포럼 엔비디아가 포럼에 참석했다.
    인텔 ↔ 반도체 기술 포럼 인텔도 같은 포럼에 참석했다.
  • Claim 
    클레임  설명
    “삼성전자는 2023년 8월 서울에서 AI 칩을 공개했다.” 사건의 핵심 사실
    “행사는 반도체 기술 포럼에서 열렸다.” 장소+이벤트 정보
    “엔비디아와 인텔도 해당 행사에 참여했다.” 다른 엔터티와의 연관

프롬프팅을 진행할 때에는 in conetext learning (few shot) 으로 프롬프트를 도메인에 맞게 조정할 수 있다. 즉, 프롬프트 안에 2~5개의 예시를 보고 떤 방식, 어떤 용어, 어떤 출력 포맷을 원하는지 파악하게 할 수 있다는 것이다. 일반 도메인에서는 사람/조직/장소 등과 같은 NER 중심이지만 법률, 과학, 의학 등의 전문 도메인의 경우 논문이나 질병 등의 도메인 엔티티가 담길 수 있기 때문이다. 프롬프팅의 전체를 바꾸지 않아도 예시만 바꾸면 LLM이 잘 알아듣는다고 이야기한다. 

 

Entities & Relationships → Knowledge Graph

이렇게 ㅣ식 그래프가 만들어진다. LLM을 활용해 엔티티, 관계, 클레임을 추충하는 과정은 일종의 요약 과정이며 큰 말뭉치에서는 같은 엔티티, 관계, 클레임이 여러 청크에서 반복적으로 등장하기 때문에 하나의 요소에 대해 다중 인스턴스가 생성된다.

이렇게 얻어진 엔티티와 관계 인스턴스가 그래프의 노드와 엣지가 된다. 각 노드와 엣지에 대해 설명을 집계해 요약하며 관계는 그래프의 엣지로, 동일 관계의 중복 횟수는 엣지의 가중치가 되는 것이다. 

  • 엔터티 인스턴스 → 노드(node)
  • 관계 인스턴스 → 엣지(edge)
  • 클레임 인스턴스 → 사실 목록(집계 테이블)

클레임도 관계와 마찬가지로 엣지 가중치를 가지는데 엣지 가중치는 같은 관계가 여러 번 관찰되면 값이 커지고 증거나 언급이 많은 관계일수록 엣지 가중치가 높아진다. 

 

Knowledge Graph → Graph Communities

앞선 단계에서 생성도니 그래프 인덱스가 주어지면 강하게 연결된 노드들의 커뮤니티로 그래프를 분할하기 위해 다양한 커뮤니티 탐지 알고리즘을 사용한다. 이걸 Clustering(Community Detection) 이라고도 하는데 방대한 양의 데이터 중에서 유사한 개체들을 그룹화하여 보다 효율적인 검색과 추론을 수행할 수 있게 되는 단계이다. 

커뉴니티를 찾기 위해서는 그래프에서 내부족으로는 연결이 많아 빽빽해보이지만 그 뭉치들 사이는 연결이 듬성 듬성한 노드 묶음을 찾아야 한다. 

논문에서는 Leiden 커뮤니티 탐지를 계층적으로 사용하며 각 탐지된 커뮤니티 내부에서 재귀적으로 하위 커뮤니티를 찾아 내려가면서 더 이상 분할이 불가능한 리프 커뮤니티에 도달할 때까지 반복한다. 이렇게 하면 각 레벨이 서로 겹치지 않으면서 전체르 ㄹ다 커버하는 분할이 되어 map-reduce 전역 요약도 가능해지게 한다. 

💡 Leiden?

 

 

Graph Communities → Community Summaries

다음 단계에서는 매우 큰 데이터셋까지 확장 가능하도록 설계된 방법으로 커뮤니티 계층의 각 커뮤니티에 대해 리포트 형태의 요약을 만든다. 이 요약은 커뮤니티 요약으로 특정 질의가 없더라도 말뭉치의 전역 구조와 으미ㅣ를 이해하는 데 독립적으로 유용하며 그 자체로 코퍼스를 파악하는 데 사용될 수 있다. 

예를 들어 어떤 레벨의 커뮤니티 요약들을 훑어보며 관심 주제의 일반적인 테마를 파악하고 각 하위 주제에 대해 더 자세한 내용을 제공하는 하위 레벨 리포트를 내려가 읽을 수 있다. 하지만 여기선 이러한 요약들이 전역 질의에 답하기 위한 그래프 기반 인덱스의 일부로서 갖는 효용에 초점을 맞춘다. 

 

GraphRAG는 노드, 엣지, 관련 클레임 등 요소 요약을 커뮤니티 요약 템플릿에 채워 넣는 방식으로 커뮤니티 요약을 생성한다.

  • 리프 레벨 커뮤니티: 그래프 맨 아래, 더는 쪼개지지 않는 가장 작은 주제 그룹
  • 상위 커뮤니티: 여러 리프(하위 커뮤니티)를 묶은 상위 주제 그룹

이때 LLM이 각 커뮤니티를 요약할 때 무엇을 우선으로 보여줄지 와 토큰이 초과될 때 어떻게 압축할지를 정해야 한다. 

먼저 리프 커뮤니티 요약의 경우 엔티티, 관계, 클레임을 사용한다. 이때 LLM에 입력 가능한 토큰의 수는 제한되어 있기 때문에 중요한 것을 먼저 넣어야 해 각 커뮤니티의 엣지(edge) 를 기준으로 엣지의 양 끝 노드의 차수(degree) 합이 큰 순서대로 정렬

우선 순위를 부여한다. 노드의 차수는 그 노드가 몇 개의 엣지를 가지고 있는지로, 많은 엣지 (= 관계)를 가질수록 영향력이 큰 중요 인물이나 핵심 개념이 될 가능성이 크다. 이렇게 정렬된 순서대로 LLM의 입력에 ⓐ 소스 노드 설명 ⓑ 타겟 노드 설명 ⓒ 엣지 설명 ⓓ 관련 클레임 을 순차 추가한다. 이렇게 토큰 한도까지 반복하여 중요한 내용을 채운다. 

다음 상위 레벨 커뮤니티 요약의 경우 하위 커뮤니티를 모아 요약하는 단계이다. 이때도 LLM의 입력 토큰 한도가 문제가 되어 하위 커뮤니티의 요약문들을 선택적으로 포함해야 한다. 

1) 만약 토큰 한도 내에 모든 하위 커뮤니티 요약이 다 들어간다면 → 전부 넣어서 요약

2) 만약 토큰 한도를 초과한다면 → 가장 긴 요약부터 짧은 버전으로 교체

즉, 요약의 요약을 사용해 중요한 큰 커뮤니티는 짧게라도 포함시키고 작은 커뮤니티들은 길게 남겨둘 수 있다. 

문제  GraphRAG의 대응
LLM의 컨텍스트 한도 초과 중요도·길이 기반 동적 압축
엔터티가 너무 많음 차수 합(중심성) 기준 우선순위
요약 단계가 깊어질수록 비용 증가 하위 요약을 재활용하여 상위 요약 생성
전역 요약 시 정보 손실 우려 중요 노드/커뮤니티는 짧게라도 반드시 포함

 

Community Summaries → Community Answers → Global Answer

출처: https://devocean.sk.com/blog/techBoardDetail.do?ID=166632&boardType=techBlog

이후 사용자 쿼리가 주어지면 앞 단계에서 생성한 커뮤니티 요약을 이용해 다단계 절차로 최종 답변을 생성할 수 있다. 커뮤니티 구조가 계층적이므로 서로 다른 레벨의 커뮤니티 요약을 이용해 질문에 답할 수 있다. 따라서 일반적인 의미 파악형 질문에 대해 요약의 상세도와 범위 사이에서 최적 균형을 제공하는 계층 레벨이 어느 것인지가 중요한데 주어진 레벨에서 전역 답변을 생성하는 절차는 다음과 같다. 

지식 그래프가 만들어있다는 전제 하에...

  • 커뮤니티 요약 준비 (Shuffle & Chunk)
    • 커뮤니티 요약을 랜덤으로 섞고 고정 토큰 크기 청크를 분할해 나눈다. 이렇게 하면 중요한 정보가 한 창에만 몰려서 그 창이 선택되지 않으면 통째로 빠지는 일이 줄어든다. 
💡 Shuffle + Chunk를 왜 하는걸까? 
이미 요약된 커뮤니티 요약을 왜 Shuffle + Chunk를 하는 걸까? 
커뮤니티 요약은 이미 정리된 요약이긴 하지만 그 전체를 한 번에 LLM에게 넣을 수 밖에 없기 때문에 다음과 같은 단계를 거치는 것이다. 만약 각 요약이 300 토큰이고 100개의 커뮤니티 요약이 만들어졌다면 LLM의 컨텍스트 윈도우는 8K 밖에 안 되기 때문에 (논문 실험 설정) 전부 넣을 수 없게 되고 일부만 넣었을 대 만약 중요한 요약들이 한쪽에 몰려있으면 운이 안 좋게 그 부분이 빠질 가능성이 존재한다. 
때문에 특정 주제의 커뮤니티 요약들이 한 덩어리에 몰리지 않게 섞고 LLM이 한 번에 처리할 수 잇는 크기로 나누어 여러 개의 요약 청크가 생기고 각각의 LLM이 map 단계에서 부분 답을 생성할 수 있게 하는 것이다. 
  • map 단계: 커뮤니티 답변 생성 + 자기평가
    • 각 청크를 독립 컨텍스트로 병렬 처리해 커뮤니티 요약들만 근거로 중간 답변을 생성한다.  
    • 동시에 도움 점수를 산출한다. 청크 A를 읽었을 때 도움이 되는 점수는 34점, .. 청크 B를 읽었을 땐 80점 .. 등등 이때 점수가 0이 되면 폐기한다. 
  • reduce 단계: 전역 답변 생성
    • 점수가 높은 순으로 부분 답을 새로운 컨텍스트에 담다가 토큰 한도 (논문 실험에선 8K) 를 채우면 멈춘다. 이렇게 담아진 부분 답들을 겹침 없이 통합해서 최종 전역 답을 작성한다. 

 

GraghRAG이 잘했다 못했다를 어떻게 판단할 수 있게 되는걸까?

기존의 RAG 벤치마크는 어떻게 보면 단편적인 사실 질의만 평가하기 때문에 전역적 의미 파악(sensemaking) 능력을 재는 데는 부적합하다. 때문에 본 연구에서는 말뭉치 전체에 대한 전역적 의미 파악을 평가하기 위한 질문 집합 생성 방법을 제안한다. 이 질문들은 세부 사실의 검색을 요구하지 않고, 주어진 코퍼스에 대한 고수준 이해를 평가하도록 설계되엇다. 이때 GraphRAG는 적응형(adaptive) 벤치마킹 방식을 쓰는데 이 방법은 평가용 질문 세트를 도메인이나 사용 사례에 맞게 LLM이 직접 생성하는 것이다.이때 GraphRAG의 질문은 그냥 무작위가 아니라, 누가 어떤 목적으로 질문하는지를 가상의 사용자 페르소나를 만들어 다양성을 높였다. 이로 인해 실제 사람들이 대규모 말뭉치에 대해서 할 법한 고차원적이고 전역적인 질문으로 구성된 벤치마크 데이터셋이 만들어진다. 

입력으로는 말뭉치 설명과 사용자 수 K, 사용자 당 task 수 N, (사용자, 과업) 조합당 질문 수 M이 있고 출력으로는 말뭉치 전역 이해를 요구하는 K * N * M 개의 고수준 질문 집합이 반환된다. 

코퍼스 설명에 기반하여 LLM에 다음을 프롬프트한다:
	1. 데이터셋의 잠재적 사용자 K명의 페르소나를 기술하라.
    2. 각 사용자에 대해 관련 task N 개를 식별하라.
    3. 각 사용자 & 과업 쌍에 대해, 다음을 만족하는 고수준 질문 M 개를 생성하라:
        • 코퍼스 전체의 이해를 요구할 것.
        • 특정 저수준 사실의 검색을 요구하지 않을 것.

논문에서는 이러한 K = N = M = 5로 설정해 데이터셋 당 125개의 테스트 질문을 사용했다고 한다.

 

하지만 이런 질문에는 어떠한 정답이 존재하지 않기 때문에 LLM을 이용해 새로운 도메인 맞춤형 평가 질문 세트를 만들고 LLM이 직접 평가자가 되어 전역 의미 파악 성능을 비교하고 검증하는 방식을 택했다. 성능을 입증하기 위해서 정답이 존재하지 않는 광범위한 이슈와 주제를 겨냥한 질문들에 적합한 LLM-as-a-judge 기법의 새로운 응용을 개발한 것이다. 다시 말하자면 이 접근범은 먼저 하나의 LLM을 이용해 특정 케이스 기반 말뭉치를 기반으로 하는 전역 의미 파악 질문들을 다양하게 생성하고 이어서 임의로 정의한 기준에 따라 2가지 다른 RAG 시스템의 답변을 2번째 LLM으로 평가한다.

뒤에서 더 언급하겠지만 두 개의 RAG 시스템의 답변을 LLM에게 제공하고 아래 기준에 따라 비교하도록 프롬프팅한 후 최종 우선 답변을 판정하게 된다. LLM은 승자를 지목하거나 두 답변이 본질적으로 유사하면 무승부를 반환할 수 있다. 또한 LLM 생성의 내재적 확률성을 고려해 여러 번 반복 실행하고 반복, 질문 전반의 평균으로 결과를 산출한다. 

출처: https://memo.d.foundation/llm/llm-as-a-judge

논문에서는 전역 의미 파악을 할 때 바람직한 성질을 포착하는 세 가지 목표 기준을 설계했다. 

  • 포괄성(Comprehensiveness): 답변이 질문의 모든 측면과 세부를 얼마나 풍부하게 다루는가?
    • = 각 조건에서 생성된 답변으로부터 추출된 클레임의 평균 개수
  • 다양성(Diversity): 답변이 질문에 대해 다양한 관점과 통찰을 얼마나 풍부하게 제공하는가?
    • = 각 답변의 클레임들을 클러스터링하고, 평균 클러스터 수를 계산
  • 역량 강화(Empowerment): 답변이 독자가 주제를 이해하고 근거 있는 판단을 내리는 데 얼마나 도움을 주는가?

또한 통제 기준(control criterion) 으로 직접성(Directness) 을 사용했다. 이는 답변이 질문을 얼마나 구체적이고 명확하게 다루는가에 답한다. 즉 직접성이란 어떤 LLM 요약에도 적용 간으한 간결성을 평가하는 척도이다. (직접성은 포괄성과 다양성에 상반되어 4가지 기준을 모두 완벽하게 충족하기 어렵다.)

 

Analysis

Dataset

현실에서 사용자가 접할만한 말뭉치를 대표하도록 약 백만 토큰 규모의 두 데이터셋을 선정했다고 한다. 

  • Podcast transcripts: Behind the Tech with Kevin Scott의 공개 대본, 과학, 기술 분야의 다양한 사상가들이 나눈 대화를 담고 있음
  • News articles: 2013년 9월부터 2023년 12월까지 발행된 다양한 카테고리(엔터테인먼트, 비즈니스, 스포츠, 기술, 건강, 과학)의 뉴스 기사로 구성된 벤치마크 데이터셋

Conditions

그리고 6가지 실험 설정을 비교했다. GraphRAG은 서로 다른 그래프 커뮤니티 레벨 네 가지(C0, C1, C2, C3)로, 그 외 원문 텍스트에 직접 map-reduce 요약을 적용한 텍스트 요약(TS), 그리고 벡터 RAG 기반의 의미 검색 (SS)을 포함한다. 

표로 간단하게 설명하면 다음과 같다. 

구분  조건  설명
① GraphRAG 계열 (그래프 기반) C0, C1, C2, C3 그래프 커뮤니티의 계층 레벨(level)을 달리한 4가지 버전
② 비그래프 베이스라인 TS (Text Shard) 원문 텍스트를 그냥 섞고 청크로 나눈 뒤, 같은 맵–리듀스 절차 수행
  SS (Semantic Search) 일반적인 벡터 RAG (질문-임베딩 기반 검색)

 

GraphRAG 네 단계 (C0–C3)는 왜 비교하냐면 GraphRAG은 그래프 커뮤니티가 계층 구조이기 때문이다. 저자들은 질문의 성격(요약형 vs 세부형)에 따라 어느 레벨이 최적인지를 실험으로 확인한다. 

조건  의미  설명  개수
C0 루트 레벨 커뮤니티 요약 그래프의 맨 위 수준 (큰 주제 단위). 예: “AI 연구 전반” 가장 적음
C1 상위 레벨 커뮤니티 요약 C0의 하위 커뮤니티들로 구성 (조금 더 세분화된 주제). 예: “AI 윤리”, “모델 압축” 조금 많음
C2 중간 레벨 커뮤니티 요약 C1을 더 쪼갠 수준. 예: “AI 윤리 → 데이터 편향”, “AI 윤리 → 개인정보 보호” 더 많음
C3 하위 레벨 커뮤니티 요약 그래프의 맨 아래(leaf) 레벨. 세부적인 논문/사례 단위. 가장 많음

 


또한 실험에선 커뮤니티 요약, 커뮤니티 답변, 전역 답변 생성에는 8k 토큰의 고정 컨텍스트 윈도우를 사용했으며 600 토큰 윈도우로 그래프 인덱싱을 수행하였다. 

모든 단계(인덱싱·요약·답변 생성)에 사용한 LLM은 GPT-4-turbo 모델이라고 한다. 

 

Experiment 1

각 그래프의 커뮤니티 계층 레벨별 커뮤니티 요약 개수

인덱싱 결과, Podcast 데이터셋에서는 8,564개 노드와 20,691개 엣지로 이루어진 그래프가 생성되었고 News 데이터셋에서는 더 큰 규모인 15,754개 노드와 19,520개 엣지의 그래프가 생성되었다. 

각칸의 숫자 = 행 모델이 열 모델보다 더 좋은 답을 냈을 확률(%) → 회색 셀은 비교 불가(자기 자신), 녹색 강도는 승률 높을수록 진해짐

    • 전역 접근법 vs. 벡터 RAG
      • 전역 접근법은 두 데이터셋 모두에서 포괄성과 다양성 기준에 대해 기존의 벡터 RAG(SS)를 유의하게 능가
      • Podcast에서 포괄성 72–83%(p<.001), News에서 72–80%(p<.001)의 승률,다양성 승률은 각각 75–82%(p<.001)와 62–71%(p<.01)
      • 직접성을 타당도 점검 지표로 사용한 결과 모든 비교에서터 RAG가 가장 직접적인 응답을 산출한다는 것을 알 수 있었음
    • 역량 강화(Empowerment)
      • 전역 방식(GraphRAG/TS) vs 벡터 RAG(SS), 그리고 GraphRAG vs TS 비교에서 혼재된 결과가 관찰됨
      • 해당 지표와 관련해 LLM이 추론 과정을 분석한 결과 구체적 사례, 직·간접 인용(quote), 출처 표기(citation) 가 있으면 사용자가 “왜 그런지”를 추적할 수 있어 Empowerment 가산점을 받음을 알게 됨
        • GraphRAG이 불리해질 수 있음 →원문 기반(SS/TS) 은 실제 문장 스니펫과 출처를 그대로 끼워 넣기 쉬워 Empowerment 에 유리한 경우가 잇는 반면 커뮤니티 요약은 압축 과정에서 구체 구절·인용·정확한 근거 위치가 날아가기 쉽기 때문이다. 
      • 엔터티 추출 프롬프트를 조정해 이러한 세부를 더 많이 GraphRAG 인덱스에 보존하는 것이 개선에 도움 될 수 있음
        • ex) 엔터티/관계 노드에 evidence_span, quote, source_id, char_range, page 같은 필드를 추가 OR전역 답변 프롬프트에 “모든 주장에 대해 출처 표기를 붙이고, 독자가 후속 탐색 가능한 키워드/링크 단서를 제공하라” 요구
    • 커뮤니티 요약 vs. 원문 텍스트
      • GraphRAG에서 커뮤니티 요약을 원문 텍스트와 비교했을 때 루트 레벨(C0)만 제외하면 커뮤니티 요약 사용(GraphRAG C1–C3) 이 원문 텍스트 기반 요약(TS) 보다 포괄성·다양성 승률이 소폭이지만 일관된 개선을 보임
        • Podcast 중간 레벨(C2) → 포괄성 57% = C2가 TS보다 더 포괄적이라고 평가된 비율이 57% (우세). p<.001 이라 통계적으로 매우 유의
        • News 하위 레벨(C3) → 포괄성 64%(p<.001), 다양성 60%(p<.001): 세밀한 커뮤니티를 폭넓게 모아 쓰는 게 주제 커버리지·관점 다양성에 유리\

        • 표 2는 GraphRAG가 원문 텍스트 요약에 비해 갖는 확장성 이점을 보여줌
        • 하위 레벨(C3) 에서도 GraphRAG가 컨텍스트 토큰을 26–33% 덜 사용
        • 루트 레벨(C0) 은 97% 이상 절감(= 거의 요약의 요약만으로 전체를 훑을 수 있음)
          • 반복적 질의응답이 특징인 의미 파악 활동에 매우 효율적인 방법을 제공
          • 벡터 RAG 대비 포괄성(승률 72%)과 다양성(승률 62%)의 우위를 유지
  •  

Experiment 2

이렇게 성능 평가를 진행했다면 LLM이 평가한 승률(실험 1)이 정말 객관적인 지표(클레임 기반 측정)와 일치하는지 확인해야 한다. 

표 3에서는 조건별로 추출된 클레임의 평균 개수를 보여준다. 여기서 이전에 정했던 포괄성이 나오는데 포괄성은 각 조건이 생성한 답변에 포함된 클레임의 평균 개수로 측정하기 때문이다. 즉, 포괄성은 답변이 얼마나 많은 정보를 담고 잇는지를 객관적으로 계산할 수 있게 하는 지표이다. 

결과적으로 두 데이터셋(News, Podcast) 모두에서 모든 전역 탐색 조건(C0~C3) 과 TS(원문 요약) 이 SS(벡터 RAG) 보다 더 많은 클레임을 포함하는 것을 알 수 있었다. 

 

표 3에서는 평균 클러스터 수를  제시한다. 이때는 다양성이 제시되는데 다양성은 생성된 클레임을 의미적 거리로 묶어, 클러스터의 평균 개수를 계산하여 클러스터 수가 많을수록 다양한 주제를 다룬다고 할 수 잇는 측정 지표이기 때문이다. 

결과는 다음과 같다. Podcast 데이터셋에서는 모든 전역 탐색 조건(C0~C3)이 SS보다 다양성이 유의하게 높은 것을 볼 수 있다. 하지만 News 데이터셋에서는 C0만 모든 임계값에서 SS보다 유의하게 높았다. 

 

Discussion

본 논문에서의 논의점은 평가 접근의 한계가 존재한다는 것이다. 

 

현재 GraghRAG의 평가는 각각 약 100만 토큰 규모의 두 코퍼스에 특화된 의미 파악(sensemaking) 질문에 초점을 맞추어 이루어진다. 물론 많다고 생각할 수 있지만 평가 범위가 사실은 현실에 잇는 모든 도메인을 다 포과할 수 없게 된다. 때문에 다른 도메인, 다른 언어, 다른 질문 유형에서도 같이 잘 되는지 확인하지 못했다는 한계가 존재한다. 

또한 실제로 RAG의 가장 큰 장점은 환각을 줄이는 것인데 GraghRAG이 실제로 사실성을 얼마나 잘 지켰는지 (= 환각이 얼마나 적었는지) 체계적으로 비교하지 않아 이 또한 한계로 지목한다. 

때문에 논문에서는 SelfCheckGPT 같은 방법을 쓰면 모델 스스로 여러 번 재질문/자기검증을 하게 해서 허구 진술 비율을 추정할 수 있는데, 이런 절차를 추가하면 분석 신뢰도가 더 높아지기 때문에 이와 같은 접근을 통해 환각 비율을 비교한다면 분석을 좀 더 견고히 할 수 잇을 것이라고 덧붙인다. 

 

Conclusion

출처: https://arxiv.org/abs/2502.11371

본 논문에서는 지식 그래프 생성과 질의 중심 요약(QFS) 을 결합해, 말뭉치 전체에 대한 인간의 의미 파악을 지원하는 RAG 접근법 GraphRAG를 제시했다. GraghRAG는 벡터 RAG 대비 포괄성과 다양성이 크게 개선되고, 그래프 없이 원문에 map-reduce를 적용한 전역 요약보다도 경쟁력 있는 성능을 보였다. 이를 통해 전역 질문에 강한, 정확하고 풍부하며 효율적인, 대규모 말뭉치에서의 의미 파악을 실질적으로 뒷받침하는 RAG 방식이라고 할 수 잇다.