본문 바로가기
ML & DL/논문리뷰

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

by 공부하는 무니 2024. 10. 6.
반응형

원문: https://arxiv.org/abs/2404.16130

Abstract

이 연구에서는 외부 지식 소스를 활용해 관련 정보를 검색하는 Retrieval-Augmented Generation (RAG)을 사용하여 대형 언어 모델(LLM)이 비공개 또는 이전에 보지 못한 문서 모음에서 질문에 답변하는 방법을 설명합니다. 그러나 RAG는 "데이터셋의 주요 주제는 무엇인가?"와 같은 전체 텍스트에 대한 질문에는 적합하지 않은데, 이는 이러한 질문이 명시적인 검색이 아니라 질문 중심 요약(QFS) 작업이기 때문입니다. 기존 QFS 방법은 RAG 시스템이 다루는 대규모 텍스트를 처리하는 데 한계가 있습니다.

이 문제를 해결하기 위해, 우리는 사용자 질문의 범용성과 소스 텍스트의 양 모두에 대응할 수 있는 'Graph RAG' 방식을 제안합니다. 이 방식은 LLM을 사용해 두 단계에 걸쳐 그래프 기반의 텍스트 인덱스를 구축합니다. 첫 번째 단계에서는 소스 문서에서 엔티티 지식 그래프를 생성하고, 두 번째 단계에서는 서로 밀접하게 관련된 엔티티 그룹에 대한 요약을 미리 생성합니다. 질문이 주어지면 각 커뮤니티 요약을 활용해 부분 응답을 생성한 후, 이 부분 응답들을 종합하여 최종 답변을 만듭니다. 약 100만 토큰에 달하는 데이터셋에 대한 전반적인 이해를 돕는 질문에서, Graph RAG는 RAG에 비해 포괄성과 다양성 면에서 크게 향상된 답변을 제공합니다. Graph RAG의 전역 및 지역적 접근 방식을 적용한 오픈 소스 Python 구현은 https://aka.ms/graphrag에서 확인할 수 있습니다.

1 Introduction

최근 대형 언어 모델(LLM)의 등장으로 과학적 발견이나 정보 분석과 같은 복잡한 분야에서 인간의 추론 과정을 자동화하려는 시도가 이루어지고 있으며, 이는 '의미 형성(sensemaking)'으로 정의됩니다. 의미 형성은 사람, 장소, 사건 사이의 연결을 이해하고 그 방향을 예측하여 효과적으로 행동하려는 지속적인 노력입니다.

기존의 Retrieval-Augmented Generation (RAG) 방식은 사용자의 질문에 대한 답을 문서에서 찾는 방식이었지만, 전체 문서 집합에서 전반적인 요약을 생성하는 데는 적합하지 않다고 설명합니다. 특히, 추출적 요약이 아닌 질문 중심의 추상적 요약(Query-Focused Abstractive Summarization, QFS)이 필요하며, 이를 위해 문서의 내용을 자연어로 요약하는 것이 더 적합하다고 주장합니다.

하지만, 이러한 요약 작업은 문서의 양이 LLM의 컨텍스트 윈도우 한계를 초과할 때 어려움이 발생합니다. 이에 저자들은 LLM이 생성한 지식 그래프를 기반으로 하는 "그래프 RAG" 접근 방식을 제안합니다. 이 접근 방식은 문서 내 관련 정보를 그래프 형태로 구조화하고, 그 그래프의 모듈성을 활용해 문서 집합을 작은 커뮤니티로 나누어 각각의 커뮤니티 요약을 생성한 후, 최종적으로 전반적인 요약을 제공합니다.

이 논문에서는 그래프 RAG 접근 방식이 기존의 단순한 RAG보다 포괄성과 다양성 측면에서 우수한 성과를 보였으며, 효율적인 토큰 비용으로도 높은 성능을 발휘함을 실험적으로 증명했습니다.

2 Graph RAG Approach & Pipeline

