DBMS/AgensSQL

그래프 RAG: 복합 검색이 가능한 개선된 RAG 시스템

(주)비트나인 2024. 4. 22. 10:30

그래프 RAG

 

개선된 RAG 시스템

RAG는 정보 검색과 생성형 AI 기술을 결합하여 사용자 데이터를 손쉽게 생성형 AI 모델에 반영하고, 이를 통해 생성 콘텐츠의 품질을 개선할 수 있는 혁신적인 솔루션입니다. RAG 시스템은 생성형 AI의 활용성을 크게 높였지만, 종종 복잡한 질문에 대해 충분한 맥락을 제공하지 못하는 경우가 있습니다. 이러한 한계를 극복하기 위해 개선된(advanced) RAG 시스템이 다양하게 등장하고 있습니다. RAG를 개선할 수 있는 영역들 다음과 같습니다. 

 

데이터 인덱싱(indexing): 검색 모델에 사용되는 데이터는, 모델이 이해하기 용이한 방식으로 변환되고, 인덱싱됩니다. 데이터 변환 단계에서는 임베딩 모델 개선, 데이터 분할(chunking) 방법 개선을 통한 개선이 가능합니다. 또한, 검색의 속도나 정확도를 높일 수 있는 특수한 인덱스를 사용할 수 있습니다.

 

데이터 검색(retrieval): 외부 저장소의 데이터베이스를 검색하는 알고리즘을 고도화할 수 있습니다. 중요한 데이터가 답변 생성에 더 잘 반영되도록 검색 데이터 순위 결정(ranking) 프로세스를 고도화할 수 있고, 데이터 검색을 위한 유사도 검색에 사용되는 알고리즘을 상황에 따라 변경할 수 있습니다.

 

데이터 저장소(databases): 작업에 맞는 데이터베이스를 RAG 시스템의 외부 저장소로 이용할 수 있습니다. RAG 시스템의 외부 저장소로는 일반적으로 벡터 DB가 이용되지만, 벡터 DB는 다양한 데이터 유형의 검색에 성능을 보장하지 못할 수 있습니다. 벡터 DB 외에도, 관계형 DB, 그래프 DB 등 다양한 형태의 데이터베이스도 RAG 시스템의 외부 저장소로 이용할 수 있습니다.

 

복합 검색

복합 검색(hybrid search)을 이용한 RAG 시스템은, 데이터 검색 측면에서의 개선과 데이터 저장소 측면의 개선을 함께 이루어진다고 볼 수 있습니다. 복합 검색에서는 복수의 데이터 저장소를 이용하여 검색을 수행하여, 생성형 AI 모델에 더 풍부한 맥락(context)을 제공하며 단일 저장소를 이용했을 때 포착하기 어려운 정보에 대한 검색에 더 강력합니다. 

 

복합 검색은 다양한 형태로 구성할 수 있는데, 가장 많이 이용되는 구성은 전문 검색(full-text search) 또는 키워드 검색(keyword search)과 벡터 DB 기반의 벡터 검색을 결합한 복합 검색입니다. 이 경우, 전문 검색은 보통 관계형 DB를 기반으로 이루어지므로 외부 저장소 측면에서는 관계형 DB와 벡터 DB를 결합했다고 볼 수 있습니다.

 

키워드 검색과 벡터 검색
<그림 1. 키워드 검색과 벡터 검색을 이용한 복합 검색의 예(출처= Medium 포스트 ).>

 

최근에는, 그래프 DB와 벡터 DB를 결합한 복합 검색 시스템이 제안되어 주목을 받고 있습니다. 그래프 DB는 어떤 객체(entity) 또는 노드(node)와 객체 간 관계 또는 엣지(edge)를 기반으로 데이터를 저장하며, 객체 간 관계는 보통 데이터 간 의미 정보를 이용해 구성되므로, 객체에 명시되지 않은 정보라도 그 연결 정보를 기반으로 의미 탐색(semantic search)을 수행할 수 있습니다.  그래프 DB를 활용한 RAG 시스템을 그래프 RAG라 하며, 이는 RAG 시스템의 한 분야로 자리 잡아가고 있습니다.

 

