1. Vector DB

벡터 데이터베이스(Vector Database)는 벡터 형식으로 저장된 데이터(고차원 임베딩 데이터)를 관리하고, 유사도 기반 검색 및 작업을 최적화하도록 설계된 데이터베이스이다.

1-1. Vector DB의 특징

  • 벡터 임베딩 저장: 데이터를 벡터로 변환해 저장
  • 유사도 검색 최적화: 입력 벡터와 가장 유사한 벡터를 빠르게 검색
    (완전한 일치가 아닌 가장 유사한 것을 찾는 게 목적)
  • 확장성: 대규모 벡터 데이터를 처리할 수 있는 구조 제공
  • 비정형 데이터 검색 가능: 벡터화를 통해 자연어, 사진, 동영상 등 검색이 가능함

1-2. Vector DB vs RDB 차이점

구분벡터DBRDB (관계형 DB)
데이터 구조고차원 벡터 (수치 데이터)테이블 (행 & 열 구조)
검색 방식유사도 검색 (최근접 이웃, ANN)정확한 검색 (SQL 기반 검색)
주요 용도- RAG (검색 증강 생성)
- 추천 시스템
- 이미지/음성/텍스트 유사 검색
- 전통적인 CRUD 시스템
- 금융, ERP, 재고 관리, 사용자 데이터 관리
데이터 저장 형식(ID, 벡터, 메타데이터)(ID, 속성 값, 관계)
검색 속도대규모 데이터에서도 빠름 (ANN 사용)복잡한 조인 연산 시 속도 저하
확장성고차원 데이터에 최적화정형 데이터 저장에 최적화
예제 DB 엔진FAISS, Pinecone, Weaviate, ChromaDBMySQL, PostgreSQL, Oracle

1-3. Vector DB vs RDB 검색 방식 비교

(1) 벡터DB 검색 방식 (유사도 검색)

  • 쿼리: "이와 비슷한 문서를 찾아줘"
  • 검색 알고리즘: 최근접 이웃 검색(ANN, Approximate Nearest Neighbor)
  • 결과: 가장 유사한 벡터를 가진 데이터 반환
# 예제 (FAISS)
query_vector = model.encode("고대 유물에 대해 알고 싶어").astype("float32")
D, I = index.search(np.array([query_vector]), k=3)  # 가장 가까운 3개 찾기

(2) RDB 검색 방식 (정확한 검색)

  • 쿼리: "국립중앙박물관에 있는 유물을 검색"
  • 검색 알고리즘: SQL 기반 필터링
  • 결과: 정확히 일치하는 행 반환
# 예제 (MySQL)
SELECT * FROM museum_data WHERE location = '국립중앙박물관';

1-4. 어떤 경우에 벡터DB를 사용해야 하는가?

(1) 벡터DB가 필요한 경우

  • 텍스트, 이미지, 오디오 데이터를 유사도 기반으로 검색해야 할 때
  • 질의응답 AI (RAG), 추천 시스템, 이미지 검색을 구현할 때
  • 전통적인 SQL로는 의미 기반 검색이 어려울 때

(2) RDB가 필요한 경우

  • 사용자 정보, 주문 내역, 전자상거래, 금융 데이터 등 정형 데이터를 관리할 때
  • 데이터 간 관계를 유지해야 할 때 (외래키, JOIN 필요)
  • SQL 기반의 데이터 분석이 필요한 경우

2. Vector DB별 차이점 비교

비교 항목FAISSPineconeChromaDB
운영 방식로컬(오프라인)클라우드(온라인)로컬 + 클라우드
검색 방식ANN(Approximate Nearest Neighbor)ANN + 메타데이터 필터링ANN + 메타데이터
확장성제한적 (로컬 메모리 사용)클라우드 확장 가능로컬 + 경량 클라우드
설치 방식Python 패키지 (faiss)API 사용 (유료)Python 패키지 (chromadb)
속도빠름빠름 (대량 데이터 최적화)보통
데이터 저장인덱스 파일 저장클라우드 저장로컬 DB (duckdb 기반)
메타데이터 지원❌ 제한적✅ 지원✅ 지원

3. ChromaDB vs FAISS

Chroma DB와 FAISS의 차이점이 잘 와닿지 않아서 '벡터DB를 사용하게 된다면 어떤 기준으로 선택해야할까' 를 고민하며 두 벡터DB를 비교한 자료를 찾아보았다. 아래 이미지는 50개의 질문을 활용하여 단일 문서 검색, 3개 문서 검색, 6개 문서를 검색할 때, 각각의 정밀도와 재현율, 검색 시간 등을 비교한 실험의 결과이다.

image image image

The same table also highlights FAISS’s superiority over Chroma in both context precision and recall. FAISS is also faster in terms of similarity search, taking only 1.81 seconds to retrieve 50 contexts from 50 questions, while Chroma lags behind with 2.18 seconds.
...

원문과 이미지 출처: https://medium.com/@stepkurniawan/comparing-faiss-with-chroma-vector-stores
profile
기록은 기억을 지배한다.

0개의 댓글