2.1 Source Documents Text Chunks

LLM을 활용해 그래프 인덱스의 다양한 요소를 추출할 때, 긴 텍스트 청크는 LLM 호출 횟수를 줄여주는 이점이 있지만, 긴 컨텍스트 윈도우에서의 기억 성능 저하 문제가 발생할 수 있습니다. 논문에서는 HotPotQA 데이터셋을 활용한 실험 결과를 통해, 600 토큰 크기의 청크가 2400 토큰 크기보다 거의 두 배 많은 엔티티 참조를 추출한다는 점을 보여줍니다. 이는 짧은 텍스트 청크가 더 많은 정보를 가져올 수 있음을 시사하지만, 동시에 정확도와의 균형을 고려해야 한다는 점도 강조됩니다.

2.2 Text Chunks Element Instances

소스 텍스트에서 그래프 노드와 엣지 인스턴스를 식별하고 추출하는 과정입니다. LLM 프롬프트를 사용해 먼저 텍스트에서 엔티티(이름, 유형, 설명 포함)를 식별하고, 이어서 관련된 엔티티 간의 관계(출발 엔티티, 타겟 엔티티, 관계 설명 포함)를 추출하는 방식을 취합니다. 두 가지 요소는 구분된 튜플 리스트로 출력됩니다.

도메인에 맞게 프롬프트를 조정할 수 있는 주요 방법은 LLM의 인컨텍스트 학습을 위한 few-shot 예시를 선택하는 것입니다. 예를 들어, 기본 프롬프트는 사람, 장소, 조직 같은 '이름이 있는 엔티티'를 추출하는 데 적합하지만, 과학, 의학, 법률과 같은 전문 분야에서는 해당 도메인에 맞는 few-shot 예시를 제공하는 것이 유리합니다. 추가로 추출할 관련 정보가 있을 경우, 추가 프롬프트를 통해 추출할 수 있습니다. 기본 프롬프트는 엔티티와 연결된 주장(주제, 객체, 유형, 설명, 원본 텍스트 범위, 시작 및 종료 날짜)을 추출하는 것을 목표로 합니다.

효율성과 품질의 균형을 맞추기 위해 여러 번의 “gleaning” 과정을 거치며, LLM이 이전에 누락한 엔티티를 추가로 감지하도록 유도합니다. 먼저 LLM에게 모든 엔티티가 추출되었는지 여부를 확인하고, 만약 누락된 엔티티가 있다고 답하면 이를 추가로 추출하도록 유도하는 방식입니다. 이를 통해 더 큰 텍스트 청크로도 품질 저하 없이 추출을 할 수 있게 됩니다.

2.3 Element Instances Element Summaries

LLM을 사용해 소스 텍스트에서 엔티티, 관계, 주장에 대한 설명을 "추출"하는 작업이 이미 추상적 요약의 한 형태라고 볼 수 있습니다. 이는 텍스트에 명시적으로 언급되지 않은 개념(예: 암시된 관계)을 독립적으로 의미 있는 요약으로 생성하는 과정입니다. 이러한 인스턴스 수준의 요약을 그래프 요소(엔티티 노드, 관계 엣지, 주장 속성)별로 단일 설명 블록으로 변환하려면 LLM을 이용한 추가 요약 단계가 필요합니다.
이 단계에서 잠재적인 문제는 LLM이 같은 엔티티를 일관된 형식으로 추출하지 못해 중복된 엔티티 요소와 노드가 생길 수 있다는 점입니다. 그러나, 모든 관련 엔티티 "커뮤니티"가 다음 단계에서 감지되고 요약되며, LLM은 여러 이름 변형에서 동일한 엔티티를 인식할 수 있기 때문에 이러한 변형이 충분한 연결성을 가지고 있다면 문제는 발생하지 않습니다.
결국, 잠재적으로 잡음이 많은 그래프 구조에서 동질적인 노드에 대한 풍부한 설명 텍스트를 사용하는 것은 LLM의 기능과 글로벌, 질문 중심 요약의 요구 사항에 부합합니다. 이러한 특성은 전통적인 지식 그래프와 차별화되며, 전통적인 지식 그래프는 간결하고 일관된 지식 삼중항(주어, 술어, 목적어)에 의존해 추론 작업을 수행합니다.

