Vector database — 벡터 데이터베이스

From Systems analysis Wiki
Jump to navigation Jump to search

벡터 데이터베이스는 비정형 데이터의 고차원 수치 표현(벡터)을 저장하고 검색하는 데 최적화된 특수 시스템입니다[1]. 대형 언어 모델(LLM)의 맥락에서 이 시스템은 효율적인 의미론적 검색을 제공하며, 특히 RAG 아키텍처를 포함한 현대 인공지능 시스템의 핵심 구성 요소입니다.

정확한 일치를 기반으로 하는 전통적인 관계형 데이터베이스와 달리, 벡터 데이터베이스는 고차원 공간에서 의미적으로 유사한 객체를 탐색하는 Approximate Nearest Neighbor, ANN (근사 최근접 이웃 검색)에 특화되어 있습니다[2].

벡터 데이터베이스의 기초

벡터 표현 (Embeddings)

벡터 표현 (embeddings)은 텍스트, 이미지, 오디오 및 기타 유형의 데이터를 벡터 형태로 수치화한 것입니다. 핵심 원칙은 의미적으로 유사한 객체(예: 의미가 비슷한 단어)가 해당 벡터 공간 내에서 서로 가까이 위치한다는 것입니다[3].

현대의 텍스트 embedding은 self-attention 메커니즘을 활용해 문맥을 이해하는 transformer 아키텍처 기반 모델을 사용하여 생성됩니다. 대부분의 현대 모델에서 이러한 표현의 차원 수는 256에서 1024 이상까지 다양합니다[4].

유사도 측정 기준

벡터 간의 '거리' 또는 유사도를 측정하기 위해 다양한 측정 기준이 사용됩니다:

  • 코사인 유사도 (cosine similarity): 두 벡터 사이의 각도의 코사인을 측정합니다. 벡터의 크기가 아닌 방향을 고려하기 때문에 텍스트 embedding에 특히 효과적입니다[5].
  • 유클리드 거리 (L2): 공간에서 두 점 사이의 표준 직선 거리입니다.
  • 내적 (dot product): 코사인 유사도와 유사하지만 정규화되지 않습니다[6].

인덱싱 알고리즘

고차원 공간에서 빠른 검색을 위해 특수한 ANN 알고리즘이 사용됩니다.

HNSW (Hierarchical Navigable Small World)

HNSW 알고리즘은 '소세계(small world)' 개념과 다층 계층적 그래프 구조를 활용합니다. 상위 레이어는 공간을 빠르게 이동하기 위한 긴 연결(거친 검색)을 포함하고, 하위 레이어는 이웃을 정확하게 찾기 위한 짧은 연결을 포함합니다. HNSW는 O(log N)의 대수적 시간 복잡도를 보이며 대부분의 현대 벡터 데이터베이스에서 선호되는 선택입니다[7].

IVF (Inverted File)

IVF 알고리즘은 k-means 클러스터링을 사용하여 공간을 클러스터로 분할합니다. 검색은 제한된 수의 가장 가까운 클러스터 내에서 이루어지므로 프로세스가 크게 빨라집니다. 클러스터 수는 일반적으로 √N으로 선택되며, 여기서 N은 dataset의 총 벡터 수입니다[8].

LSH (Locality-Sensitive Hashing)

LSH 알고리즘은 가까운 벡터에 대해 높은 확률로 동일한 해시를 생성하는 해시 함수 집합을 사용합니다. 이를 통해 유사한 객체를 빠르게 그룹화할 수 있습니다[9].

주요 벡터 데이터베이스

  • Pinecone: serverless 아키텍처를 갖춘 완전 관리형 클라우드 벡터 데이터베이스입니다.
  • Qdrant: Rust로 작성된 고성능 데이터베이스로, 고급 필터링 및 ACID 호환 트랜잭션을 지원합니다.
  • Milvus: cloud-native 아키텍처를 갖춘 확장 가능한 오픈소스 데이터베이스입니다. GPU 가속 변형을 포함한 다양한 인덱스 유형을 지원합니다.
  • Weaviate: GraphQL API와 지식 그래프를 지원하는 오픈소스 벡터 데이터베이스입니다.
  • Chroma: 빠른 프로토타이핑과 실험에 최적화된 경량 오픈소스 데이터베이스입니다.
  • FAISS: Meta에서 개발한 라이브러리로, 완전한 데이터베이스는 아니지만 정적 데이터에 대한 고성능 인덱싱 알고리즘을 제공합니다.

LLM과의 활용: RAG 아키텍처

