Vector Graph RAG: 그래프 데이터베이스 없이 멀티 홉 RAG

발행: (2026년 4월 3일 PM 04:54 GMT+9)
4 분 소요
원문: Dev.to

Source: Dev.to

Standard RAG vs. Multi‑Hop Reasoning

Standard RAG는 답변이 단일 청크에 없을 때 무너집니다.
“1차 치료 당뇨병 약물의 부작용은 무엇을 주의해야 하나요?” 라고 물으면 시스템은 먼저 메트포르민이 1차 치료 약물이라는 것을 인식하고, 그 다음 메트포르민의 부작용을 찾아야 합니다. 질의에는 메트포르민이 언급되지 않으며, 이는 시스템이 스스로 발견해야 하는 연결 엔터티입니다. 순수 벡터 검색만으로는 이를 할 수 없습니다.

업계에서는 지식 그래프 + 그래프 데이터베이스를 답으로 제시했습니다. 이것은 작동하지만 Neo4j(또는 유사 제품)를 배포하고, 그래프 쿼리 언어를 배우며, 두 개의 별도 저장 시스템을 운영해야 함을 의미합니다. 본질적으로 하나의 기능—패시지 간 엔터티 체인을 따라가는 것—에 대한 복잡성이 두 배가 되는 것입니다.

Vector Graph RAG

나는 Vector Graph RAG를 구축하여 이러한 오버헤드 없이 멀티‑홉 추론을 가능하게 했습니다. 전체 그래프는 Milvus 안에 존재합니다—엔터티, 관계, 그리고 패시지는 ID 교차 참조가 포함된 세 개의 컬렉션으로 저장됩니다. 그래프 데이터베이스도 없고, Cypher 쿼리도 없으며, 벡터 검색과 메타데이터 조회만 사용합니다.

Core Insight

다음과 같은 지식‑그래프 트리플

(metformin, is_first_line_drug_for, type_2_diabetes)

은 단순히 텍스트일 뿐입니다. 텍스트는 벡터로 임베딩될 수 있습니다. 그렇다면 전체 그래프 구조를 벡터 데이터베이스에 저장하지 않을 이유가 무엇일까요?

Data Model (Three Milvus Collections)

CollectionWhat it storesKey fields
Entities중복 제거된 엔터티 이름, 의미 검색을 위한 임베딩entity_id, embedding, relation_ids
Relations트리플 기반 관계 (subject, predicate, object)relation_id, subject_id, object_id, passage_ids, embedding
Passages원본 문서 청크passage_id, text, entity_ids, relation_ids

이 컬렉션들은 ID 참조를 통해 논리적인 그래프를 형성합니다. “그래프 탐색”은 Milvus에서 ID 기반 메타데이터 쿼리의 연속이 되며, 별도의 그래프 쿼리 언어가 필요하지 않습니다. 추가 조회는 홉당 2‑3개의 기본키 쿼리만 추가합니다 (≈).

0 조회
Back to Blog

관련 글

더 보기 »

AI 에이전트와 인간을 위한 Jira

우선, 걱정하지 마세요. 여기서 저는 Moltbook을 새로 만든 것이 아닙니다. 제가 아는 모든 스타트업은 도구가 너무 많습니다—어디엔가 보드 하나, Notion 문서 하나, Slack...