2.4 Element Summaries Graph Communities

이전 단계에서 생성된 인덱스를 무방향 가중 그래프로 모델링합니다. 이 그래프에서 엔티티 노드는 관계 엣지로 연결되며, 엣지의 가중치는 감지된 관계 인스턴스의 정규화된 개수를 나타냅니다. 이렇게 생성된 그래프에 대해 다양한 커뮤니티 감지 알고리즘을 사용할 수 있으며, 이는 그래프 내에서 다른 노드보다 서로 더 강하게 연결된 노드들로 이루어진 커뮤니티로 그래프를 분할하는 방법입니다(Fortunato, 2010; Jin et al., 2021).
이 파이프라인에서는 대규모 그래프의 계층적 커뮤니티 구조를 효율적으로 복구할 수 있는 Leiden 알고리즘(Traag et al., 2019)을 사용합니다. 이 계층 구조의 각 단계는 그래프의 노드를 상호 배타적이고 전체적으로 포괄하는 방식으로 분할하여, 그래프를 효율적으로 나누고 요약할 수 있는 기반을 제공합니다.

2.5 Graph Communities Community Summaries

Leiden 계층 구조에서 각 커뮤니티에 대한 보고서 형태의 요약을 생성하는 다음 단계를 설명합니다. 이 요약은 대규모 데이터셋에 맞게 확장할 수 있는 방법으로 설계되었으며, 질문이 없더라도 데이터셋의 전체 구조와 의미를 이해하는 데 유용합니다. 예를 들어, 사용자는 한 계층의 커뮤니티 요약을 스캔하면서 관심 있는 일반 주제를 찾은 다음, 하위 주제에 대한 더 많은 세부 정보를 제공하는 하위 보고서로 연결될 수 있습니다. 여기서는 이러한 요약이 글로벌 질문에 답변하는 그래프 기반 인덱스의 일부로서의 유용성에 중점을 둡니다.

커뮤니티 요약은 다음과 같은 방식으로 생성됩니다:

  • 리프 수준 커뮤니티: 리프 수준 커뮤니티의 요소 요약(노드, 엣지, 속성)은 우선순위가 매겨진 후, 토큰 한도에 도달할 때까지 LLM의 컨텍스트 창에 반복적으로 추가됩니다. 우선순위는 다음과 같습니다: 소스 노드와 타겟 노드의 결합된 노드 차수(즉, 전체적인 중요도)가 높은 순으로 커뮤니티 엣지를 정렬하고, 해당 소스 노드, 타겟 노드, 연결된 속성 및 엣지 자체의 설명을 추가합니다.
  • 상위 수준 커뮤니티: 모든 요소 요약이 컨텍스트 창의 토큰 한도 내에 맞는 경우, 리프 수준 커뮤니티와 동일하게 처리하여 모든 요소 요약을 요약합니다. 그러나 요소 요약이 토큰 한도를 초과하는 경우, 요소 요약보다 짧은 하위 커뮤니티 요약을 우선순위에 따라 대체하여 컨텍스트 창에 맞도록 조정합니다.

2.6 Community Summaries Community Answers Global Answer

사용자의 질의에 대해 이전 단계에서 생성된 커뮤니티 요약을 사용하여 최종 답변을 생성하는 다단계 프로세스를 설명합니다. 커뮤니티 구조의 계층적 특성으로 인해, 다양한 수준의 커뮤니티 요약을 사용하여 질문에 답변할 수 있으며, 어느 수준이 요약의 세부 정보와 범위 사이에서 가장 좋은 균형을 제공하는지에 대한 질문이 제기됩니다(섹션 3에서 평가).

