대표 벡터 DB별 저장 방식, 인덱싱 기법, 유사도 함수 비교

이세준·2025년 8월 4일
0

대표 벡터 DB별 저장 방식, 인덱싱 기법, 유사도 함수 비교

벡터 DB를 선택하거나 설계할 때 가장 중요한 요소는 크게 세 가지입니다.

  • 저장 방식: 벡터 및 메타데이터를 어떻게 저장하는가?
  • 인덱싱 방식: 고차원 벡터를 빠르게 검색하기 위한 알고리즘과 구조
  • 유사도 함수 종류: 벡터 간 유사도를 어떻게 계산하는가?

아래에서는 Faiss, Milvus, Qdrant, Weaviate, Pinecone 다섯 가지 대표 벡터 DB를 중심으로 각 항목을 정리했습니다.


1. Faiss

  • 저장 방식

    • 벡터 데이터는 메모리 혹은 디스크 기반 파일 시스템에 저장
    • 자체 데이터베이스 기능은 없고, 벡터 배열(NumPy 배열 등) 형태로 관리
    • 영속성 저장은 직접 구현해야 함
  • 인덱싱 방식

    • IVF (Inverted File Index)
    • PQ (Product Quantization)
    • HNSW (Hierarchical Navigable Small World Graph)
    • Flat (선형 탐색) 등 다양한 인덱스 지원
    • GPU 가속 지원
  • 유사도 함수 종류

    • L2 거리 (Euclidean Distance)
    • 내적 (Dot Product)
    • 코사인 유사도 (Cosine similarity) — 직접 계산하거나 내적 변형으로 처리 가능

2. Milvus

  • 저장 방식

    • 벡터 및 메타데이터를 분산 스토리지에 저장
    • 자체 관리 스토리지 외에도 MinIO, Amazon S3 등 외부 오브젝트 스토리지와 연동 가능
  • 인덱싱 방식

    • IVF
    • HNSW
    • ANNOY
    • PQ 등 다중 인덱싱 기법을 상황에 따라 자동 선택 및 적용 가능
    • 인덱스는 분산 환경에서 관리됨
  • 유사도 함수 종류

    • L2 거리
    • Inner Product
    • 코사인 유사도 (내적 변환 방식으로 지원)

3. Qdrant

  • 저장 방식

    • 벡터와 메타데이터를 함께 저장하는 구조
    • 영속성 보장 위해 자체 스토리지에 저장하며, WAL(Write-Ahead Log) 사용
  • 인덱싱 방식

    • HNSW 그래프 기반 인덱싱이 기본
    • 빠른 탐색과 정확도 사이에 균형 조절 가능
    • 일부 클러스터링 기능 포함
  • 유사도 함수 종류

    • Cosine similarity
    • Euclidean distance (L2)
    • Dot product

4. Weaviate

  • 저장 방식

    • 벡터와 스키마 기반 메타데이터를 함께 저장
    • 자체 분산 스토리지 사용
    • GraphQL API로 스키마 정의 및 데이터 관리
  • 인덱싱 방식

    • HNSW 인덱스가 기본
    • 벡터 및 메타데이터 필터링을 결합한 하이브리드 검색 지원
  • 유사도 함수 종류

    • Cosine similarity
    • Dot product
    • Euclidean distance (L2)

5. Pinecone

  • 저장 방식

    • 완전 관리형 클라우드 서비스
    • 백엔드에서 분산 스토리지 및 캐싱 시스템으로 관리
    • 사용자는 API를 통해 접근
  • 인덱싱 방식

    • 내부적으로 여러 인덱스 기법을 조합하여 사용 (상세 비공개)
    • Approximate Nearest Neighbor (ANN) 최적화
    • 자동 스케일링 및 인덱스 최적화 지원
  • 유사도 함수 종류

    • Cosine similarity
    • Dot product
    • Euclidean distance (L2)

요약 비교표

DB 이름저장 방식인덱싱 방식지원 유사도 함수
Faiss메모리/파일, 배열 형태 관리IVF, PQ, HNSW, FlatL2, Dot Product, Cosine(내적 변형)
Milvus분산 스토리지 + 오브젝트 스토리지 연동IVF, HNSW, ANNOY, PQL2, Inner Product, Cosine (내적 변환)
Qdrant자체 스토리지, WAL 지원HNSWCosine, L2, Dot Product
Weaviate자체 분산 스토리지 + 스키마HNSWCosine, Dot Product, L2
Pinecone클라우드 관리형비공개, ANN 최적화Cosine, Dot Product, L2

마무리

각 벡터 DB는 저장 방식과 인덱싱, 유사도 계산 방법에 차이가 있지만,
공통적으로 고차원 벡터를 빠르고 정확하게 탐색하는 데 최적화되어 있다.

프로젝트 규모, 인프라 환경, 성능 요구사항에 맞춰 적합한 벡터 DB를 선택하면 된다.

profile
기술정리

0개의 댓글