Retrieval-Augmented Generation (RAG)는 LLM이 벡터 검색을 통해 외부 지식 베이스로 보완되는 아키텍처입니다. RAG 시스템은 두 가지 주요 구성 요소로 이루어집니다[10]:

  1. 리트리버 (Retriever): 벡터 데이터베이스를 활용하여 사용자 쿼리에 관련된 정보를 탐색하는 검색 구성 요소입니다.
  2. 제너레이터 (Generator): 원래 쿼리와 리트리버가 찾은 정보를 바탕으로 응답을 생성하는 LLM입니다.

RAG의 효율적인 동작을 위해 하이브리드 검색이 사용됩니다. 이는 의미론적(벡터) 검색과 어휘적(키워드, 예: BM25) 검색의 조합으로, 보다 정확하고 관련성 높은 결과를 제공합니다.

동향과 미래 발전 방향

벡터 데이터베이스 시장은 폭발적인 성장을 보이고 있으며, 2023년 19억 8천만 달러에서 2029년까지 71억 3천만 달러에 달할 것으로 예측됩니다(연평균 성장률 23.7%)[11]. 주요 발전 방향은 다음과 같습니다:

  • 멀티모달 시스템: 단일 벡터 공간에서 텍스트, 이미지, 오디오, 비디오에 대한 동시 검색 지원.
  • 자동 최적화: ML을 활용한 최적 인덱스 및 파라미터 자동 선택.
  • Edge computing: 모바일 및 IoT 기기용 소형 솔루션 개발.
  • 양자 컴퓨팅: 유사도 검색의 잠재적 지수적 가속화.
  • 뉴로모픽 칩: 검색 수행 시 초저전력 소비를 위한 뇌 동작 모방.

외부 링크

  • Pinecone 공식 사이트
  • Qdrant 공식 사이트
  • Milvus 공식 사이트
  • Weaviate 공식 사이트

참고 문헌

  • Malkov, Y.A.; Yashunin, D.A. (2016). Efficient and Robust Approximate Nearest Neighbor Search Using Hierarchical Navigable Small World Graphs. arXiv:1603.09320.
  • Johnson, J.; Douze, M.; Jégou, H. (2017). Billion-Scale Similarity Search with GPUs. arXiv:1702.08734.
  • Datar, M. et al. (2004). Locality-Sensitive Hashing Scheme Based on p-Stable Distributions. SoCG 2004 paper.
  • Guo, N. et al. (2020). ScaNN: Efficient Vector Similarity Search at Scale. In: Proc. ACM SIGKDD 2020, pp. 1571-1580. DOI:10.1145/3394486.3403339.
  • Lewis, P. et al. (2020). Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks. arXiv:2005.11401.
  • Wang, X. et al. (2021). Milvus: A Purpose-Built Vector Data Management System. In: SIGMOD 2021. DOI:10.1145/3448016.3457550.
  • Lee, J. et al. (2022). OOD-DiskANN: Efficient and Scalable Graph ANNS for Out-of-Distribution Queries. arXiv:2211.12850.
  • Fan, D. et al. (2023). Survey of Vector Database Management Systems. arXiv:2310.14021.
  • Ren, R. et al. (2024). Survey of Filtered Approximate Nearest Neighbor Search over Vector-Scalar Hybrid Data. arXiv:2505.06501.
  • Zhao, H. et al. (2024). Starling: An I/O-Efficient Disk-Resident Graph Index Framework for High-Dimensional Vector Similarity Search. arXiv:2401.02116.
  • Liu, Y. et al. (2025). Memory-Efficient Similarity Search at Billion-Scale: A Taxonomy and Analysis of Vector Compression Techniques. ResearchGate preprint.

주석

  1. «What Is a Vector Database?». CloudRaft. [1]
  2. «What is a Vector Database?». Qdrant Blog. [2]
  3. «What Are Vector Embeddings?». LakeFS. [3]
  4. «What are embeddings?». Zilliz. [4]
  5. Sahoo, A., Maiti, J. «A Comparative Study of Similarity Metrics for Textual Embeddings». arXiv:2501.01234. [5]
  6. «Vector search and dense vector fields». Elastic. [6]
  7. Malkov, Y. A., Yashunin, D. A. «Efficient and robust approximate nearest neighbor search using Hierarchical Navigable Small World graphs». arXiv:1603.09320. [7]
  8. «The index IVF». FAISS Wiki. [8]
  9. Datar, M., et al. «Locality-Sensitive Hashing Scheme Based on p-Stable Distributions». Symposium on Computational Geometry. [9]
  10. Lewis, P., et al. «Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks». arXiv:2005.11401. [10]
  11. «Vector Database Global Market Report 2024». The Business Research Company. [11]