개요
- 벡터(임베딩)를 저장하고 유사도 기반 검색을 수행하는 데이터베이스
- RAG 파이프라인의 핵심 구성 요소
- 기존 RDBMS·NoSQL로는 고차원 벡터의 효율적 검색이 어려움
- 고차원 벡터의 ANN(Approximate Nearest Neighbor) 검색에 특화
작동 원리
임베딩 (Embedding)
- 텍스트·이미지 등을 고차원 수치 벡터로 변환
- 의미가 유사한 데이터는 벡터 공간에서 가깝게 위치
- 차원: 임베딩 모델에 따라 768~3072 차원 사용
유사도 검색 (ANN, Approximate Nearest Neighbor)
- 코사인 유사도, 유클리드 거리, 내적으로 유사한 벡터 검색
- 정확한 최근접(Exact NN) 대신 근사값으로 속도-정확도 트레이드오프
- HNSW (Hierarchical Navigable Small World): 가장 많이 사용되는 ANN 알고리즘
- IVF (Inverted File Index): 클러스터링 기반 검색
주요 제품 비교
| 제품 |
유형 |
특징 |
| Pinecone |
완전 관리형 (SaaS) |
빠른 시작, 엔터프라이즈 |
| Chroma |
오픈소스 |
로컬·임베디드, 개발 친화적 |
| Weaviate |
오픈소스/클라우드 |
하이브리드 검색, 그래프 |
| Qdrant |
오픈소스/클라우드 |
고성능, Rust 기반 |
| Milvus |
오픈소스 |
대규모, 클라우드 네이티브 |
| pgvector |
PostgreSQL 확장 |
기존 DB에 벡터 기능 추가 |
| Redis |
기존 DB 확장 |
빠른 인메모리 벡터 검색 |
하이브리드 검색 (Hybrid Search)
- 벡터 검색 + 키워드 검색(BM25)을 결합하여 검색 품질 향상
- RRF (Reciprocal Rank Fusion): 두 결과를 융합하는 알고리즘
- 의미론적 유사도 + 키워드 정확 매칭이 모두 필요한 경우 활용
선택 가이드
- 프로토타입·학습용: Chroma (로컬, 설치 간단)
- 프로덕션 SaaS: Pinecone (간편), Weaviate/Qdrant (오픈소스)
- 기존 PostgreSQL 사용 중: pgvector
- 대규모 (수십억 벡터): Milvus
관련 포스트