주어진 커뮤니티 수준에서 사용자의 질의에 대한 글로벌 답변은 다음과 같이 생성됩니다:

  • 커뮤니티 요약 준비: 커뮤니티 요약은 무작위로 섞인 후, 미리 정해진 토큰 크기로 나누어집니다. 이를 통해 관련 정보가 한 개의 컨텍스트 창에 집중되지 않고 여러 청크로 분산되어 손실될 위험을 줄입니다.
  • 커뮤니티 답변 생성: 각 청크에 대해 병렬로 중간 답변을 생성합니다. 또한, LLM은 생성된 답변이 질의에 얼마나 도움이 되는지 0-100 사이의 점수를 매기도록 요청합니다. 점수가 0인 답변은 필터링됩니다.
  • 글로벌 답변으로 축소: 중간 커뮤니티 답변은 유용성 점수 순으로 정렬된 후, 토큰 한도에 도달할 때까지 새로운 컨텍스트 창에 반복적으로 추가됩니다. 이 최종 컨텍스트가 사용자가 받을 글로벌 답변을 생성하는 데 사용됩니다.

3 Evaluation

3.1 Datasets

실제 마주할 수 있는 대규모 코퍼스를 대표하는 두 개의 약 100만 토큰 규모의 데이터셋을 선정했습니다. 이는 약 10권의 소설에 해당하는 분량입니다.

  • Podcast 대본: Microsoft CTO Kevin Scott와 다른 기술 리더들 간의 팟캐스트 대화를 수록한 대본 모음입니다(Behind the Tech, Scott, 2024). 크기는 1669개의 600 토큰 크기 텍스트 청크로, 청크 간 100 토큰의 중첩이 있습니다(총 약 100만 토큰).
  • 뉴스 기사: 2013년 9월부터 2023년 12월까지 다양한 카테고리(엔터테인먼트, 비즈니스, 스포츠, 기술, 건강, 과학)에서 발행된 뉴스 기사를 포함한 벤치마크 데이터셋입니다(MultiHop-RAG, Tang and Yang, 2024). 크기는 3197개의 600 토큰 크기 텍스트 청크로, 청크 간 100 토큰의 중첩이 있습니다(총 약 170만 토큰).

3.2 Queries

오픈 도메인 질문 응답을 위한 여러 벤치마크 데이터셋(HotPotQA, MultiHop-RAG, MT-Bench)이 존재하지만, 이러한 데이터셋은 사실 검색에 초점을 맞추고 있으며, 데이터의 의미 형성을 위한 요약 작업에는 적합하지 않습니다. 의미 형성은 사람들이 데이터를 검사하고, 이해하며, 이를 실제 활동과 연관시키는 과정입니다. 또한, 소스 텍스트에서 잠재적인 요약 질문을 추출하는 방법도 있지만, 이런 질문들은 종종 텍스트에 대한 사전 지식을 가정하기 때문에 더 세부적인 내용에 집중할 수 있습니다.
RAG 시스템을 더 글로벌한 의미 형성 작업에 평가하기 위해서는 데이터셋의 세부 사항이 아니라, 전체적인 이해를 요구하는 질문이 필요합니다. 이를 위해 활동 중심 접근법을 사용해 질문을 자동 생성했습니다. 데이터셋에 대한 간략한 설명을 제공하고, LLM에게 N명의 잠재적 사용자와 사용자별 N개의 작업을 식별하게 한 후, 각 사용자-작업 조합에 대해 데이터셋 전체를 이해해야 하는 N개의 질문을 생성하도록 했습니다. 평가를 위해 N=5를 설정해 데이터셋당 125개의 테스트 질문을 생성했습니다. Table 1은 두 평가 데이터셋에 대한 예시 질문을 보여줍니다.

3.3 Conditions

