콘텐츠로 이동

PathRAG: 이웃을 다 넣지 말고 경로만 넣는 GraphRAG

  • 논문: PathRAG: Pruning Graph-Based Retrieval Augmented Generation with Relational Paths
  • 저자: Boyu Chen, Zirui Guo, Zidan Yang, Yuluo Chen, Junze Chen, Zhenghao Liu, Chuan Shi, Cheng Yang (베이징우전대, 홍콩대, 동북대, 8명)
  • arXiv: 2502.14902 [cs.CL], v2 2025-11-17. AAAI 2026 게재본
  • 코드: BUPT-GAMMA/PathRAG
  • 실험 환경: 생성·평가 모두 GPT-4o-mini, 임베딩 text-embedding-3-small, 입력 상한 8,000 토큰, 무작위 요소는 10회 평균
  • 읽은 날짜: 2026-09-28
  • 태그: #GraphRAG #LightRAG #PathRetrieval #Pruning #LostInTheMiddle #TokenCost

한 줄 요약

GraphRAG의 문제는 정보가 모자란 게 아니라 넘친다는 것이다. 질의와 관련된 노드 쌍 사이에서 자원 흐름(flow)으로 점수를 매긴 핵심 경로만 골라 텍스트로 이어 붙이고, 가장 믿을 만한 경로를 프롬프트 맨 끝에 두면 LightRAG보다 토큰을 14% 덜 쓰면서 LLM 판정 승률 57%를 얻는다.

읽는 방식

원문 목차를 그대로 따라간다. 원문은 절 번호를 쓰지 않아 제목만 맞췄다. 마지막 세 절만 읽는 쪽에서 덧붙인 것이다.


Introduction

그래프 기반 RAG는 텍스트에서 엔티티를 노드로, 관계를 엣지로 뽑아 색인 그래프를 만든다. 대표 둘의 검색 방식은 이렇다.

방법 검색 단위
MS GraphRAG 질의와 관련된 커뮤니티 안의 모든 노드·엣지 정보
LightRAG 질의 키워드로 찾은 노드의 바로 이웃 전부(ego-network)

저자들의 문제 제기는 두 가지다.

  • 중복: 두 방법 모두 필요 이상으로 가져온다. 넘치는 정보는 잡음이 되어 답을 흐리고 토큰을 낭비한다
  • 평평한 프롬프트: 가져온 노드·엣지 텍스트를 그냥 이어 붙인다. 관계의 흐름이 사라져 답의 논리성과 일관성이 떨어진다

해법은 검색된 노드 쌍 사이의 핵심 관계 경로만 뽑아 경로 형태 그대로 프롬프트에 넣는 것이다. 기존 LightRAG 벤치마크에 데이터셋 넷을 더해 여섯 개로 평가했고, GraphRAG 대비 평균 승률 59.93%, LightRAG 대비 57.09%를 보고한다.

  • 텍스트 기반 RAG: 희소 검색(단어 빈도)과 밀집 검색(임베딩). 청크를 평평하게 두어 청크 사이의 관계를 못 잡는다
  • KG-RAG: 기존 지식그래프에서 질의 엔티티의 이웃 부분그래프를 뽑는다. 단일 엔티티·관계로 답이 나오는 질문에 치우쳐 있다
  • 그래프 기반 RAG: 기존 KG 대신 텍스트로 그래프를 만들고, 여러 조각에 흩어진 정보가 필요한 전역 질의를 겨냥한다. MiniRAG도 경로를 쓰지만 질의 노드와 정답 노드 사이 경로를 찾는 KG 추론 방식이라, 특정 노드 하나로 답이 나오는 질문용이다

Preliminaries

색인 그래프를 G = (V, E, K_V, T)로 둔다. 노드 v는 식별자 k_v(엔티티 이름)와 텍스트 t_v를, 엣지 e는 관계 설명 텍스트 t_e를 가진다.

A(q, G) = F ∘ M(q; R(q, G))
          생성기   프롬프트 템플릿   그래프 검색기

