Gemini :
네, RAG(Retrieval-Augmented Generation)에서 벡터 데이터베이스(Vector Database) 의 사용은 2020년 관련 논문이 처음 발표되면서부터 그 개념적인 토대가 마련되었습니다.
RAG는 기본적으로 검색(Retrieval)생성(Generation) 을 결합하는 방식인데, 이 검색 단계에서 벡터 임베딩과 이를 효율적으로 저장하고 검색하는 벡터 데이터베이스가 필수적인 역할을 하게 됩니다.
💡 RAG와 벡터 DB의 시작점
RAG에서 벡터 DB가 필요하다는 아이디어는 다음의 주요 논문과 개념에서 출발했습니다.

  1. RAG의 탄생: Lewis et al. (2020) 논문
  • 논문 제목: "Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks" (지식 집약적 자연어 처리 작업을 위한 검색 증강 생성)
  • 핵심: 이 논문에서 RAG라는 용어와 프레임워크가 처음 제시되었습니다.
  • Retriever의 역할: 논문에서 제안된 RAG 모델은 Retriever(검색기)Generator(생성기) 로 구성됩니다. Retriever는 위키피디아와 같은 대규모 데이터셋에서 쿼리와 관련된 문서(latent documents) 를 검색합니다.
  • 벡터 인덱스 사용: 이 초기 RAG 모델은 문서를 검색하기 위해 데이터셋에 벡터 인덱스(Vector Index) 를 사용하여 사전 학습된 검색기(pretrained retriever) 가 문서를 가져올 수 있도록 했습니다.
  • 결론: RAG의 핵심 단계인 '검색' 이 쿼리 및 문서의 벡터 표현을 기반으로 유사성을 계산하여 이루어지기 때문에, 효율적인 검색을 위한 벡터 저장소(Vector Store) 또는 벡터 인덱스의 개념이 필수적으로 내포되었습니다.
  1. 벡터 임베딩과 유사도 검색
    벡터 데이터베이스가 RAG의 필수 요소가 된 근본적인 이유는 다음과 같습니다.
  • 임베딩(Embedding): RAG 시스템에서 외부 지식(문서, 텍스트)과 사용자의 쿼리(질문)는 모두 벡터(Vector) 라는 수학적 표현으로 변환됩니다. 이 벡터는 텍스트의 의미를 고차원 공간에 밀집된 숫자의 배열로 나타냅니다.
  • 유사도 검색(Similarity Search): 벡터 공간에서 쿼리 벡터와 가장 가까운 거리에 있는 문서 벡터를 찾는 것이 곧 의미적으로 가장 유사한(Relevant) 문서를 찾는 것을 의미합니다.
  • 벡터 DB의 역할: 벡터 데이터베이스는 이러한 수많은 문서 벡터들을 저장하고, 주어진 쿼리 벡터에 대해 가장 유사한 벡터를 빠르고 효율적으로 검색하기 위해 특화된 데이터베이스입니다. 따라서 RAG의 검색 성능을 극대화하는 데 필수적입니다.
    요약: 벡터 DB가 필요한 이유
    LLM이 학습하지 않은 최신/도메인 특정 지식에 접근하게 하려면, 단순히 키워드 매칭(전통적인 검색)이 아닌 의미적 유사성을 기반으로 정보를 찾아야 합니다. 벡터 DB는 이 의미적 유사성 기반 검색을 효율적으로 수행하기 위해 RAG 프레임워크에 자연스럽게 통합된 핵심 기술입니다.