6가지 조건을 비교하여 분석한 내용을 설명합니다. 여기에는 그래프 RAG가 4단계의 그래프 커뮤니티(C0, C1, C2, C3)를 사용하는 방식, 소스 텍스트에 대해 map-reduce 요약 방식을 적용한 텍스트 요약 방법(TS), 그리고 단순한 "의미적 검색" RAG 방식(SS)이 포함됩니다.

  • C0: 루트 수준 커뮤니티 요약(가장 적은 수)을 사용해 사용자 질의에 답변합니다.
  • C1: 고수준 커뮤니티 요약을 사용하여 질의에 답변합니다. C0의 하위 커뮤니티이며, 없을 경우 C0 커뮤니티를 하향 투영하여 사용합니다.
  • C2: 중간 수준 커뮤니티 요약을 사용하여 질의에 답변합니다. C1의 하위 커뮤니티이며, 없을 경우 C1 커뮤니티를 하향 투영하여 사용합니다.
  • C3: 저수준 커뮤니티 요약(가장 많은 수)을 사용하여 질의에 답변합니다. C2의 하위 커뮤니티이며, 없을 경우 C2 커뮤니티를 하향 투영하여 사용합니다.
  • TS: 소스 텍스트를 섞고 조각으로 나눈 뒤 map-reduce 요약 단계를 적용하는 방식입니다(커뮤니티 요약이 아닌 소스 텍스트 사용).
  • SS: 단순 RAG 방식으로, 텍스트 조각을 검색해 설정된 토큰 한계까지 컨텍스트 창에 추가합니다.

컨텍스트 윈도우 크기와 답변 생성을 위한 프롬프트는 6가지 조건 모두에서 동일하게 사용되며, 각 조건은 컨텍스트 창의 내용이 구성되는 방식만 다릅니다. C0-C3 조건을 지원하는 그래프 인덱스는 엔티티와 관계 추출을 위한 일반적인 프롬프트를 사용해 생성되었으며, 데이터 도메인에 맞게 엔티티 유형과 few-shot 예시가 조정되었습니다. 그래프 인덱싱 과정에서 Podcast 데이터셋은 600 토큰 크기의 컨텍스트 윈도우와 1회 gleaning이 사용되었고, News 데이터셋은 gleaning 없이 처리되었습니다.

3.4 Metrics

LLM이 자연어 생성 평가에 뛰어난 성과를 보이며, 인간 평가와 비교해도 경쟁력 있는 결과를 달성하고 있습니다. LLM은 참조 기반 메트릭을 생성할 수 있을 뿐만 아니라, 참조 없이 생성된 텍스트의 품질(예: 유창성)을 평가하거나, 경쟁 결과를 직접 비교하는 방식(LLM-as-a-judge)으로도 사용할 수 있습니다. 또한, RAG 시스템의 성능을 자동으로 평가하는 데도 LLM이 유망한 도구로 떠오르고 있으며, 문맥의 적절성, 정확성, 답변의 적절성 같은 항목을 측정할 수 있습니다.

Graph RAG의 다단계 구조와 여러 조건을 비교해야 하는 상황, 그리고 의미 형성 질문에 대해 정해진 정답이 없는 점을 고려해, 우리는 LLM 평가자를 사용해 직접 비교(head-to-head)하는 접근 방식을 채택했습니다. 평가 기준은 의미 형성 활동에 필요한 세 가지 메트릭과, 유효성을 확인하는 제어 메트릭(직접성)으로 설정했습니다. 직접성은 포괄성과 다양성과 반대되는 특성이므로, 모든 메트릭에서 승리하는 방법은 없을 것으로 예상했습니다.

LLM 평가자가 계산하는 직접 비교 메트릭은 다음과 같습니다.

  • 포괄성(Comprehensiveness): 답변이 질문의 모든 측면과 세부 사항을 얼마나 잘 다루는가?
  • 다양성(Diversity): 답변이 질문에 대해 다양한 관점과 통찰을 얼마나 풍부하게 제공하는가?
  • 이해력 증진(Empowerment): 답변이 독자가 주제를 이해하고 정보에 근거한 판단을 내리는 데 얼마나 도움을 주는가?
  • 직접성(Directness): 답변이 질문을 얼마나 구체적이고 명확하게 다루는가?