이 논문이 손대는 것은 검색기 R과 템플릿 M이다. 그래프 구축은 MS GraphRAG 방식을 그대로 쓴다.

Methodology

세 단계로 돈다.

flowchart LR
  Q(["질의"]) --> S1["**① 노드 검색**<br/>LLM 키워드 추출<br/>→ 노드 이름과 임베딩 유사도<br/>→ 관련 노드 N = 40"]
  S1 --> S2["**② 경로 검색**<br/>노드 쌍마다 후보 경로 열거<br/>→ 흐름 전파로 신뢰도 계산<br/>→ 전체 상위 K = 15"]
  S2 --> S3["**③ 답 생성**<br/>경로를 텍스트로 직렬화<br/>질의 → 약한 경로 … 강한 경로<br/>→ LLM"]
  S3 --> A(["답"])
  classDef stage fill:#eef3fb,stroke:#2a78d6,color:#0b0b0b
  class S1,S2,S3 stage

LightRAG와 비교하면 ①은 거의 같고, ②에서 "노드의 이웃 전부" 대신 "노드 쌍 사이 경로 일부"를 가져오는 것이 핵심 차이다.

flowchart TB
  subgraph L["LightRAG: 관련 노드의 이웃 전부"]
    direction LR
    la((A)) --- l1((·)) & l2((·)) & l3((·))
    lb((B)) --- l4((·)) & l5((·)) & l3
  end
  subgraph P["PathRAG: A와 B를 잇는 핵심 경로만"]
    direction LR
    pa((A)) --> p1((·)) --> pb((B))
    pa -.-x p2((·))
    pb -.-x p3((·))
  end
  classDef hit fill:#2a78d6,stroke:#1c5cab,color:#ffffff
  classDef keep fill:#cde2fb,stroke:#2a78d6,color:#0b0b0b
  classDef drop fill:#f4f3f0,stroke:#c9c8c3,color:#8a8984
  class la,lb,pa,pb hit
  class l1,l2,l3,l4,l5,p1 keep
  class p2,p3 drop

Node Retrieval

LLM으로 질의에서 키워드를 뽑고, 키워드와 노드 식별자를 같은 임베딩 모델로 인코딩한다. 키워드마다 코사인 유사도가 높은 노드를 모아 N개가 될 때까지 채운다(기본 N = 40).

Path Retrieval

검색된 두 노드 v_start, v_end 사이에는 경로가 많다. 전부 쓰지 않고 자원 배분(resource allocation) 방식으로 걸러낸다. 링크 예측 연구에서 가져온 발상이다.

S(v_start) = 1, 나머지 0 으로 시작

S(v_i) = Σ_{v_j → v_i}  α · S(v_j) / |나가는 이웃(v_j)|      (2)

S(v_i) / |나가는 이웃(v_i)| < θ  이면 그 노드에서 전파 중단    (3)
  • α (감쇠율, 기본 0.7): 한 홉 갈 때마다 자원이 줄어든다. "그래프에서 가까울수록 관계가 강하다"는 가정을 거리 벌점으로 넣은 것이다
  • 이웃 수로 나누기: 이웃이 많은 허브 노드를 지나면 자원이 잘게 쪼개져 약해진다 (논문 식 기준. 공개 코드는 다르게 센다, 아래 예시 참고)
  • 조기 종료: 먼 노드는 자원이 무시할 만큼 작아지므로 θ 아래에서 전파를 끊는다. 효율을 위해 노드당 자원은 한 번만 갱신한다

경로 P의 신뢰도는 경로 위 노드 자원의 합을 엣지 수로 나눈 값이다.

S(P) = (1 / |E_P|) · Σ_{v_i ∈ V_P} S(v_i)      (4)

노드 쌍마다 신뢰도가 높은 경로만 남겨 전역 후보 풀에 넣고, 모든 쌍을 돈 뒤 상위 K개(기본 15)를 최종 검색 결과로 쓴다.

