본문 바로가기

인공지능

Hybrid Graph RAG와 LadybugDB로 살펴보는 벡터와 그래프의 결합

728x90
반응형
728x170

이 글은 기존 벡터 기반 RAG(Retrieval-Augmented Generation)의 한계를 짚고, 그래프 구조를 결합한 Hybrid Graph RAG가 어떻게 그 문제를 해결하는지 설명합니다. 특히 벡터 검색, 그래프 질의, 그래프 알고리즘, 키워드 검색을 하나의 데이터베이스에서 통합 제공하는 **LadybugDB**를 중심으로, 아키텍처 구성 방식과 실제 구현 흐름, 그리고 어떤 상황에서 이 접근이 효과적인지까지 정리합니다.

반응형

Flat RAG의 구조적 한계

기존의 표준 RAG는 문서를 조각으로 나눈 뒤 임베딩 벡터로 변환하고, 벡터 유사도 기반으로 상위 결과를 검색하는 방식입니다. 단순한 사실 조회에는 효과적이지만, 다음과 같은 질문에서는 한계를 드러냅니다.

  • 여러 문서를 연결해야 답이 나오는 질문
  • 원인과 결과처럼 인과 관계를 이해해야 하는 질문
  • “이 데이터셋의 주요 주제는 무엇인가?”와 같은 전체 맥락 질문

문제의 핵심은 벡터 유사도가 평면적이라는 점입니다. 각 문서 조각은 서로 연결되지 않은 고립된 섬처럼 취급되며, 문서 간 관계나 구조를 표현할 방법이 없습니다.


Graph RAG의 접근 방식

Graph RAG는 벡터 검색 위에 지식 그래프를 추가합니다.

  • 개체(Entity)는 노드
  • 개체 간 관계는 엣지
  • 검색은 단순한 거리 계산이 아니라 그래프 탐색

이를 통해 단편적인 정보 검색이 아니라, 의미의 흐름을 따라가며 문맥을 확장할 수 있습니다. 다만 기존 Graph RAG 구현은 벡터 DB, 그래프 DB, 문서 저장소, 오케스트레이션 계층을 각각 따로 붙이는 경우가 많아 운영 복잡도가 높았습니다.


LadybugDB: 하나의 DB에서 네 가지 검색 방식

LadybugDB는 단일 .lbug 파일로 동작하는 임베디드 속성 그래프 데이터베이스입니다. 별도의 서버나 컨테이너 없이 다음 네 가지 기능을 한 번에 제공합니다.

  1. HNSW 벡터 인덱스
    의미 기반 유사도 검색 (Cosine, L2)
  2. Cypher 그래프 질의
    패턴 매칭, 다단계 탐색, 최단 경로
  3. 그래프 알고리즘
    PageRank, Louvain 커뮤니티 탐지, 연결 컴포넌트
  4. 전문 검색(BM25)
    키워드 기반 정확 매칭

이 네 가지는 Hybrid Graph RAG의 핵심 단계와 정확히 대응됩니다.

  • 의미적 진입: 벡터 검색
  • 구조적 확장: 그래프 탐색
  • 중요도 판단: 중심성 알고리즘
  • 범위 제한: 커뮤니티 클러스터링

모든 과정이 하나의 DB, 하나의 쿼리 언어, 하나의 트랜잭션 경계에서 처리됩니다.


Hybrid Graph RAG 아키텍처 5단계

1. 문서 → 지식 그래프 적재

문서를 청크로 나누고, 개체와 관계를 추출해 그래프에 저장합니다.
청크, 개체, 관계가 모두 하나의 그래프에 공존합니다.

2. 벡터 인덱스 구축

청크와 개체 각각에 대해 HNSW 기반 벡터 인덱스를 생성해 의미 검색을 가능하게 합니다.

3. 그래프 알고리즘 실행

  • PageRank: 어떤 개체가 구조적으로 중요한지 점수화
  • Louvain: 밀집된 개체 집합을 커뮤니티로 분류

