Vector DB 개요

1. 벡터 데이터베이스 (Vector DB)

1.1 벡터 데이터베이스의 개요

  • 정의 및 개념
    • 방대한 양의 고차원 데이터를 벡터 형태로 저장하고 처리하기 위한 특수한 데이터베이스
    • 정보는 벡터로 저장되며, 각 벡터는 특성이나 품질을 기반으로 개체를 설명하는 수학적 데이터 표현을 의미함
      • 벡터 임베딩이라고도 알려진 데이터 객체의 수치 표현 형태
    • 벡터 임베딩의 강력한 기능을 활용하여
      • 텍스트, 이미지, 오디오 등의 비정형 데이터를 임베딩 모델을 통해
      • 고차원 수치 배열인 밀집 벡터(Dense Vector)로 변환한 뒤,
      • 이를 효율적으로 저장, 인덱싱, 고속 유사도 검색을 수행할 수 있도록 설계됨
    • 이미지, 텍스트 또는 센서 데이터와 같은 비정형 데이터와 반정형 데이터로 구성된 대규모 데이터 세트를 색인하고 검색함
  • 벡터 데이터베이스의 주요 특징과 장점
    • 고차원 벡터 임베딩 저장 및 관리 (구조적 특징)
      • 데이터 항목은 특성 벡터(feature vector)로 표현됨
      • 특성 벡터를 기반으로 데이터 검색, 분류, 군집화 등의 작업을 수행할 수 있음

      • 고차원 특성 벡터(Feature Vector) 처리:
        • 텍스트, 이미지, 오디오 등의 비정형 데이터가 AI 임베딩 모델을 통해 변환된 수백~수천 차원의 밀집 벡터(Dense Vector)를
        • 손실 없이 효율적으로 저장
      • 비정형 데이터의 구조화:
        • 전통적인 관계형 DB가 처리하기 힘든 이미지, 자연어, 오디오, 센서 데이터 등을
        • ‘벡터 공간 내의 좌표’로 변환하여 통합 관리
      • 메타데이터 필터링(하이브리드 검색):
        • 벡터 데이터뿐만 아니라, 이와 결합된 텍스트, 타임스탬프, ID 등의 메타데이터(Metadata)를 함께 저장
        • 이를 기반으로 한 사전/사후 필터링(Filtering)을 제공
    • 고속 유사성 검색 (Similarity Search)
      • 주어진 쿼리 벡터와 가장 유사한 벡터를 빠르게 검색할 수 있음
      • ANN(Approximate Nearest Neighbor) 알고리즘 기반:
        • 모든 데이터와 일일이 거리를 계산하는 완전 탐색(Exact Search) 대신,
        • HNSW, IVF, ScaNN 등 최신 근사 최근접 이웃 알고리즘을 사용하여
        • 수억 개의 데이터 중 가장 유사한 항목을 밀리초(ms) 단위로 찾아냄
      • 다양한 거리 측정 메트릭 지원:
        • 데이터의 특성에 따라 다양한 수학적 거리 측정 방식을 유연하게 선택
          • 코사인 유사도(Cosine Similarity)
          • 유클리드 거리(L2 Distance)
          • 내적(Dot Product) 등
    • 하이브리드 검색 및 키워드 결합
      • Sparse-Dense 하이브리드 검색:
        • 최근 벡터 DB들은 밀집 벡터(Semantic 중심) 검색뿐만 아니라,
        • 전통적인 키워드 기반의 희소 벡터(Sparse Vector, 예: BM25) 검색을 동시에 지원하여 검색 정확도를 극대화
      • 재순위화(Reranking) 연동:
        • 1차 검색된 고차원 벡터 결과에 대해 AI 모델과 연동하여 최종 순위를 정밀하게 재조정하는 파이프라인 지원
    • 엔터프라이즈급 아키텍처 및 확장성 (운영적 특징)
      • 실시간 정적/동적 인덱싱:
        • 데이터가 수시로 추가/변경(CRUD)되는 환경에서도 background에서 인덱스를 동적으로 재구축
        • 실시간에 가까운(Near Real-Time) 검색을 보장
      • 클라우드 네이티브 및 분산 처리 (Storage-Compute Separation):
        • 최신 공식 아키텍처(예: Milvus, Qdrant 등)는 저장소와 컴퓨팅 노드를 분리하여 설계됨
        • 데이터 양이 늘어나면 저장 노드를, 쿼리 요청(QPS)이 폭증하면 컴퓨팅 노드만 독립적으로 수평 확장(Scale-out)할 수 있음
    • AI 에코시스템 및 RAG 최적화 (활용적 특징)
      • 컨텍스트 윈도우 한계 극복:
        • LLM(대형 언어 모델)의 외부 메모리 역할 수행
        • 거대한 지식 베이스를 기반으로 한 RAG(검색 증강 생성) 시스템 구축의 핵심 컴포넌트로 작동
      • 프레임워크 및 에이전트 연동:
        • LangChain, LlamaIndex 등 대표적인 AI 오케스트레이션 프레임워크와 네이티브 SDK/API를 통해 긴밀하게 연동
    • 엔터프라이즈 보안 및 격리
      • 멀티테넌시(Multi-tenancy):
        • 하나의 DB 인스턴스 내에서 사용자나 조직별로 데이터 영역과 인덱스를 안전하게 격리
      • 보안 규정 준수:
        • 데이터 암호화(At-rest / In-transit), RBAC(역할 기반 접근 제어) 등을 지원하여 기업용 AI 애플리케이션 요구사항을 충족