저자들은 이것이 "홉 수가 적은 경로부터 자르기"와 다르다고 강조한다. 감쇠만 있으면 홉 순서와 같겠지만, 이웃 수로 나누는 항 때문에 갈림이 많은 짧은 경로보다 갈림 없는 긴 경로가 이길 수 있다.

공개 코드 기준 계산 예시

논문 식과 공개 코드(PathRAG/operate.py의 bfs_weighted_paths)가 다르다. 아래 예시는 코드를 그대로 옮겨 계산한 값이다.

흐름 전파 예시. A에서 T로 가는 후보 경로 셋 중 3홉이지만 갈림 없는 A→B→C→T가 0.407로 채택된다

항목 논문 본문 공개 코드
감쇠율 α 0.7 0.8
중단 기준 θ 값 미기재 0.3
후보 경로 범위 "홉 수 제한과 다르다" 3홉 이하만 DFS로 열거
나누는 이웃 수 노드의 나가는 이웃 전체 두 노드 사이 후보 경로 안에서의 갈래 수
자원을 싣는 곳 노드 엣지
경로 점수 노드 자원 합 ÷ 엣지 수 엣지 가중치 평균

가장 큰 차이는 넷째 줄이다. 코드에서는 A와 T를 잇는 후보 경로 밖의 이웃(그림의 x1, x2)은 나눗셈에 들어가지 않는다. 허브라서 약해지는 것이 아니라, 두 노드 사이에서 길이 여러 갈래로 갈라져서 약해진다. 3홉 제한 때문에 "홉 수 제한과 다르다"는 본문 주장도 코드에서는 3홉 안에서만 성립한다.

Answer Generation

경로 위 노드와 엣지 텍스트를 순서대로 이어 한 덩어리로 만든다.

t_P = concat([ ... ; t_{v_i} ; t_{e_i} ; t_{v_{i+1}} ; ... ])

"lost in the middle"(긴 문맥의 가운데는 잘 안 읽힌다)을 고려해 질의를 맨 앞에, 경로는 신뢰도 오름차순으로 둔다. 가장 믿을 만한 경로가 프롬프트 맨 끝, 질문 바로 앞 생성 위치에 오게 된다.

M(q; R(q, G)) = concat([ q ; t_{P_K} ; ... ; t_{P_1} ])      P_1 = 가장 신뢰도 높은 경로

Discussion

  • KG-RAG의 경로 선택과의 차이: 기존 방법은 경로를 결과를 찾아가는 수단으로만 썼고, 여러 경로가 결과로 이어질 때 거를 방법이 없었다. PathRAG는 경로 자체를 검색 결과로 내놓고 흐름으로 거른다
  • 복잡도: i번째 전파 후 살아 있는 노드는 최대 α^i/θ개라, 한 쌍에서 관여하는 노드는 최대 1/((1−α)θ)개다. 전체는 O(N² / ((1−α)θ)). N은 10~60, 그래프 노드는 1만 개 정도라 감당할 만하다
  • 경로 프롬프트가 필요한 이유: 경로끼리 노드·엣지가 겹치므로 평평하게 풀어 중복을 없애면 토큰은 줄지만, 두 끝점 사이의 의미 관계가 사라진다. 실험으로 확인한다

Experiments

연구 질문은 다섯이다. RQ1 기준선 대비 성능, RQ2 구성 요소별 기여, RQ3 그래프 희소도에 대한 견고성, RQ4 백본 LLM 영향, RQ5 토큰 비용.

Experimental Setup

항목 설정
데이터 UltraDomain의 Legal, History, Biology, Mix + SQuALITY(장문 요약) + SummScreen(대본 요약). 18만~500만 토큰
하이퍼파라미터 튜닝 Agriculture, CS (위 여섯과 분리)
기준선 NaiveRAG, HyDE, G-retriever, HippoRAG(v1), MS GraphRAG, LightRAG
그래프 구축 MS GraphRAG 방식
고정값 N = 40, K = 15, α = 0.7
평가 정답이 없어 GPT-4o-mini가 두 답을 쌍으로 비교하는 승률. 두 순서로 제시해 평균
평가 축 포괄성, 다양성(GraphRAG·LightRAG에서 가져옴), 논리성, 관련성, 일관성(ChatEval에서 추가)