평가 과정에서 LLM은 질문, 평가 메트릭, 그리고 두 개의 답변을 제공받고, 어떤 답변이 해당 메트릭에서 더 우수한지와 그 이유를 평가합니다. 만약 둘이 거의 동일한 경우에는 동점으로 평가합니다. LLM의 결과에 내재된 확률적 특성을 보완하기 위해 각 비교는 5회씩 수행되며, 평균 점수를 사용합니다. Table 2는 LLM이 생성한 평가의 예시를 보여줍니다.

3.5 Configuration

GPT-4-turbo와 같은 대규모 컨텍스트 윈도우(128k 토큰)의 모델에서 컨텍스트 윈도우 크기가 특정 작업에 미치는 영향이 명확하지 않습니다. 특히, 긴 컨텍스트에서 정보가 중간에 손실될 가능성이 있다는 점을 고려하여(Kuratov et al., 2024; Liu et al., 2023), 데이터셋, 질문, 메트릭 조합에 따라 컨텍스트 윈도우 크기의 영향을 탐구했습니다. 목표는 기본 조건(SS)에 최적의 컨텍스트 크기를 찾아 이를 모든 질의 시 LLM 사용에 일관되게 적용하는 것이었습니다.

이를 위해 8k, 16k, 32k, 64k의 네 가지 컨텍스트 윈도우 크기를 테스트한 결과, 가장 작은 8k 크기가 포괄성 측면에서 모든 비교에서 더 나은 성과를 보였으며(평균 승률 58.1%), 다양성(평균 승률 52.4%)과 사용자 이해를 돕는 능력(평균 승률 51.3%)에서도 더 큰 크기와 유사한 성과를 냈습니다. 포괄성과 다양성이 더 중요한 우선순위였기 때문에, 최종 평가에서는 8k 토큰의 고정된 컨텍스트 윈도우 크기를 사용했습니다.

3.6 Results

Podcast 데이터셋과 News 데이터셋에 대한 그래프 인덱싱 결과를 보면, 각각 8564개의 노드와 20691개의 엣지, 15754개의 노드와 19520개의 엣지를 가진 그래프가 생성되었습니다. 그래프 커뮤니티 계층에서 다양한 수준의 커뮤니티 요약이 만들어졌으며, Table 3에서 그 수치를 확인할 수 있습니다.

글로벌 접근법 vs. Naïve RAG: Figure 4에서 나타난 것처럼, 글로벌 접근법은 포괄성(comprehensiveness)과 다양성(diversity) 측면에서 Naïve RAG(SS)보다 일관되게 뛰어난 성능을 보였습니다. Podcast 데이터셋에서는 포괄성 승률이 72-83%, 다양성 승률이 75-82%였고, News 데이터셋에서는 각각 72-80%, 62-71%의 승률을 기록했습니다. 또한, Naïve RAG는 가장 직접적인(direct) 응답을 제공한다는 점에서 예상대로의 결과를 나타냈습니다.

커뮤니티 요약 vs. 원본 텍스트: Graph RAG를 사용해 커뮤니티 요약과 원본 텍스트를 비교했을 때, 커뮤니티 요약은 대부분의 경우 응답의 포괄성과 다양성에서 작은 개선을 보였습니다. 특히 Podcast 데이터셋의 중간 수준 커뮤니티 요약과 News 데이터셋의 저수준 커뮤니티 요약이 각각 57%, 64%의 포괄성 승률을 보였으며, 다양성 승률은 각각 57%, 60%를 기록했습니다. Table 3에서는 Graph RAG가 소스 텍스트 요약에 비해 확장성에서 우위를 점하는 것을 보여줍니다. 예를 들어, 저수준 커뮤니티 요약(C3)의 경우, Graph RAG는 26-33% 적은 토큰을 사용했으며, 루트 수준 요약(C0)은 97% 이상의 토큰 절감을 기록했습니다. 성능의 약간의 감소를 감수한다면, 루트 수준 Graph RAG는 포괄성(72% 승률)과 다양성(62% 승률)에서 Naïve RAG보다 우수한 성능을 유지하면서 효율적인 질문 응답 방식을 제공합니다.

