벡터 검색만으로 못 푸는 질문 — 지식 그래프와 온톨로지가 필요한 순간
한 줄 답변
벡터 검색 RAG는 관계 추론·전체 요약·집계형 질문에 약합니다. 지식 그래프와 온톨로지가 그 빈자리를 메우는 원리, 그리고 도입이 필요한 시점의 판단 기준을 정리했습니다.
벡터 검색 기반 RAG는 "이 문서에 뭐라고 쓰여 있나"에는 강하지만, "A와 B가 어떻게 연결되나", "전체를 요약하면", "몇 건인가" 같은 질문에는 약합니다. 문서 조각을 유사도로 찾아올 뿐 관계를 알지 못하기 때문입니다. 지식 그래프와 온톨로지가 그 빈자리를 메웁니다 — 다만 모든 조직에 필요하지는 않습니다.
대규모 언어 모델(LLM)이 우리 일상과 비즈니스에 깊숙이 파고들면서, LLM의 한계를 보완하고 최신 정보를 반영하기 위한 기술인 RAG(Retrieval Augmented Generation)는 이제 필수적인 요소가 되었습니다. 특히 벡터 검색 기반 RAG는 기업의 방대한 비공개 데이터를 LLM이 학습하고 답변하는 데 큰 역할을 했습니다. 하지만, 모든 질문 유형에 벡터 검색 RAG가 만능은 아닙니다. 다단계 관계 추론, 전체 데이터셋에 대한 심층 요약, 그리고 여러 정보를 종합해야 하는 집계형 질문과 같은 복잡한 질의에서는 기존 벡터 검색 기반 RAG의 한계가 명확하게 드러납니다.
어떤 질문에서 벡터 검색이 무너지는가
기존 RAG는 기본적으로 문서를 잘게 쪼개 벡터로 변환한 뒤, 질문 벡터와 가장 유사한 문서 조각(청크)을 찾아 LLM의 컨텍스트로 제공하는 방식입니다. 이는 특정 키워드나 문맥적 유사성이 높은 정보를 찾는 데는 탁월하지만, 여러 문서 조각에 흩어져 있는 정보들을 조합하여 추론하거나, 전체 데이터셋의 거시적인 흐름을 이해해야 하는 질문에는 어려움을 겪습니다.
Microsoft Research는 "GraphRAG" 프로젝트를 통해 이러한 문제점을 명확히 지적합니다. 그들은 "기존 RAG는 점을 연결하는 데 어려움을 겪습니다"라고 언급하며, "질문에 답하기 위해 공유 속성을 통해 서로 다른 정보 조각들을 횡단하여 새로운 합성된 통찰력을 제공해야 할 때 이러한 문제가 발생합니다." [Source 1] 또한, "방대한 데이터 컬렉션이나 단일 대용량 문서에 대한 요약된 의미 개념을 전체적으로 이해하도록 요청받을 때 기존 RAG는 성능이 매우 저조합니다." [Source 1]는 이러한 한계를 뒷받침합니다. Arxiv에 공개된 연구 [Source 2]에서도 "RAG는 전체 텍스트 코퍼스를 대상으로 하는 전역적 질문(global questions), 예를 들어 '데이터셋의 주요 테마는 무엇인가?'와 같은 질문에서는 실패합니다."라고 설명합니다.
예를 들어, "A 제품의 서비스 제공 주체가 B 회사에서 C 회사로 변경된 시점 이후에 발생한 법률 개정사항 중, D 지역의 고객에게만 영향을 미치는 조항은 무엇인가?"와 같은 질문은 단순히 키워드 매칭이나 문맥적 유사성으로는 답변하기 어렵습니다. 이는 'A 제품', 'B 회사', 'C 회사', '서비스 제공 주체 변경 시점', '법률 개정사항', 'D 지역', '고객 영향' 등 여러 엔티티와 그 관계, 그리고 시간적 순서를 모두 파악하여 추론해야 하는 다단계 추론 문제입니다.
지식 그래프와 온톨로지는 무엇이 다른가
벡터 검색 기반 RAG의 한계를 극복하기 위한 대안으로 **지식 그래프(Knowledge Graph)**와 **온톨로지(Ontology)**가 주목받고 있습니다. 지식 그래프는 세상의 지식을 '엔티티(개념)'와 '관계'로 연결하여 구조화한 데이터 모델입니다. 마치 사람의 뇌가 정보를 단순 암기가 아닌 관계 속에서 이해하는 방식과 유사합니다.
여기서 온톨로지는 이러한 지식 그래프를 구성하는 데 있어 핵심적인 역할을 합니다. W3C OWL 2 웹 온톨로지 언어 문서 [Source 3]에 따르면, 온톨로지는 "특정 도메인을 다루고 사용자 커뮤니티가 공유하는 용어의 형식화된 어휘집"이며, "다른 용어들과의 관계를 설명함으로써 용어의 정의를 명시합니다." [Source 3] 즉, 온톨로지는 특정 도메인에 존재하는 개념(클래스), 개념들의 속성(속성), 개념들 간의 관계(관계)를 정의하는 명시적인 스키마입니다.
온톨로지에서 왜 스키마를 미리 못 박아야 할까요? 그 이유는 온톨로지가 단순히 데이터를 저장하는 공간이 아니라, 데이터에 의미와 구조를 부여하고 컴퓨터가 이를 기반으로 추론할 수 있도록 하기 위함입니다. 스키마를 미리 정의함으로써 다음과 같은 이점을 얻을 수 있습니다.
- 의미의 명확성 및 일관성: '고객'이라는 용어가 누구를 의미하는지, '제품'과 '서비스'는 어떻게 다른지 등을 명확히 정의하여 데이터 해석의 모호성을 제거하고 일관된 지식 표현을 가능하게 합니다.
- 추론 가능성 향상: 미리 정의된 관계(예: 'A는 B의 상위 개념이다', 'X는 Y를 생산한다')를 통해 컴퓨터가 새로운 사실을 추론하거나 복잡한 질의에 답할 수 있는 기반을 마련합니다.
- 데이터 통합 용이성: 서로 다른 데이터 소스에서 오는 정보라도 동일한 온톨로지 스키마에 따라 통합하여 일관된 방식으로 관리하고 활용할 수 있습니다.
- 오류 방지 및 품질 관리: 스키마는 데이터 입력 시 유효성 검사 규칙으로 작동하여 잘못된 데이터나 불일치하는 정보를 사전에 걸러낼 수 있습니다.
이러한 온톨로지를 기반으로 구축된 지식 그래프는 단편적인 정보 조각들을 유기적으로 연결하여 문맥을 부여하고, LLM이 복잡한 추론을 수행할 수 있도록 돕는 강력한 도구가 됩니다.
GraphRAG는 어떻게 동작하는가
Microsoft Research의 GraphRAG는 이러한 지식 그래프의 힘을 RAG에 통합한 접근 방식입니다. 이는 기존 RAG의 한계를 극복하고 LLM의 추론 능력을 획기적으로 향상시킵니다.
GraphRAG의 핵심 과정은 다음과 같습니다. [Source 1]
-
색인(Index) 단계:
- 텍스트 단위 분할: 입력된 문서 코퍼스를 분석 가능한 TextUnit으로 나눕니다.
- 엔티티, 관계, 핵심 주장 추출: TextUnit에서 엔티티(인물, 장소, 조직 등), 엔티티 간의 관계, 그리고 핵심 주장(key claims)을 추출하여 초기 지식 그래프를 생성합니다.
- 계층적 클러스터링: 추출된 엔티티와 관계를 기반으로 그래프를 계층적으로 클러스터링합니다. 이는 관련성 높은 엔티티들을 하나의 '커뮤니티'로 묶어 거시적인 이해를 돕습니다.
- 커뮤니티 요약 생성: 각 커뮤니티와 그 구성 요소들에 대해 아래에서 위로(bottom-up) 요약을 생성하여 데이터셋의 전체적인 이해를 돕습니다.
-
질의(Query) 단계:
- 사용자의 질문이 들어오면, 지식 그래프와 커뮤니티 요약 등의 구조화된 정보가 LLM의 컨텍스트로 제공됩니다. GraphRAG는 다양한 질의 모드를 지원합니다:
- Global Search: 코퍼스 전체에 대한 총체적인 질문에 답하기 위해 커뮤니티 요약을 활용합니다. ("데이터셋의 주요 테마는 무엇인가?")
- Local Search: 특정 엔티티에 대한 질문에 답하기 위해 해당 엔티티의 이웃(neighbor)과 관련 개념을 확장하여 탐색합니다. ("특정 제품의 개발 책임자는 누구이며, 어떤 프로젝트에 참여했는가?")
- DRIFT Search: Local Search와 유사하지만, 커뮤니티 정보의 추가적인 컨텍스트를 포함하여 더 풍부한 답변을 제공합니다.
- Basic Search: 표준 벡터 검색 기반 RAG로 가장 잘 답변될 수 있는 질문에 사용됩니다.
- 사용자의 질문이 들어오면, 지식 그래프와 커뮤니티 요약 등의 구조화된 정보가 LLM의 컨텍스트로 제공됩니다. GraphRAG는 다양한 질의 모드를 지원합니다:
이러한 방식으로 GraphRAG는 단편적인 정보를 넘어서 정보 간의 복잡한 연결과 거시적인 맥락을 LLM에게 제공하여, "복잡한 정보에 대해 추론할 때 질문-답변 성능을 실질적으로 향상시킵니다." [Source 1]
우리 조직에 그래프가 필요한 시점은 언제인가
대부분의 조직에는 기존 벡터 검색 기반 RAG만으로도 충분히 강력한 AI 상담 및 지식 검색 시스템을 구축할 수 있습니다. CherryChat 또한 고도화된 RAG 기반 기술로 고객의 문서와 지식 베이스를 효과적으로 활용하여 탁월한 답변을 제공하고 있습니다. 그렇다면 언제 지식 그래프와 온톨로지 기반의 GraphRAG를 고려해야 할까요?
다음과 같은 시나리오에 해당한다면 GraphRAG 도입을 진지하게 검토할 시점입니다.
- 다단계 관계 추론이 필수적인 경우: 질문에 답하기 위해 여러 개의 독립적인 정보 조각들을 논리적으로 연결하고 추론해야 하는 경우 (예: "이 특정 정책이 적용되는 고객 유형 중, 특정 요건을 충족하는 사례는 몇 건인가?")
- 전체 데이터셋의 거시적 이해 및 요약이 필요한 경우: 단순히 특정 정보를 찾는 것을 넘어, 방대한 문서 코퍼스에서 핵심 테마, 주요 흐름, 전체적인 트렌드 등을 종합적으로 요약해야 하는 경우 (예: "지난 1년 간의 고객 상담 기록에서 가장 빈번하게 제기된 불만 사항과 그 원인은 무엇인가?")
- 복잡한 구조의 지식 베이스를 다루는 경우: 법률, 의료, 연구 개발 문서, 복잡한 시스템 매뉴얼 등 엔티티와 관계가 명확하게 정의되어 있고, 이를 통해 정밀한 추론이 필요한 도메인 (예: "이 약물 상호작용은 어떤 기전을 통해 발생하며, 유사한 부작용을 일으키는 다른 약물은 무엇인가?")
- 정보의 일관성과 정확성이 극도로 중요한 경우: 잘못된 추론이나 불완전한 요약이 심각한 결과를 초래할 수 있는 환경 (예: 규제 준수, 금융 리스크 분석).
- 새로운 지식을 발견하거나 통찰력을 얻고자 하는 경우: 기존에는 연결되지 않았던 정보들 간의 숨겨진 관계를 발굴하여 새로운 비즈니스 통찰력을 얻고자 할 때.
이러한 조건에 해당하지 않는다면, 기존 벡터 검색 RAG는 여전히 비용 효율적이고 강력한 솔루션입니다. GraphRAG는 지식 그래프 구축과 온톨로지 정의에 추가적인 노력이 필요하기 때문에, 그 투자 대비 효과를 신중하게 고려해야 합니다.
CherryChat Insight
- 복잡한 비즈니스 지식의 심층 이해: CherryChat은 이미 강력한 RAG 기반으로 다양한 기업의 내부 문서를 학습합니다. GraphRAG는 B2B 소프트웨어의 복잡한 기능 설명, 병원의 세분화된 진료 프로토콜, 법률/회계 기업의 상호 참조가 많은 규정 등 고도로 구조화되고 관계 추론이 필요한 비즈니스 지식을 더욱 깊이 이해하고 답변의 정확도를 극대화하는 데 기여할 수 있습니다.
- 전사적 지식 기반의 통찰력 확보: 멀티 페르소나/다중 화자 기능을 통해 각 부서별 AI를 운영하는 CherryChat 환경에서, GraphRAG는 단순히 각 부서의 지식을 개별적으로 답변하는 것을 넘어, 부서 간 지식의 연결 관계를 파악하고 전사적인 관점에서의 통찰력 있는 요약이나 복합적인 질문에 대한 답변을 제공하여 기업의 의사 결정에 도움을 줄 수 있습니다.
- 능동적 지식 관리 및 확장: 온톨로지를 통해 지식 스키마를 명확히 정의함으로써, CherryChat은 AI가 학습하는 지식의 품질과 일관성을 더욱 높일 수 있습니다. 이는 새로운 정보가 추가되거나 기존 정보가 변경될 때 지식 그래프를 효율적으로 업데이트하고 관리할 수 있는 기반을 제공하여, 지속적으로 성장하는 기업의 지식 베이스를 효과적으로 지원합니다.
참고자료
- [Source 1] Microsoft GraphRAG: https://microsoft.github.io/graphrag/
- [Source 2] From Local to Global: A Graph RAG Approach to Query-Focused Summarization: https://arxiv.org/abs/2404.16130
- [Source 3] OWL 2 Web Ontology Language Document Overview (Second Edition): https://www.w3.org/TR/owl2-overview/
다음 단계
문서 기반 응대부터 시작해 보고 싶다면, CherryChat 14일 무료 체험으로 가진 문서를 그대로 올려 첫 답변까지 확인해 볼 수 있습니다.