Main Results (RQ1)

Table 1은 기준선 6종 × 데이터셋 6개 × 평가 축 5개의 승률이다. 기준선별로 평균을 내면 다음과 같다(표에서 직접 계산, 본문 수치와 일치).

PathRAG 평균 승률. 기준선 대비 57~66%, 변형 비교 50.6~56.4%

상대 PathRAG 평균 승률
NaiveRAG 66.17%
HyDE 62.82%
G-retriever 62.30%
HippoRAG 61.20%
MS GraphRAG 59.93%
LightRAG 57.09%

기준선 × 데이터셋별 PathRAG 승률 히트맵

모든 칸에서 PathRAG가 50%를 넘는다. 평가 축별로는 다양성(65.37%)이 가장 높고 일관성(59.43%)이 가장 낮다. 데이터셋별로는 Legal이 64.66%로 가장 높다. 가장 좁은 칸은 LightRAG 대비 SummScreen과 Biology 일부로 53%대다.

SQuALITY는 사람이 쓴 요약이 있어 참조 기반 지표도 쟀다(Table 4).

방법 BLEU-1 BLEU-2 ROUGE-1 F1 ROUGE-2 F1 METEOR
NaiveRAG 31.78 12.31 13.80 3.51 16.90
MS GraphRAG 32.98 12.27 14.23 3.59 17.52
LightRAG 33.37 12.42 14.56 3.30 17.66
PathRAG 35.41 13.81 15.35 3.95 18.53

최고 기준선 대비 평균 7.06% 개선이다.

Ablation Study (RQ2)

경로 정렬 (Table 2). 흐름 기반 정렬을 무작위 정렬, 홉 수 우선 정렬과 비교했다. 평균 승률은 각각 56.44%, 55.64%다. 다양성에서 차이가 가장 크게 나는 칸이 있다(History·Biology에서 무작위 대비 68.6%, 70.2%).

경로 프롬프트 (Table 3). 같은 경로를 검색하되 프롬프트에 노드·엣지를 평평하게 풀어 넣은 경우와 비교했다. 경로 형태가 평균 55.19%로 이긴다. 다만 History 포괄성 51.2%, Mix 포괄성 50.4%처럼 사실상 동률인 칸도 있다.

Graph Sparsity Analysis (RQ3)

Agriculture와 CS 그래프에서 엣지를 10~50% 무작위로 지워 희소한 그래프를 흉내 냈다(Figure 3).

비교 Agriculture CS
PathRAG 대 NaiveRAG 54.84 ~ 57.32% 51.72 ~ 54.92%
PathRAG 대 LightRAG 50.92 ~ 53.24% 52.24 ~ 53.28%

엣지를 지울수록 그래프 기반 방법 모두 성능이 떨어지지만 PathRAG는 두 기준선을 계속 앞선다. 다만 LightRAG 대비 격차는 50.92%까지 좁아져 거의 동률이다.

Performance under Different LLMs (RQ4)

생성과 평가 모델을 같이 GPT-4o-mini, DeepSeek-V3, GPT-4o로 바꿔 LightRAG와 비교했다(Table 5, Agriculture·CS).

생성·평가 모델 PathRAG 평균 승률
GPT-4o-mini 53.92%
DeepSeek-V3 56.48%
GPT-4o 58.36%

강한 모델일수록 격차가 벌어진다는 해석이다. GPT-4o로 CS를 평가하면 포괄성 67.2%, 다양성 66.0%까지 오른다.

Token Cost Analysis (RQ5)

N = 20, K = 5로 줄인 경량판 PathRAG-lt를 함께 쟀다. PathRAG-lt는 LightRAG와 평균 승률 50.56%로 비긴다.

LightRAG PathRAG-lt PathRAG
질의당 토큰 16,728 9,968 14,438
질의당 비용 $0.00251 $0.00150 $0.00217