Empowerment(사용자 이해를 돕는 능력): Empowerment 비교 결과는 글로벌 접근법과 Naïve RAG, Graph RAG와 소스 텍스트 요약 간에 혼합된 결과를 보였습니다. LLM이 사용자의 이해를 돕기 위해 구체적인 예시, 인용, 출처를 제공하는 것이 중요하다는 점이 강조되었으며, Graph RAG의 요소 추출 프롬프트를 조정해 이러한 세부 정보를 더 많이 유지하는 것이 성능 향상에 기여할 수 있습니다.

4 Related Work

4.1 RAG Approaches and Systems

기존 RAG(Retrieval-Augmented Generation) 방식은 외부 데이터 소스에서 관련 정보를 먼저 검색하고, 이를 LLM의 컨텍스트 창에 추가하여 원래의 질의와 함께 처리합니다. Naïve RAG 방식은 문서를 텍스트로 변환한 후 이를 조각으로 나누고, 각 조각을 벡터 공간에 임베딩하여 유사한 위치가 유사한 의미를 나타내도록 합니다. 질의 역시 같은 벡터 공간에 임베딩한 후, 가장 가까운 k개의 벡터를 컨텍스트로 사용합니다. 이러한 Naïve RAG의 단점을 극복하기 위한 고급 RAG 시스템은 사전 검색, 검색, 검색 후 전략을 포함하며, Modular RAG 시스템은 반복적이고 동적 사이클을 통해 검색과 생성을 교차하는 패턴을 사용합니다.
Graph RAG 구현은 다른 시스템과 관련된 여러 개념을 통합하고 있습니다. 예를 들어, 커뮤니티 요약은 향후 생성 주기를 촉진하는 'Selfmem' 스타일의 자기 기억이며, 이를 통해 생성 보강 검색(GAR)이 이루어집니다. 또한, 커뮤니티 요약을 기반으로 병렬로 커뮤니티 답변을 생성하는 방식은 반복적 또는 연합적 검색-생성 전략과 유사합니다. 다른 시스템들도 다중 문서 요약(CAiRE-COVID)과 다중 단계 질문 답변(ITRG, IR-CoT, DSP)에서 이러한 개념을 결합해 사용한 바 있습니다. 
Graph RAG에서 사용하는 계층적 인덱스와 요약 방식은 텍스트 임베딩 벡터를 클러스터링하여 계층적 인덱스를 생성하는 방식이나, 모호한 질문에 대한 여러 해석을 제공하기 위한 'clarification tree' 생성 방식과 유사합니다. 그러나 이러한 반복적 또는 계층적 접근 방식은 Graph RAG처럼 자가 생성된 그래프 인덱스를 사용하는 방식과는 차이가 있습니다.

4.2 Graphs and LLMs

LLM과 RAG를 활용한 그래프 사용은 현재 계속 발전 중이며, 여러 연구 방향이 존재합니다. 이 연구들은 LLM을 이용한 지식 그래프 생성(Trajanoska et al., 2023)과 완성(Yao et al., 2023), 그리고 원본 텍스트에서 인과 그래프 추출(Ban et al., 2023; Zhang et al., 2024) 등을 포함합니다. 또한, 고급 RAG 형태(Gao et al., 2023)에서 인덱스를 지식 그래프로 사용하는 방법(KAPING, Baek et al., 2023), 그래프 구조의 일부(G-Retriever, He et al., 2024)나 도출된 그래프 메트릭(Graph-ToolFormer, Zhang, 2023)을 탐색 대상으로 삼는 방법, 검색된 서브그래프에 근거한 서술적 출력(SURGE, Kang et al., 2023), 이벤트 플롯 서브그래프를 내러티브 템플릿으로 직렬화하는 방식(FABULA, Ranade and Joshi, 2023), 그리고 텍스트-관계 그래프 생성을 지원하며 다중 단계의 질문 답변을 수행하는 시스템(Wang et al., 2023b) 등이 포함됩니다.

