벡터 데이터베이스를 평가하는 방법은?
이 글은 원래 InfoWorld에 게재되었으며, 허가를 받아 여기에 다시 게시되었습니다.
오늘날의 데이터 중심 세계에서 비정형 데이터의 기하급수적 증가는 우리의 주의를 요구하는 현상입니다. AI와 대규모 언어 모델(LLM)의 부상은 다시 한번 이러한 데이터 폭발을 촉발하며, 우리의 초점을 획기적인 기술인 벡터 데이터베이스로 향하게 했습니다. AI 시대의 핵심 인프라인 벡터 데이터베이스는 비정형 데이터를 저장, 인덱싱, 검색하기 위한 강력한 도구입니다.
전 세계의 관심이 벡터 데이터베이스에 확고히 집중되는 가운데, 시급한 질문이 떠오릅니다. 비즈니스 요구에 맞는 올바른 벡터 데이터베이스를 어떻게 선택할 수 있을까요? 벡터 데이터베이스를 비교하고 평가할 때 고려해야 할 핵심 요소는 무엇일까요? 이 글에서는 이러한 질문을 깊이 살펴보고 확장성, 기능, 성능 관점에서 인사이트를 제공하여, 이 역동적인 환경에서 정보에 기반한 결정을 내릴 수 있도록 돕겠습니다.
벡터 데이터베이스란 무엇인가?
기존의 관계형 데이터베이스 시스템은 미리 정의된 형식의 구조화된 테이블에서 데이터를 관리하며 정밀한 검색 작업 실행에 뛰어납니다. 반면, 벡터 데이터베이스는 벡터 임베딩이라고 알려진 고차원 수치 표현을 통해 이미지, 오디오, 동영상, 텍스트와 같은 비정형 데이터를 저장하고 검색하는 데 특화되어 있습니다.
벡터 데이터베이스는 Approximate Nearest Neighbor (ANN) 알고리즘과 같은 기법을 사용한 유사도 검색으로 유명합니다. 이 알고리즘은 공간적 관계에 따라 데이터를 배열하고, 방대한 데이터셋 내에서 주어진 쿼리에 가장 가까운 데이터 포인트를 빠르게 식별합니다.
개발자들은 추천 시스템, 챗봇, 유사한 이미지, 동영상, 오디오를 검색하는 애플리케이션을 구축하는 데 벡터 데이터베이스를 사용합니다. ChatGPT의 부상과 함께, 벡터 데이터베이스는 대규모 언어 모델의 환각 문제를 해결하는 데 유용해졌습니다.
벡터 데이터베이스와 기타 벡터 검색 기술
벡터 데이터베이스 외에도 벡터 검색을 위한 다양한 기술이 제공됩니다. 2017년에 Meta는 FAISS를 오픈소스로 공개하여 벡터 검색과 관련된 비용과 장벽을 크게 낮췄습니다. 2019년에 Zilliz는 업계를 선도하는 목적 지향형 오픈소스 벡터 데이터베이스인 Milvus를 선보였습니다. 그 이후로 많은 다른 벡터 데이터베이스 회사들이 등장했습니다. 벡터 데이터베이스의 흐름은 2022년에 Elasticsearch, Redis와 같은 많은 전통적인 검색 제품의 진입과 ChatGPT 같은 LLM의 광범위한 사용으로 본격화되었습니다.
벡터 검색 제품이 이렇게 많아진 지금, 이들의 차이점은 무엇일까요? 저는 대략 다음과 같은 유형으로 분류합니다:
벡터 검색 라이브러리. 삽입, 삭제, 업데이트, 쿼리, 데이터 영속성, 확장성과 같은 기본 데이터베이스 기능이 없는 알고리즘 모음입니다. FAISS가 대표적인 예입니다.
경량 벡터 데이터베이스. 벡터 검색 라이브러리를 기반으로 구축되어 배포는 가볍지만 확장성과 성능이 떨어집니다. Chroma가 그러한 예 중 하나입니다.
벡터 검색 플러그인. 이는 기존 데이터베이스에 의존하는 벡터 검색 애드온입니다. 그러나 그 아키텍처는 기존 워크로드를 위한 것이어서 성능과 확장성에 부정적인 영향을 미칠 수 있습니다. Elasticsearch와 Pgvector가 대표적인 예입니다.
목적 특화 벡터 데이터베이스. 이러한 데이터베이스는 벡터 검색을 위해 목적 특화되어 구축되었으며 다른 벡터 검색 기술보다 상당한 이점을 제공합니다. 예를 들어, 전용 벡터 데이터베이스는 분산 컴퓨팅 및 스토리지, 재해 복구, 데이터 영속성과 같은 더 사용자 친화적인 기능을 제공합니다. Milvus가 대표적인 예입니다.
벡터 데이터베이스를 평가하는 방법은?
벡터 데이터베이스를 평가할 때 확장성, 기능성, 성능은 가장 중요한 세 가지 지표입니다.
확장성
확장성은 벡터 데이터베이스가 기하급수적으로 증가하는 데이터를 효과적으로 처리할 수 있는지 판단하는 데 필수적입니다. 확장성을 평가할 때는 수평/수직 확장성, 로드 밸런싱, 다중 복제를 고려해야 합니다.
수평/수직 확장성
서로 다른 벡터 데이터베이스는 비즈니스 성장 요구를 수용하기 위해 다양한 확장 기법을 사용합니다. 예를 들어, Pinecone과 Qdrant는 수직 확장을 선택하는 반면, Milvus는 수평 확장을 채택합니다. 수평 확장성은 수직 확장보다 더 큰 유연성과 성능을 제공하며, 상한이 더 적습니다.
로드 밸런싱
스케줄링은 분산 시스템에 매우 중요합니다. 그 속도, 세분성, 정확도는 로드 관리와 시스템 성능에 직접적인 영향을 미치며, 올바르게 최적화되지 않으면 확장성을 저하시킵니다.
다중 복제본 지원
다중 복제본은 다양한 쿼리에 대한 차별화된 응답을 가능하게 하여 시스템의 초당 쿼리 수(QPS)와 전반적인 확장성을 향상시킵니다.
서로 다른 벡터 데이터베이스는 서로 다른 유형의 사용자를 대상으로 하므로 확장성 전략도 다릅니다. 예를 들어 Milvus는 데이터 볼륨이 빠르게 증가하는 시나리오에 집중하며 스토리지-컴퓨팅 분리 기반의 수평 확장 가능한 아키텍처를 사용합니다. 반면 Pinecone과 Qdrant는 중간 정도의 데이터 볼륨과 확장 요구를 가진 사용자를 위해 설계되었습니다. 한편 LanceDB와 Chroma는 확장성보다 경량 배포를 우선시합니다.
기능성
저는 벡터 데이터베이스의 기능성을 데이터베이스 지향 기능과 벡터 지향 기능이라는 두 가지 주요 범주로 분류합니다.
벡터 지향 기능
벡터 데이터베이스는 검색 증강 생성(RAG), 추천 시스템, 다양한 인덱스를 사용하는 의미론적 유사도 검색과 같은 많은 사용 사례에 유용합니다. 따라서 여러 인덱스 유형을 지원하는 능력은 벡터 데이터베이스를 평가하는 데 중요한 요소입니다.
현재 대부분의 벡터 데이터베이스는 HNSW(Hierarchical Navigable Small World) 인덱스를 지원하며, 일부는 IVF (Inverted File) 인덱스도 수용합니다. 이러한 인덱스는 인메모리 작업에 적합하며 풍부한 리소스가 있는 환경에 가장 적합합니다. 그러나 일부 벡터 데이터베이스는 하드웨어 리소스가 제한된 상황을 위해 mmap 기반 솔루션을 선택합니다. 구현은 더 쉽지만, mmap 기반 솔루션은 성능을 희생해야 합니다.
Milvus는 가장 오래된 벡터 데이터베이스 중 하나로, 디스크 기반 및 GPU 기반 인덱스를 포함해 11가지 인덱스 유형을 지원합니다. 이러한 접근 방식은 광범위한 애플리케이션 시나리오에 대한 적응성을 보장합니다.
데이터베이스 지향 기능
Change Data Capture(CDC), 멀티테넌시 지원, 리소스 그룹, 역할 기반 액세스 제어(RBAC)와 같이 기존 데이터베이스에 유용한 많은 기능은 벡터 데이터베이스에도 적용됩니다. Milvus와 벡터 플러그인을 갖춘 일부 기존 데이터베이스는 이러한 데이터베이스 지향 기능을 효과적으로 지원합니다.
성능
성능은 벡터 데이터베이스를 평가하는 데 가장 중요한 지표입니다. 기존 데이터베이스와 달리 벡터 데이터베이스는 근사 검색을 수행하므로 검색된 상위 k개 결과가 100% 정확도를 보장할 수 없습니다. 따라서 Query Per Second(QPS) 및 Latency와 같은 기존 지표 외에도, "재현율"은 검색 정확도를 정량화하는 벡터 데이터베이스의 또 다른 필수 성능 지표입니다.
다양한 지표를 평가하기 위해 널리 인정받는 두 가지 오픈소스 벤치마킹 도구인 ANN-Benchmark와 VectorDBBench를 추천합니다.
ANN-Benchmark
벡터 인덱싱은 벡터 데이터베이스에서 중요하고 리소스를 많이 소모하는 측면입니다. 그 성능은 전체 데이터베이스 성능에 직접적인 영향을 미칩니다. ANN-Benchmark는 다양한 실제 데이터셋 전반에서 여러 벡터 인덱스 알고리즘의 성능을 평가하는 선도적인 벤치마킹 도구입니다.
아래 그래프는 GIST1M 데이터셋(960차원의 100만 개 벡터)을 기반으로 다양한 알고리즘의 재현율/초당 쿼리 수 테스트 결과를 보여줍니다. x축에는 재현율을, y축에는 QPS를 표시하여 검색 정확도의 서로 다른 수준에서 각 알고리즘의 성능을 보여줍니다.
위 그래프에 표시된 결과에 따르면, Milvus, Zilliz, HNSW 라이브러리는 960차원의 1,000,000개 벡터를 처리할 때 상위 3개의 최상의 결과를 달성했습니다. 더 많은 벤치마킹 결과는 ANN-Benchmark’s website를 참조하세요.
VectorDBBench
ANN-Benchmark는 다양한 벡터 검색 알고리즘을 선택하고 비교하는 데 매우 유용하지만, 벡터 데이터베이스에 대한 포괄적인 개요를 제공하지는 않습니다. 리소스 소비, 데이터 로딩 용량, 시스템 안정성과 같은 요소도 고려해야 합니다. 또한 ANN-Benchmark는 필터링된 벡터 검색과 같은 많은 일반적인 시나리오를 놓칩니다.
VectorDBBench는 위에서 언급한 한계를 해결할 수 있는 오픈소스 벤치마킹 도구이며, Milvus 및 Weaviate와 같은 오픈소스 벡터 데이터베이스와 Zilliz Cloud 및 Pinecone과 같은 완전 관리형 서비스를 위해 설계되었습니다. 많은 완전 관리형 벡터 검색 서비스는 사용자가 조정할 수 있도록 매개변수를 공개하지 않기 때문에, VectorDBBench는 QPS와 재현율을 별도로 표시합니다.
아래 차트는 각각 1,536차원의 500,000개 벡터와 768차원의 1,000,000개 벡터를 처리할 때 다양한 주류 벡터 데이터베이스의 QPS 및 재현율 테스트 결과를 보여줍니다.
위 차트의 결과를 바탕으로, Milvus와 Zilliz 같은 목적 특화 벡터 데이터베이스는 QPS와 재현율 모두에서 뛰어난 성능을 보였습니다. 이러한 결과는 목적 특화 벡터 데이터베이스가 방대한 양의 데이터를 빠르게 처리하고 더 정확한 결과를 검색할 수 있음을 나타냅니다. 반면, 전통적인 데이터베이스 기반의 벡터 검색 애드온은 상대적으로 낮은 성능을 보였습니다.
더 많은 벤치마킹 결과는 VectorDBBench 웹사이트를 참조하세요.
결론
벡터 데이터베이스의 역동적인 영역에서는 수많은 제품이 고유한 중점과 강점을 보입니다. 보편적인 "최고의" 벡터 데이터베이스는 없으며, 선택은 귀하의 필요에 따라 달라집니다. 따라서 벡터 데이터베이스의 확장성, 기능, 성능 및 특정 사용 사례와의 호환성을 평가하는 것이 매우 중요합니다.
계속 읽기

My Wife Wanted Dior. I Spent $600 on Claude Code to Vibe-Code a 2M-Line Database Instead.
Write tests, not code reviews. How a test-first workflow with 6 parallel Claude Code sessions turns a 2M-line C++ codebase into a daily shipping pipeline.

AI Agents Are Quietly Transforming E-Commerce — Here’s How
Discover how AI agents transform e-commerce with autonomous decision-making, enhanced product discovery, and vector search capabilities for today's retailers.

Vector Databases vs. Key-Value Databases
Use a vector database for AI-powered similarity search; use a key-value database for high-throughput, low-latency simple data lookups.