질의당 토큰. LightRAG 16,728, PathRAG-lt 9,968, PathRAG 14,438

PathRAG는 LightRAG보다 토큰 13.69%를 덜 쓰면서 이기고, PathRAG-lt는 40.41%를 덜 쓰면서 비긴다.

Conclusion

핵심 관계 경로를 흐름 기반 가지치기로 골라 경로 형태로 프롬프트에 넣으면 잡음이 줄고 답의 질이 오른다. 향후 과제로 색인 그래프 구축 개선, 사람이 라벨링한 GraphRAG 데이터셋 수집, 경로 외 다른 부분 구조 탐색을 든다.


읽을 때 감안할 것

  • 정답 없는 평가, 그것도 같은 모델이 만들고 채점한다. 주 결과는 전부 GPT-4o-mini가 두 답을 비교한 승률이고, 답을 생성한 모델도 GPT-4o-mini다. RQ4에서도 생성과 평가 모델을 함께 바꿨다. LLM 판정기는 길고 항목이 많은 답을 선호하는 경향이 있는데, 경로 텍스트를 이어 붙이면 답에 담을 관계 서술이 많아진다. 다양성 승률이 가장 높은 것(65.37%)이 이 경향과 겹친다. 사람 평가는 없고 저자들도 향후 과제로 남겼다.
  • 참조 기반 지표의 개선 폭은 작다. SQuALITY의 ROUGE-2 F1은 LightRAG 3.30, PathRAG 3.95로 절대값 차이가 0.65다. 모든 방법이 3~4% 수준이라 요약 품질 자체가 낮은 영역의 비교다. 분산이나 유의성 검정은 없다.
  • 튜닝 데이터로 분석 실험을 했다. 하이퍼파라미터를 Agriculture와 CS로 맞췄다고 해 놓고, RQ3(희소도)와 RQ4(백본) 분석을 바로 그 두 데이터셋에서 했다. 주 결과(Table 1)는 분리돼 있지만 분석 실험 수치는 낙관적일 수 있다.
  • 본문 서술에 방향이 뒤집힌 문장이 있다. 답 생성 절 끝에 "경로를 무작위 또는 신뢰도 오름차순으로 두는 것보다 크게 낫다"는 문장이 있는데, PathRAG 자신이 오름차순이다. 내림차순의 오기로 보인다. 그리고 Table 2의 비교는 무작위와 홉 우선뿐이라 "가장 좋은 경로를 끝에 둔다"는 배치 효과 자체는 분리해서 검증되지 않았다. 정렬 기준(흐름 대 홉)과 배치 방향(끝 대 앞)이 섞여 있다.
  • 신뢰도 식이 이름과 다르다. 식 (4)를 "엣지를 흐르는 자원의 평균"이라 부르지만 실제로는 노드 자원 합을 엣지 수로 나눈다. 노드 수는 엣지 수보다 하나 많으므로 1홉 경로는 두 노드 합이 그대로 점수가 되는 식으로 짧은 경로에 유리한 편향이 조금 있다.
  • 토큰 수와 입력 상한이 맞지 않는다. 입력 상한을 8,000 토큰으로 두었다는데 질의당 토큰은 1만~1.7만이다. 키워드 추출 호출과 출력까지 합친 값으로 보이지만 본문에 구성 설명이 없다. 부록 A~I를 참조하라는 문장이 여럿 있지만 arXiv PDF(9쪽)에는 부록이 없다.
  • 공개 코드가 논문 식과 다르다. α(0.7 대 0.8), 3홉 제한, 이웃 수를 세는 범위, 점수 식이 모두 다르다(Path Retrieval 절의 표). 어느 쪽으로 실험 수치를 냈는지 본문에 없다. 특히 "허브 노드를 지나는 경로를 약하게 만든다"는 성질은 논문 식에만 있고, 코드에서는 후보 경로 안의 갈림만 센다.
  • 질의 유형이 전역 요약형에 한정된다. 여섯 데이터셋 모두 LightRAG 계열의 "문서 전체에 대한 요약형 질문"이다. 정답이 정해진 멀티홉 QA(HotpotQA 등)는 없다. 기준선 HippoRAG도 v1이다.

