
GraphRAG에서 질의 중심 요약(Query-Focused Summarization)을 언제 사용해야 하는가?
요약
GraphRAG에서 글로벌 질문에 대응하기 위한 질의 중심 요약(QFS)의 필요성과 작동 원리를 설명합니다. 단순 검색을 넘어 데이터 전반의 패턴을 파악하기 위한 종합(Synthesis) 과정을 다룹니다.
핵심 포인트
- 글로벌 질문은 단일 노드나 이웃 탐색이 아닌 데이터 전반의 종합이 필요함
- 질의 중심 요약(QFS)은 질문에 특화된 요약을 생성하여 패턴을 추출함
- Text2Cypher 및 로컬 검색과 QFS의 차이점을 명확히 구분함
- Microsoft의 GraphRAG 연구를 바탕으로 한 글로벌 검색 워크플로우 소개
제품 리드(Product lead)가 AI 어시스턴트에게 수천 개의 리뷰 전반에 걸쳐 고객들이 계속해서 불만을 제기하는 내용이 무엇인지 묻습니다.
Text2Cypher 쿼리는 이를 직접적으로 답변할 수 없습니다. 로컬 그래프 검색 (Local graph search)은 단 하나의 제품이나 단 한 명의 사용자만을 설명할 수도 있습니다. 답변을 위해서는 더 넓은 코퍼스 (Corpus) 전반에 걸친 종합(Synthesis)이 필요합니다. 바로 이 지점에서 질의 중심 요약 (Query-focused summarization)이 적합합니다.
이 포스트에서는 GraphRAG가 언제 이러한 글로벌 검색 (Global retrieval) 패턴을 필요로 하는지, 이것이 Text2Cypher 및 로컬 그래프 검색과 어떻게 다른지, 그리고 파이프라인을 그래프에 가깝게 유지하는 것이 왜 중요한지에 대해 살펴보겠습니다.
글로벌 질문에 다른 접근 방식이 필요한 이유
모든 GraphRAG 질문이 동일한 형태를 가진 것은 아닙니다. 어떤 질문들은 분석적입니다:
버그로 레이블이 지정된 이슈는 몇 개인가?
다른 질문들은 맥락적입니다:
어떤 이슈들이 이 풀 리퀘스트 (Pull request)와 관련이 있는가?
그리고 어떤 질문들은 글로벌합니다:
이 제품 카테고리 전반에 걸쳐 반복되는 불만 사항은 무엇인가?
첫 번째 질문은 Text2Cypher로 답변하는 것이 가장 좋습니다. 두 번째는 로컬 그래프 검색으로 답변하는 것이 가장 좋습니다. 세 번째는 다릅니다.
답변은 단일 노드 (Node), 관계 (Relationship), 또는 그래프 이웃 (Graph neighborhood)에 존재하지 않습니다. 답변은 많은 연결된 레코드 (Records)에 퍼져 있는 패턴으로부터 나타납니다. 글로벌 질문은 종종 다음과 같은 것들을 요구합니다:
- 반복되는 테마 (Recurring themes)
- 사각지대 (Blind spots)
- 누락된 커버리지 (Missing coverage)
- 과소 대표되는 주제 (Underrepresented topics)
- 많은 연결된 레코드에 걸친 패턴
- 그래프의 관련 부분을 그룹화한 후에야 명확해지는 신호
이러한 질문들은 조회 (Lookup)나 이웃 탐색 (Neighborhood exploration)보다는 종합 (Synthesis)을 필요로 합니다.
이것이 바로 질의 중심 요약 (Query-focused summarization)이 유용해지는 지점입니다.
이러한 구분은 Microsoft의 GraphRAG 연구 결과와 일치합니다. 해당 연구는 전통적인 검색 방식이 몇 개의 관련 구절을 검색하는 대신 전체 코퍼스 전반에 걸친 추론을 요구하는 질문에 어려움을 겪는 경우가 많다는 것을 보여주었습니다. 그들의 논문인 _From Local to Global: A GraphRAG Approach to Query-Focused Summarization_은 이러한 광범위한 질문을 위해 특별히 설계된 글로벌 검색 워크플로우를 소개했습니다.
질의 중심 요약이 하는 일
질의 중심 요약 (Query-focused summarization, QFS)은 전체 데이터셋에 대한 일반적인 요약을 생성하는 대신, 사용자의 질문을 기반으로 요약을 생성합니다.
이러한 차이는 매우 중요합니다.
일반적인 요약은 다음과 같이 말합니다:
이 데이터셋이 광범위하게 무엇에 관한 것인지 알려드립니다.
질의 중심 요약은 다음과 같이 말합니다:
이 특정 질문에 있어 중요한 내용은 다음과 같습니다.
GraphRAG에서 QFS는 보통 그래프의 더 넓은 슬라이스 (slice)를 처리하고, 관련된 엔티티 (entities)나 커뮤니티 (communities)를 그룹화하며, 더 작은 요약본들을 생성한 다음, 이 요약본들을 최종 답변으로 축약하는 방식으로 작동합니다.
기본적인 흐름은 다음과 같습니다:
글로벌 질문 (global question)
↓
더 넓은 그래프 슬라이스 로드
...
목표는 단 하나의 이웃 (neighborhood)을 조사하거나 단 하나의 그래프 쿼리 (graph query)를 실행하는 것이 아닙니다.
목표는 그래프 구조를 사용하여 더 큰 규모로 정보를 조직하고, 더 넓은 패턴을 반영하는 답변을 생성하는 것입니다.
이 접근 방식은 대규모 정보 검색 (information retrieval) 및 다중 문서 요약 (multi-document summarization)에서 사용되는 기술과 밀접하게 관련되어 있으며, 여기서 시스템은 답변을 생성하기 전에 많은 소스로부터 증거를 집계해야 합니다. 데이터셋이 단일 LLM 컨텍스트 윈도우 (context window)에 담을 수 있는 범위를 넘어 커질수록 이 과제는 더욱 중요해집니다.
GitHub Issues 예시: 제품의 사각지대 찾기
GitHub 이슈 (issues)를 기반으로 구축된 지식 그래프 (knowledge graph)를 상상해 보십시오.
이슈들은 레이블 (labels), 추출된 엔티티 (entities), 관련 이슈 링크, 커뮤니티 그룹화, 그리고 해당 커뮤니티들에 대한 요약을 통해 연결됩니다.
이제 누군가 다음과 같이 질문합니다:
사각지대 (blind spots)는 어디인가요?
이 질문은 이슈 그래프가 드러내는 내용에 대해 더 높은 수준의 관점을 요구합니다. 어떤 영역이 계속해서 나타납니까? 어떤 문제들이 충분히 논의되지 않은 것처럼 보입니까? 어떤 커뮤니티들이 반복되는 제품의 격차를 가리키고 있습니까?
로컬 그래프 검색 (local graph search) 워크플로우는 특정 이슈나 엔티티 주변의 관계를 설명하는 데 도움을 줄 수 있습니다. 하지만 수백 또는 수천 개의 관련 이슈 전반에 걸친 패턴을 요약하도록 설계되지는 않았습니다.
질의 중심 요약 (Query-focused summarization)은 더 넓은 이슈 그래프 (issue graph) 전반에 걸쳐 작동할 수 있으며, 서로 다른 커뮤니티 (communities)를 요약하고, 이러한 부분적 요약들을 제품의 사각지대(blind spots)에 대한 집중적인 답변으로 전환할 수 있습니다.
질의 (Query):
출력 (Output):
이것이 전역 검색 (global retrieval) 패턴입니다. 가치는 시스템이 일치하는 이슈를 찾는 데 있는 것이 아닙니다. 가치는 많은 관련 이슈 전반에 걸친 패턴을 드러낼 수 있다는 점에 있습니다.
요약 전 그래프 커뮤니티 (graph communities)가 어떻게 식별되는지 관심이 있다면, Memgraph의 GraphRAG 워크플로 (workflows)는 그래프 알고리즘 (graph algorithms)과 커뮤니티 탐지 (community detection) 기술을 결합하여 정보가 LLM에 도달하기 전에 관련 정보를 정리할 수 있습니다.
Atomic GraphRAG가 전역 검색에 도움이 되는 이유
전역 검색 (Global retrieval)은 Text2Cypher나 로컬 그래프 검색 (local graph search)보다 더 많은 구성 요소가 움직입니다. 질의 중심 요약 (Query-focused summarization)은 추가적인 오케스트레이션 (orchestration)을 필요로 합니다.
파이프라인 (pipeline)은 더 넓은 그래프 슬라이스 (graph slice)를 선택하고, 관련 노드 (nodes)를 그룹화하며, 그래프 알고리즘을 적용하고, 커뮤니티를 요약하고, 부분적 요약을 순위 매기고, 최종 답변을 조립해야 할 수도 있습니다.
이러한 단계들을 스크립트, 서비스, 프롬프트 체인 (prompt chains), 그리고 후처리 (post-processing) 코드에 나누어 배치할 수 있습니다. 작동은 하겠지만, 디버깅(debug)하기가 매우 고통스러워집니다.
만약 답변이 부실하다면, 어디에서 실패가 발생했을까요? 그래프 슬라이스가 너무 넓었을까요? 커뮤니티가 잘못되었을까요? 요약이 질의를 무시했나요? 최종 축소 (reduction) 단계에서 유용한 컨텍스트 (context)를 놓쳤나요?
이 지점에서 Atomic GraphRAG 패턴이 유용해집니다. 이점은 검색 계획 (retrieval plan)의 더 많은 부분이 데이터, 관계, 그리고 그룹화 로직이 이미 존재하는 그래프에 가깝게 유지될 수 있다는 것입니다.
전역 질문(global questions)의 경우, 답변이 LLM(Large Language Model)에 도달하기 전 시스템이 그래프를 어떻게 탐색하느냐에 달려 있기 때문에 이것이 중요합니다.
훌륭한 QFS(Query-Focused Summarization, 질의 중심 요약) 파이프라인은 해당 경로를 더 쉽게 검사, 테스트 및 조정할 수 있도록 만들어야 합니다.
많은 팀이 이러한 워크플로우를 원자적 GraphRAG 파이프라인(Atomic GraphRAG pipelines)을 통해 구현하며, 여기서는 Text2Cypher, 로컬 그래프 검색(local graph search), 질의 중심 요약(QFS)과 같은 검색 패턴을 그래프 연산을 데이터에 가깝게 유지하면서 조합할 수 있습니다.
질의 중심 요약(QFS)이 과도한 경우
QFS는 강력하지만, 모든 GraphRAG 질문에 적합한 선택은 아닙니다.
사용자가 정확한 답변을 원하는 경우, Text2Cypher와 같이 쿼리 형태의 패턴(query-shaped pattern)을 사용하십시오.
예시:
- 버그로 레이블이 지정된 이슈는 몇 개인가?
- 이 사용자 ID가 존재하는가?
- 어떤 제품이 100개 이상의 리뷰를 보유하고 있는가?
사용자가 하나의 엔티티(entity) 주변의 문맥을 원하는 경우, 로컬 그래프 검색(local graph search)을 사용하십시오.
예시:
- 어떤 이슈가 이 풀 리퀘스트(pull request)와 관련이 있는가?
- 어떤 계정들이 이 의심스러운 거래와 연결되어 있는가?
- 어떤 리뷰와 제품이 이 사용자에게 가장 가까운가?
QFS는 더 광범위한 질문을 위한 것입니다.
예시:
- 부정적인 리뷰 전반에서 계속 나타나는 테마는 무엇인가?
- 이 이슈 그래프에서 사각지대는 어디인가?
- 사고 보고서 전반에서 반복적으로 나타나는 위험은 무엇인가?
- 이 연구 코퍼스(corpus)의 어떤 영역이 충분히 다뤄지지 않았는가?
선택하는 간단한 방법:
| 사용자가 ...를 필요로 한다면 | ...를 사용하세요 |
|---|---|
| 정확한 값, 개수, 표 또는 조회 (lookup) | Text2Cypher |
| ... | ... |
이는 검색 증강 생성 (Retrieval-Augmented Generation, RAG)의 더 넓은 원칙을 반영합니다. 즉, 서로 다른 검색 전략이 서로 다른 범주의 문제들을 해결한다는 것입니다. Microsoft, Stanford, Meta와 같은 조직의 연구에 따르면, 검색 품질은 모든 질의에 단일 검색 방식을 의존하기보다 검색 방법(retrieval method)을 사용자의 의도(intent)에 맞추는 것에 크게 좌우된다는 점을 일관되게 보여줍니다.
마무리 (Wrapping Up)
질의 중심 요약 (Query-Focused Summarization, QFS)은 전역적 질문 (global questions)을 위한 GraphRAG 패턴입니다.
정답이 단일 질의 결과나 단일 그래프 이웃 (graph neighborhood)에 존재하지 않을 때 이를 사용하세요. 독자가 더 큰 그래프나 코퍼스 (corpus) 전반에 걸친 집중된 종합 (synthesis)을 필요로 할 때 사용하세요.
이러한 특성 덕분에 QFS는 주제, 사각지대 (blind spots), 공백 (gaps), 반복되는 불만 사항, 그리고 광범위한 패턴에 관한 질문에 유용합니다.
다음 단계는 동일한 신호 (signal)가 여러 관련 레코드에 걸쳐 나타나는 데이터셋에서 이 패턴을 테스트하는 것입니다. 하나의 광범위한 질문으로 시작하여, 요약할 가치가 있는 그래프 슬라이스 (graph slice)를 정의하고, 관련 엔티티 (entities)를 그룹화한 다음, 최종 답변을 신뢰하기 전에 부분 요약 (partial summaries)을 검토하십시오.
더 자세한 안내를 원하시면, Memgraph의 Atomic GraphRAG에서의 질의 중심 요약 (Query-Focused Summarization in Atomic GraphRAG) 가이드를 읽거나 GraphRAG 파이프라인 문서 (GraphRAG pipeline docs)를 살펴보세요.
추가 읽을거리 (Further Reading)
- Atomic GraphRAG에서 질의 중심 요약이 작동하는 방식 (How Query-Focused Summarization Works in Atomic GraphRAG)
- Memgraph의 GraphRAG 파이프라인 (GraphRAG Pipelines in Memgraph)
- Memgraph를 활용한 GraphRAG (GraphRAG with Memgraph)
- 로컬에서 글로벌로: 질의 중심 요약에 대한 GraphRAG 접근 방식 (From Local to Global: A GraphRAG Approach to Query-Focused Summarization (Microsoft Research))
- GraphRAG GitHub 저장소 (GraphRAG GitHub Repository (Microsoft))
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기

