RAG - 4. 백터DB

문건희·2025년 2월 25일

RAG

목록 보기
3/12

4. 벡터DB(Vector Database)에서 추가로 고려해야 할 요인들

벡터 데이터베이스(Vector Database)는 RAG 시스템에서 효율적인 검색과 성능을 좌우하는 중요한 요소입니다.
벡터DB의 선택, 인덱싱 방식, 유사도 측정 방식 등에 따라 검색 속도와 정확도가 달라집니다.


✅ 추가 요인 및 설명

1) 벡터DB 종류 및 선택 기준

설명:

  • 벡터 검색을 지원하는 데이터베이스는 다양한 종류가 있으며, 각각 장단점이 다름.
  • 클라우드 기반 vs 로컬 설치형에 따라 성능과 유지보수 비용이 달라짐.

주요 벡터DB 비교:

벡터DB장점단점
FAISS빠른 검색 속도, 로컬 환경에서 사용 가능실시간 업데이트 어려움
Pinecone클라우드 기반, 자동 확장사용 비용 발생
Weaviate메타데이터 검색 지원, 확장성 뛰어남설정이 다소 복잡
Milvus오픈소스, 대규모 데이터 지원설정이 다소 복잡
ChromaDB간편한 사용법, RAG와 호환성 높음기능이 제한적일 수 있음

2) 인덱싱 방식 (Indexing Method)

설명:

  • 벡터DB에서 검색 속도를 높이기 위해 인덱싱 방식을 선택해야 함.
  • Flat, HNSW, IVF, PQ 등의 방식이 있으며, 각기 다른 성능을 보임.

주요 인덱싱 방식 비교:

인덱싱 방식장점단점
Flat (Brute Force)가장 정확한 검색속도가 느림
HNSW (Hierarchical Navigable Small World)빠른 검색 속도, 높은 정확도메모리 사용량 많음
IVF (Inverted File Index)대량 데이터에서 빠름정확도 손실 가능
PQ (Product Quantization)저장 공간 절약정확도가 낮음

3) 유사도 측정 방식 (Similarity Metric)

설명:

  • 벡터 간의 유사도를 측정하는 방식에 따라 검색 결과가 달라질 수 있음.
  • 주요 방법: Cosine Similarity, Euclidean Distance, Dot Product

주요 유사도 측정 방법 비교:

유사도 측정 방식특징추천 상황
Cosine Similarity벡터 간의 각도를 비교일반적인 문서 검색
Euclidean Distance벡터 간의 거리 비교이미지, 비전 관련 검색
Dot Product빠른 계산 가능추천 시스템, 대규모 검색

4) 벡터 차원 수 최적화 (Vector Dimensionality)

설명:

  • 벡터 차원이 높으면 정보 손실이 적지만 검색 속도가 느려지고 메모리 사용량이 증가함.
  • 차원이 낮으면 속도는 빠르지만 검색 정확도가 떨어질 수 있음.

예시:

  • 일반적인 문서 검색: 384 ~ 768 차원
  • 고정밀 검색: 1024 차원 이상
  • 경량 시스템: 256 차원 이하

설명:

  • 벡터 검색과 키워드 검색을 함께 활용하면 검색 성능이 크게 향상됨.
  • BM25(키워드 기반 검색) + 벡터 검색을 조합하면 빠르고 정확한 검색 가능.

예시:
1. 사용자가 "벡터DB 성능 비교" 검색
2. BM25 검색 → "FAISS와 Pinecone 성능 비교"` 문서 추천
3. 벡터 검색 → "VectorDB 최적화 방법"` 문서 추천
4. 두 검색 결과를 조합하여 정확한 정보 제공


6) 실시간 업데이트와 CRUD 성능

설명:

  • 일부 벡터DB는 실시간 업데이트가 어렵기 때문에 CRUD(Create, Read, Update, Delete) 성능을 고려해야 함.
  • FAISS는 실시간 업데이트가 어렵지만, Pinecone, Weaviate, Milvus는 지원함.

예시:

  • 실시간으로 벡터를 추가, 삭제해야 한다면 Pinecone, Weaviate
  • 검색 속도가 중요하고 업데이트가 적다면 FAISS

7) Sharding & Scaling (샤딩 및 확장성)

설명:

  • 벡터DB는 대량의 데이터를 처리하기 위해 샤딩과 분산 처리가 필요함.
  • Pinecone, Weaviate, Milvus는 클러스터 확장이 가능하지만, FAISS는 단일 노드에서 실행됨.

예시:

  • 대량의 데이터를 처리하려면 Milvus 또는 Weaviate
  • 단일 서버에서 빠른 검색을 원하면 FAISS

8) Filtering 및 Metadata 활용

설명:

  • 검색 시 벡터의 메타데이터(날짜, 카테고리, 출처)를 활용하면 더욱 정밀한 검색 가능.
  • Weaviate, Pinecone은 메타데이터 기반 검색을 지원함.

예시:

  • 특정 날짜 이후의 문서만 검색하려면 "date > 2024-01-01" 필터 적용 가능.

📌 정리

추가 요인설명예시
벡터DB 선택FAISS, Pinecone, Weaviate, Milvus 비교Pinecone = 클라우드 기반, FAISS = 로컬
인덱싱 방식검색 속도와 정확도에 영향HNSW = 빠름, IVF = 대량 데이터
유사도 측정Cosine, Euclidean, Dot Product 비교문서 검색 = Cosine, 이미지 검색 = Euclidean
차원 수 최적화차원이 높을수록 정확하지만 속도 저하일반 문서 = 512차원, 고정밀 = 1024차원
Hybrid SearchBM25 + 벡터 검색 조합키워드 검색 + 의미 기반 검색
실시간 업데이트CRUD 성능 고려실시간 검색 필요 = Pinecone, Weaviate
Sharding & Scaling대량 데이터 처리 위한 확장성클러스터 지원 = Milvus, Weaviate
Filtering 및 Metadata추가적인 메타데이터 활용날짜, 카테고리 필터링

0개의 댓글