가져갈 지점

  1. "더 가져오기"보다 "덜 가져오기"를 먼저 의심한다

GraphRAG 튜닝은 보통 검색 폭을 넓히는 쪽으로 간다. 이 논문은 반대로 커뮤니티 전체나 이웃 전체를 넣는 것이 잡음이라고 본다. ROGRAG 노트가 검색 단계를 여러 겹 쌓는 쪽이라면, PathRAG는 같은 그래프에서 가져오는 양을 줄이는 쪽이다. RAGSearch 노트의 비용표에서 MS GraphRAG가 컨텍스트 22K 토큰을 쓰고도 중위권이었던 것과 같은 방향의 관찰이다.

  1. 자원 배분 전파는 그래프 DB 위에서 바로 구현할 수 있다

식 (2)~(3)은 학습이 필요 없는 결정적 계산이고 파라미터가 α와 θ 둘뿐이다. Cypher의 가변 길이 경로(*1..3)로 후보를 뽑고 애플리케이션에서 가중치를 전파하면 된다. 이때 어느 쪽 이웃 수를 쓸지가 설계 선택이다. 논문 식처럼 그래프 전체 차수로 나누면 조직도의 최상위 노드나 공통 태그처럼 모든 것에 연결된 허브를 지나는 경로가 약해진다. 공개 코드처럼 후보 경로 안의 갈래만 세면 허브 억제 효과는 없고, 두 노드 사이에서 길이 여러 갈래로 갈리는 경로만 약해진다. 허브 오염이 문제라면 논문 식 쪽을 구현하고, 차수는 미리 노드 속성으로 붙여 둔다.

  1. 검색 결과를 경로 단위 텍스트로 직렬화한다

노드 목록과 엣지 목록을 따로 넣지 말고 A -[관계]-> B -[관계]-> C 한 줄로 이어 넣는다. 토큰은 조금 늘지만 두 끝점의 관계가 보존된다. 효과는 승률 55% 정도로 크지 않으니 토큰 예산이 빠듯하면 평평하게, 여유가 있으면 경로로 두는 선택지로 본다.

  1. 중요한 근거는 프롬프트 끝에 둔다

경로를 신뢰도 오름차순으로 두어 가장 강한 근거가 질문 직전 위치에 오게 한다. 구현 비용이 0인 조정이다. 다만 이 논문에서 배치 효과만 떼어 검증하지는 않았으므로, 적용할 때는 앞 배치와 A/B로 확인한다.

  1. LLM 판정 승률은 참조 지표와 함께 본다

승률 57%가 ROUGE-2 0.65 차이와 짝을 이룬다. JEV-as-a-Judge 노트에서 본 것처럼 참조 없는 산문 판정은 판정기가 가장 약한 영역이다. 자체 GraphRAG 평가에서도 승률 하나로 결정하지 않고, 정답이 있는 질의 묶음을 따로 둔다.

결론

PathRAG의 기여는 성능 수치보다 "GraphRAG 검색은 넘쳐서 문제다"라는 관점과, 그걸 학습 없이 푸는 간단한 흐름 전파 알고리즘이다. 파라미터 둘로 갈림 많은 경로를 누르고 노드 쌍 사이의 핵심 경로만 남기는 방식은 어느 그래프 저장소에서든 옮겨 쓸 수 있다. 다만 논문 식과 공개 코드가 달라서, 옮길 때는 어느 쪽 이웃 수를 쓸지 먼저 정해야 한다.

반면 성능 주장은 같은 모델이 만들고 채점한 승률에 기대고 있고, LightRAG 대비 격차는 57% 안팎, 희소 그래프에서는 51%까지 좁아진다. "LightRAG보다 토큰을 덜 쓰면서 지지 않는다" 정도로 받아들이는 것이 안전하다. 정답이 있는 멀티홉 QA에서의 성능은 이 논문으로는 알 수 없다.