1.2 핵심 메커니즘 (작동 원리)

  • 벡터 데이터베이스는 전통적인 관계형 DB의 스키마 매칭이나 완전 일치(Exact Match) 방식과 달리,
  • 고차원 벡터 공간에서의 ANN(Approximate Nearest Neighbors, 근사 최근접 이웃) 알고리즘과 수학적 거리 메트릭을 기반으로 작동함

  • 전체적인 파이프라인

    1. 데이터 파이프라인 및 임베딩 (Data Pipeline & Embedding)
      • 청킹 및 고차원 투영:
        • 텍스트, 이미지 등 대규모 비정형 데이터를 의미적 단위로 분할(Chunking)한 후,
        • LLM 또는 비전 모델(예: 타깃 임베딩 모델)을 통과시켜
        • 수백~수천 차원의 밀집 벡터(Dense Vector) 공간에 좌표로 투영
      • 원시 데이터 및 메타데이터 결합:
        • 생성된 벡터와 함께,
        • 원본 텍스트 데이터 및 필터링에 사용될 메타데이터(예: 생성일, 카테고리, 권한 ID 등)를
        • 키-값(Key-Value) 형태로 묶어
        • 데이터 페이로드(Payload)를 구성하고 저장소에 영구 적재(Persistence)
    2. 고속 탐색을 위한 인덱싱 (Indexing)
      • 차원의 저주(Curse of Dimensionality) 극복:
        • 전수 조사 방식인 KNN(K-Nearest Neighbors)은 데이터 수와 차원이 늘어날 때 연산량이 기하급수적으로 증가(O(N))하므로,
        • 성능 타협을 통해 탐색 복잡도를 O(log N) 수준으로 낮추는 ANN 인덱스를 빌드함
      • 최신 인덱싱 아키텍처 적용:
        • 그래프 기반 (HNSW):
          • 벡터 간의 근접성을 초고속으로 탐색할 수 있도록 다층 구조의 스몰 월드 그래프를 형성
        • 클러스터 기반 (IVF):
          • 벡터 공간을 Voronoi 다각형 공간으로 분할하여 역색인(Inverted File) 구조의 셀(Cell)로 그룹화
        • 압축 기반 (PQ/SQ):
          • 고차원 벡터를 양자화(Quantization)하여 메모리 사용량을 대폭 줄이고 캐시 효율성을 극대화
    3. 하이브리드 실행 및 쿼리 처리 (Query Processing & Filtering)
      • 실시간 쿼리 벡터 변환:
        • 사용자 검색 요청(Query)이 들어오면
        • 실시간으로 동일한 AI 임베딩 모델을 거쳐
        • 동일 차원의 쿼리 벡터(q)로 변환
      • 단일 단계(Single-stage) 하이브리드 필터링:
        • 최근 고성능 벡터 DB는 메타데이터 필터링과 벡터 유사도 검색을 동시에 수행함
        • 인덱스 탐색 과정에서 메타데이터 조건(예: user_id == 123)을 함께 검사하여
        • 불필요한 벡터 연산을 원천 차단하고
        • 검색 정확도를 높임
    4. 수학적 유사도 측정 및 Top-K 추출 (Similarity Evaluation)
      • 거리 메트릭 계산:
        • 사전에 정의된 수학적 알고리즘을 통해
        • 쿼리 벡터와 인덱스 공간 내 후보 벡터들 간의 거리를 연산
        • 코사인 유사도 (Cosine Similarity):
          • 두 벡터 사이의 각도(방향성)를 측정하여
          • 크기 변화에 무관한 의미적 유사성을 판별
          • \[\cos\theta = \frac{A \cdot B}{\|A\|\|B\|}\]
        • L2 유클리드 거리 (Euclidean Distance):
          • 고차원 공간상에서 두 좌표 간의 절대적인 직선거리를 측정
          • \[d = \sqrt{\sum(A_i - B_i)^2}\]
        • 내적 (Dot Product):
          • 임베딩 벡터들이 정규화(Normalized)되어 있을 때 가장 빠른 연산 속도를 보장
          • 가중치가 반영된 유사도를 계산
          • \[A \cdot B = \sum A_i B_i\]
      • 정렬 및 결과 반환:
        • 계산된 거리 값을 기준으로
        • 가장 유사도가 높은 최상위 k개의 레코드(Top-K)를 실시간으로 정렬 및 추출하여
        • 컨텍스트 데이터와 함께 호출자에게 반환