오픈 소스 소프트웨어 측면에서는 LangChain(2024)과 LlamaIndex(2024) 라이브러리에서 다양한 그래프 데이터베이스가 지원되며, Neo4J(NaLLM, Neo4J, 2024)와 NebulaGraph(GraphRAG, NebulaGraph, 2024) 형식으로 지식 그래프를 생성하고 이를 기반으로 추론할 수 있는 시스템도 등장하고 있습니다. 그러나 본 논문에서 제안하는 Graph RAG 접근 방식은 다른 시스템과 달리 그래프의 자연스러운 모듈성을 활용해 데이터를 전역 요약에 사용할 수 있다는 점에서 차별화됩니다.

5 Discussion

평가 접근 방식의 한계: 현재 평가에서는 약 100만 토큰의 두 개 코퍼스에 대한 특정 유형의 질문만을 다루고 있습니다. 다양한 질문 유형, 데이터 유형, 데이터셋 크기에 따른 성능 변화를 파악하기 위해 추가 연구가 필요하며, 실제 사용자와의 검증도 필요합니다. 또한, SelfCheckGPT와 같은 방식으로 허위 생성률을 비교하면 분석이 개선될 수 있습니다.

그래프 인덱스 구축의 트레이드오프: Graph RAG가 다른 방법에 비해 성능이 뛰어났지만, 그래프가 없는 전반적인 요약 방식도 경쟁력 있는 성과를 보였습니다. 실제로 그래프 인덱스를 구축할지 여부는 컴퓨팅 예산, 데이터셋당 예상 질의 횟수, 그리고 그래프 인덱스에서 얻을 수 있는 가치 등 여러 요인에 따라 결정됩니다.

향후 연구 방향: 현재 Graph RAG 접근 방식에서 사용하는 그래프 인덱스, 텍스트 주석, 계층적 커뮤니티 구조는 다양한 개선 가능성을 제공합니다. 사용자의 질의와 그래프 주석을 임베딩 기반으로 매칭하는 더 로컬한 RAG 접근 방식이나, 하이브리드 RAG 방식 등을 탐구할 수 있습니다. 또한, 커뮤니티 계층을 더 확장해 "드릴 다운" 방식으로 더 세부적인 정보를 탐색하는 방법도 고려될 수 있습니다.

6 Conclusion

전체 텍스트 코퍼스에서 의미 형성을 지원하기 위해 지식 그래프 생성, RAG, 그리고 질문 중심 요약(QFS)을 결합한 Graph RAG의 글로벌 접근 방식을 제시했습니다. 초기 평가에서는 답변의 포괄성과 다양성 측면에서 단순 RAG 베이스라인보다 상당한 개선을 보였으며, 그래프 없이 소스 텍스트 요약을 수행하는 글로벌 방식과 비교했을 때도 긍정적인 성과를 나타냈습니다. 동일한 데이터셋에 대해 여러 글로벌 질의가 필요한 상황에서 엔티티 기반 그래프 인덱스의 루트 수준 커뮤니티 요약은 단순 RAG보다 우수하며, 적은 토큰 비용으로 다른 글로벌 방법들과 경쟁력 있는 성능을 보여줍니다. 글로벌 및 로컬 그래프 RAG 접근 방식을 모두 구현하는 오픈 소스 Python 기반 구현이 곧 출시될 예정입니다(https://aka.ms/graphrag).

반응형

댓글