RAG 시스템의 두 핵심 부품이 「임베딩 모델」과 「벡터 데이터베이스」입니다.
임베딩 모델은 「텍스트를 의미를 담은 벡터로 변환」하는 모델이고, 벡터 데이터베이스는 「수많은 벡터 중 주어진 벡터와 가장 비슷한 것을 빠르게 찾아 주는 저장소」입니다.
임베딩 모델은 LLM과 다른 종류입니다.
LLM이 「텍스트를 입력 받아 텍스트를 출력」하는 데 비해, 임베딩 모델은 「텍스트를 입력 받아 1024~3072차원의 벡터를 출력」합니다.
비슷한 의미의 두 문장은 비슷한 벡터를, 다른 의미는 멀리 떨어진 벡터를 가지도록 학습됐습니다.
OpenAI의 text-embedding-3-large, BGE, E5, KoSimCSE(한국어) 같은 모델이 자주 쓰입니다.
같은 「잠금장치」 의미를 가진 「lock」, 「자물쇠」, 「락」 같은 단어가 모두 비슷한 벡터로 변환되어, 외국어와 동의어 검색이 자연스럽게 됩니다.
벡터 데이터베이스는 「수백만~수십억 개의 벡터 중에서 가장 비슷한 K개를 빠르게 찾는」 데 특화된 저장소입니다.
단순히 모든 벡터와 거리를 비교하면 너무 느리므로, HNSW·IVF 같은 영리한 인덱스 구조를 씁니다.
Pinecone(매니지드), Weaviate, Qdrant, Chroma, FAISS(라이브러리) 등이 대표적입니다.
비유하자면 임베딩은 「책의 의미를 위치 좌표로 옮기는 일」이고, 벡터 DB는 「그 좌표들로 정리된 거대 도서관에서 가장 가까운 책 10권을 0.01초 안에 찾는 검색대」와 같습니다.
두 부품의 결합으로 의미 기반 검색이 가능해집니다.
한 줄 요약
임베딩 모델은 텍스트를 의미 벡터로 변환하고, 벡터 DB는 그 벡터들 중 비슷한 것을 빠르게 찾습니다.
두 부품의 결합이 RAG와 의미 검색의 토대입니다.
더 알아볼 것
- HNSW — 가장 자주 쓰이는 벡터 인덱스
- 임베딩 차원의 트레이드오프
- 청킹 전략 — 긴 문서를 어떻게 나눌까