1.3 대표적인 인덱싱 알고리즘

  • 벡터 DB의 검색 성능(속도 vs 정확도 트레이드오프)을 제어하는 핵심 내장 알고리즘들

    • HNSW (Hierarchical Navigable Small World):
      • 설명:
        • 벡터 공간을 다층 구조의 그래프(Graph) 형태로 연결하여,
        • 상위 레이어에서 크게 건너뛴 후 하위 레이어에서 정밀하게 탐색하는 방식
      • 특징:
        • 현대 벡터 DB에서 가장 널리 쓰이는 표준 알고리즘
        • 메모리 소비량은 크지만 압도적으로 빠른 검색 속도와 높은 정확도를 자랑함
          • 검색 속도가 매우 빠르고 정확도가 높지만, 그래프 구조를 유지하기 위해 메모리(RAM) 소모가 큼
    • IVF (Inverted File Index):
      • 설명:
        • 전체 벡터 공간을 K-평균(K-Means) 군집화 기법으로 여러 개의 클러스터로 나눈 뒤,
        • 쿼리와 가장 가까운 일부 클러스터 내부만 조사하는 방식
      • 특징:
        • 인덱스 크기가 작아 메모리를 적게 차지하므로 대규모 데이터에 유리함
        • 클러스터 경계면에 있는 데이터를 놓칠 수 있어 검색 정확도가 다소 떨어질 수 있음
    • ScaNN (Scalable Nearest Neighbors)
      • 설명:
        • 구글이 개발한 알고리즘
        • 벡터의 차원을 축소(양자화)할 때 거리 오차를 최소화하도록
        • 수학적으로 최적화된 비대칭 양자화(Anisotropic Vector Quantization) 방식 사용
      • 특징:
        • 압도적인 메모리 효율성과 빠른 속도를 동시에 자랑
        • 대규모 검색 환경에서 높은 정확도를 유지하는 데 특화됨

2. 모델과 DB 연동 시 주의사항

  • 임베딩 모델의 일관성 (Model Consistency):
    • 절대 주의:
      • 데이터를 DB에 넣을 때 사용한 임베딩 모델과, 사용자의 질문을 변환하는 임베딩 모델은 반드시 동일해야 함
      • 모델이 다르면 같은 단어도 전혀 다른 좌표에 찍히게 되어 검색이 불가능
  • 차원 수 정합성:
    • 벡터 DB의 컬럼 크기(Dimension)는 임베딩 모델의 출력 크기와 1:1로 매칭되어야 함
      • 예: 1536차원 모델 사용 시 DB 설정도 1536
  • 처리 성능 (Throughput):
    • 대규모 ERP나 스마트팩토리 로그 데이터를 실시간으로 처리할 때는
    • Batch Embedding을 지원하는 라이브러리를 사용하여 DB 인서트 성능을 최적화해야 함
  • 로컬 vs 클라우드:
    • 보안이 중요한 기업 내부용이라면
    • HuggingFace의 오픈소스 모델(BGE, RoBERTa 등)을 로컬 GPU에서 돌리고,
    • MilvusFAISS를 온프레미스로 연동하는 아키텍처가 적합