그래프 검색과 벡터 검색
<그림 2. 그래프 검색과 벡터 검색을 이용한 복합 검색의 예(출처= LangChain Blog ).>

 

그래프 RAG가 주목을 받게 되면서, 그래프 DB나 LangChain이나 LlamIndex와 같은 잘 알려진 AI 개발 프레임워크에서도 RAG 시스템 전용 저장소로 채택되고 있습니다. LangChain에서는 ‘Graphs’ 라는 카테고리로 각종 그래프 DB를 RAG 시스템의 외부 저장소로 이용할 수 있으며, LlamaIndex에서도 ‘Graph Store’라는 카테고리로 그래프 DB를 RAG 시스템에 이용할 수 있도록 제공하고 있습니다.

 

AgensSQL GenAI의 복합 검색

일반적으로 복합 검색을 구성하기 위해서는 기존과 다른 형태의 DB 인스턴스를 설치하고 통합하는 과정이 필요합니다. 하지만, AgensSQL GenAI Edition은 PostgreSQL 생태계의 확장 기능(extension)을 바탕으로 다양한 종류의 DB를 복합 검색 시스템으로 구성할 수 있습니다. 여기에는 기본적으로 PostgreSQL이 지원하는 관계형 DB, PGVector나 Lantern 확장 기능 기반의 벡터 DB, AGE 확장 기능 기반의 그래프 DB 등이 있습니다. 특히, 비트나인의 그래프 기술력이 집약된 그래프 DB인 AGE는 유연한 스키마 구조와 간편한 데이터 조회 기능을 제공하여, 효과적인 의미 기반 정보 검색이 가능합니다. 

 

AgensSQL GenAI Edition은 복합 검색 시스템을 최소한의 프로세스로 구축할 수 있도록 기능을 통합한 엔진을 제공합니다. 여기에는 데이터 전처리 및 인덱싱 엔진(data processing & indexing engine)과 검색 엔진(retrieval engine), 그리고 생성 엔진(generation engine)이 있으며, 세 종류의 엔진은 유기적으로 작동하여 RAG 시스템을 작동합니다. AgensSQL GenAI Edition을 이용한 RAG 시스템을 구축한 예는 다음과 같습니다.

 

AgensSQL GenAI Edition 구성 프로세스
<그림 3. AgensSQL Gen AI Edition의 복합 검색 구성 프로세스.>

 

결론

본 포스트에서는, 이전 포스트에서 소개했던 RAG 시스템이 어떤 형태로 개선되어 가고 있지 살펴보고, 그중 복합 검색을 이용한 개선 방법에 대해 더 자세히 알아보았습니다. 그리고, AgensSQL Gen AI Edition이 어떻게 복합 검색을 효과적으로 구축할 수 있는 지도 비교해 보았습니다. 생성형 AI 도입에는, 기업의 복잡한 데이터를 모델에게 잘 이해시키기 위한 과정이 필수적입니다. AgensSQL Gen AI Edition의 복합 검색 기능은, 이러한 기대와 요구에 대한 합리적인 해결책이 될 수 있습니다.

 

 

검색 증강 생성(RAG)이란? 궁금하다면 이전 포스트를 확인하세요!

 

검색 증강 생성(RAG)과 데이터베이스 기반 생성형 AI에 대한 이해

생성형 AI 활용의 한계점 최근 몇 년 간 ChatGPT, Bard, LLaMA 등 거대 언어 모델(Large Language Models, LLM) 기반 생성형 AI가 대중화되었고, 많은 기업들은 생성형 AI를 비즈니스에 도입하여 생산성을 높이려

bitnine.tistory.com

 

 

참고

1) Introducing hybrid search and re-rank to improve the retrieval accuracy of the RAG system

2) Enhancing RAG-based application accuracy by constructing and leveraging knowledge graph

3) langchain_community.graphs

4) Using Graph Stores

 

 


비트나인의 생성형 AI 솔루션, AgensSQL GenAI Edition에 대해 궁금하시다면?

▶제품 소개서 보기

 

비트나인의 콘텐츠를 계속 받아보고 싶으시다면?

▶뉴스레터 구독하기

 

제품 및 기술문의

070-4800-3517  |   agens@bitnine.net