이 결과는 이후 검색 품질을 크게 좌우합니다.

4. 하이브리드 검색과 RRF 결합

벡터 검색 결과와 그래프 탐색 결과를 병렬로 수행한 뒤,
Reciprocal Rank Fusion(RRF)으로 순위를 통합합니다.

  • 벡터와 그래프 양쪽에서 모두 높은 순위를 받은 항목이 최상위로 올라옵니다.

5. 그래프 인식 기반 컨텍스트 구성

상위 결과를 시작점으로 동일 커뮤니티 내에서 다단계 탐색을 수행하고,
인과 관계(causes, leads_to, enables)만 따라가며 의미 있는 경로를 구성합니다.


그래프 알고리즘이 RAG에 중요한 이유

PageRank: 중요도 필터

모든 개체가 동일한 가치를 갖지는 않습니다.
PageRank는 여러 중요한 개체와 연결된 노드에 높은 점수를 부여해,
사소한 정보보다 핵심 개체가 선택되도록 돕습니다.

Louvain: 검색 범위 축소

커뮤니티 탐지는 그래프를 주제 단위로 나눕니다.
질문이 속한 커뮤니티만 탐색하면 노이즈를 크게 줄일 수 있고,
전역 질문의 경우 커뮤니티별 요약도 가능합니다.

연결 컴포넌트: 품질 점검

그래프와 완전히 단절된 노드는 벡터 검색만 사용해야 합니다.
고립된 컴포넌트가 많다면, 개체 추출이나 관계 정의 과정의 문제를 의심할 수 있습니다.


Python으로 구현하는 Hybrid Graph RAG

LadybugDB와 문장 임베딩 모델만 있으면 외부 서비스 없이 구현할 수 있습니다.

  • 문서 적재
  • 그래프 점수 계산 (1회 실행)
  • 질문 시 벡터 + 그래프 결합 검색
  • LLM 입력용 컨텍스트 생성

전체 구현은 300줄 이내의 Python 코드로 구성됩니다.


성능 비교: Flat RAG vs Hybrid Graph RAG

500개 기술 문서를 대상으로 한 벤치마크 결과는 다음과 같습니다.

  • 문맥 정확도: 0.68 → 0.82
  • 답변 완성도: 0.61 → 0.79
  • 다단계 질문: 0.34 → 0.71
  • 전역 질문: 0.22 → 0.65

특히 여러 문서를 연결해야 하는 질문에서 큰 개선이 나타났습니다.


언제 Hybrid Graph RAG를 써야 할까

적합한 경우

  • 문서 간 관계가 풍부한 경우
  • “왜”, “어떻게”와 같은 분석형 질문이 많은 경우
  • 문서 수가 늘어날수록 검색 품질이 좋아져야 하는 경우

벡터 RAG로 충분한 경우

  • 문서 수가 적고
  • 단순 사실 조회가 주 사용 시나리오이며
  • 지연 시간이 매우 중요한 경우

728x90

Hybrid Graph RAG는 벡터 검색의 한계를 그래프 구조로 보완하는 접근입니다. LadybugDB는 이 과정을 여러 시스템으로 나누지 않고, 하나의 데이터베이스 안에서 자연스럽게 통합합니다.

문서가 늘어날수록 지식의 밀도가 높아지고, 질문이 복잡해질수록 강점을 발휘하는 구조입니다. 앞으로 RAG 시스템이 단순 검색을 넘어, 이해와 추론 중심으로 진화하는 흐름 속에서 의미 있는 선택지가 될 수 있습니다.

300x250

https://volodymyrpavlyshyn.medium.com/hybrid-graph-rag-with-ladybugdb-when-vectors-meet-graphs-aa7ddec45632

 

Hybrid Graph RAG with LadybugDB: When Vectors Meet Graphs

The Problem with Flat RAG

volodymyrpavlyshyn.medium.com

728x90
반응형
그리드형