3. 대표적인 벡터 데이터베이스

  • 글로벌 AI 및 엔터프라이즈 환경에서 가장 많이 활용되는 대표적인 벡터 데이터베이스 5종(Milvus, Pinecone, Qdrant, Chroma, pgvector)

3.1 Milvus

  • Linux 재단 산하의오픈소스 프로젝트로, 현재 대규모 엔터프라이즈의 표준
  • 수억 단위 이상의 대규모 벡터 데이터를 분산 처리하기 위해 설계된 강력한 클라우드 네이티브(Cloud-Native) 벡터 DB

  • 주요 특징:
    • 스토리지-컴퓨팅 분리:
      • 저장 노드와 연산(쿼리) 노드가 철저히 분리되어 있음
      • 트래픽 폭증 시 쿼리 노드만 유연하게 수평 확장(Scale-out)할 수 있음
    • 다양한 인덱스 지원:
      • HNSW, IVF뿐만 아니라 GPU 가속 인덱스(자체 및 구글 ScaNN 계열)까지 폭넓게 지원
  • 장점:
    • 압도적인 확장성:
      • 데이터 볼륨이 페타바이트(PB) 급으로 커져도 안정적인 성능을 유지
    • 풍부한 기능:
      • 완벽한 멀티테넌시, 시각화 대시보드(Attu), 강력한 하이브리드 검색 및 필터링을 제공
  • 단점:
    • 높은 아키텍처 복잡도:
      • MinIO, Pulsar/Kafka, etcd 등 여러 컴포넌트가 의존성을 가짐
      • 자체 구축(On-premise) 시 초기 설정과 운영 리소스 부담이 매우 큼

3.2 Pinecone

  • 인프라 관리 없이 API 호출만으로 벡터 데이터베이스를 전적으로 이용할 수 있도록 만든 Fully Managed(완전 관리형) 클라우드 전용 서비스

  • 주요 특징:
    • Serverless 아키텍처:
      • 최근 인프라 관리 부담을 완전히 없앤 Serverless 플랜을 도입
      • 사용한 쿼리와 저장 용량만큼만 비용을 지불하도록 변경됨
    • 실시간 변경 반영:
      • 데이터의 삽입, 수정, 삭제가 인덱스에 즉각 반영
      • Near Real-Time 검색 성능이 뛰어남
  • 장점:
    • 제로 운영 공수(Ops-less):
      • 인프라 세팅, 클러스터 스케일링, 백업 등을 모두 Pinecone 측에서 관리
      • 개발자는 비즈니스 로직에만 집중할 수 있음
    • 빠른 PoC 및 상용화:
      • 직관적인 API 환경 제공
      • RAG 파이프라인 프로토타입을 가장 빠르게 구축할 수 있음
  • 단점:
    • 폐쇄성 및 클라우드 종속:
      • 오픈소스가 아니므로 온프레미스나 폐쇄망 환경에서는 사용이 불가능
      • 데이터 규모가 커질수록 비용 예측이 어려울 수 있음

3.3 Qdrant

  • Rust 언어로 개발되어 하드웨어 자원을 극한으로 활용하는 고성능 오픈소스 벡터 데이터베이스
  • 엔터프라이즈급 기능과 가벼움을 동시에 잡았다는 평가

  • 주요 특징:
    • Rust 기반 최적화:
      • 가비지 컬렉션(GC)으로 인한 멈춤 현상이 없음
      • 메모리 효율성과 스레드 동시성 제어가 매우 뛰어남
    • 자체 하이브리드 엔진:
      • 페이로드(메타데이터) 필터링이 인덱스 스캔과 동시에 일어나는 Single-stage 필터링이 정교하게 구현되어 있음
  • 장점:
    • 뛰어난 리소스 가성비:
      • 동일 사양의 가상 머신(VM)에서 타 DB 대비 더 적은 메모리로 더 높은 QPS(초당 쿼리 처리량)를 기록
    • 유연한 배포:
      • 단일 바이너리로 가볍게 띄울 수도 있고,
      • 쿠버네티스 상에서 대규모 분산 클러스터로 확장할 수도 있어 유연성이 높음
  • 단점:
    • 에코시스템 규모:
      • Milvus나 Pinecone에 비해 커뮤니티 플러그인이나 레퍼런스가 다소 적은 편

3.4 Chroma

  • Python 에코시스템과 LangChain/LlamaIndex 등 AI 프레임워크에 완벽히 통합되도록 설계된 개발자 친화적 오픈소스 임베딩 데이터베이스

  • 주요 특징:
    • In-Memory 및 Local 파일 기반 지원:
      • SQLite처럼 코드 몇 줄로 로컬 메모리나 로컬 디렉토리에 데이터를 저장하고 바로 쿼리할 수 있음
    • 기본 임베딩 모델 내장:
      • 데이터를 넣을 때 별도의 임베딩 파이프라인을 거치치 않아도
      • Chroma가 내부적으로 올라마(Ollama)나 OpenAI 모델을 호출해 처리할 수 있음
  • 장점:
    • 극상의 간결함:
      • pip install chromadb 후 즉시 사용 가능
      • 로컬 개발 환경 테스트 및 소규모 AI 애플리케이션 프로토타이핑에 최적
  • 단점:
    • 대규모 확장성 한계:
      • 단일 노드 중심 설계 구조라 수천만 건 이상의 엔터프라이즈급 대규모 트래픽과 대용량 분산 환경에는 부적합

3.5 pgvector (PostgreSQL 확장)

전 세계적으로 가장 안정적인 오픈소스 관계형 데이터베이스인 PostgreSQL의 확장(Extension) 플러그인

  • 주요 특징:
    • 관계형 데이터와 벡터의 결합:
      • 기존 비즈니스 데이터(사용자 정보, 결제 내역 등)가 있는 테이블에 vector 타입을 추가하여 한 번에 관리함
    • HNSW 및 IVFFlat 인덱스 내장:
      • 확장 팩임에도 대중적인 ANN 알고리즘을 SQL 레이어에서 그대로 지원함
  • 장점:
    • 추가 인프라 비용 제로:
      • 이미 PostgreSQL이나 AWS RDS 등을 운영 중이라면,
      • 새로운 DB 기술 스택을 추가하지 않고 즉시 벡터 검색 기능을 도입할 수 있음
    • 강력한 ACID 트랜잭션:
      • RDB의 완벽한 데이터 일관성과 복잡한 SQL JOIN 연산을 벡터 검색과 결합할 수 있음
  • 단점:
    • 전문 솔루션 대비 성능 제한:
      • 전용(Dedicated) 벡터 DB가 아니기 때문에,
      • 초고차원 대규모 벡터 데이터셋에서 검색 속도 및 인덱싱 빌드 타임이 전문 DB에 비해 떨어질 수 있음


  • 요약 및 선택 가이드
벡터 DB형태주요 인덱스라이센스상업이용수정/비공개적합한 유스케이스
Milvus분산 오픈소스HNSW, IVF,
ScaNN 등
Apache 2.0PB급 대규모 엔터프라이즈 환경, GPU 가속 필요 시
Pinecone클라우드 SaaS자체 전용 인덱스Proprietary
(독점)
유료 플랜만
가능
X인프라 운영 공수를 제로로 만들고 빠른 상용화를 원할 때
QdrantRust 오픈소스HNSW 기반Apache 2.0비용 대비 고성능(QPS)과 안정적인 자원 관리가 중요할 때
Chroma경량 오픈소스HNSW (로컬)Apache 2.0로컬 개발 테스트, 가벼운 챗봇 프로젝트, 빠른 프로토타이핑
pgvectorRDB 확장
플러그인
HNSW, IVFFlatPostgreSQL이미 Postgres 기반 서비스를 운영 중이며, 관계형 데이터와의 강력한 결합이 필요할 때
  • Apache 2.0 라이센스이더라도 클라우드 서비스를 이용할 경우, Free Tier 외에는 유료
  • 비용걱정 없이 자유롭게 사용하려면 직접 로컬 시스템을 구축해야 함

© 2020. AiDALab Co. All rights reserved.

Powered by Hydejack v9.2.1