antgroup/vsag
vsag is a vector indexing library used for similarity search.
해결하는 문제
VSAG는 대규모 벡터 집합에서 효율적인 유사성 검색을 위해 설계된 벡터 인덱싱 라이브러리로, 시스템 메모리보다 큰 데이터 세트에 특히 적합합니다. 데이터 규모와 벡터 차원에 따라 자동으로 파라미터를 생성함으로써, 개발자가 기초 알고리즘을 깊이 이해할 필요 없이 근사 최근접 이웃(ANN) 검색을 쉽게 구현할 수 있도록 합니다.
작동 방식
C++로 작성된 이 라이브러리는 다양한 데이터 유형과 검색 요구 사항을 처리하기 위해 여러 전용 인덱싱 알고리즘을 구현합니다:
- SINDI: 스파스 벡터 검색에 최적화된 고성능 인덱스.
- HGraph: 높은 재현율과 낮은 지연 시간이 필요한 시나리오에 사용되는 그래프 기반 인덱스.
- IVF: 배치 쿼리와 대규모 검색에 최적화된 역인덱스.
- LazyHGraph: 소규모 데이터셋에서는 브루트포스 검색으로 시작하여 데이터가 증가함에 따라 자동으로 HGraph로 전환하는 적응형 인덱스.
메모리 사용량을 줄이기 위해 Product Quantization (PQ), Scalar Quantization (SQ4/SQ8), RaBitQ 등의 다양한 양자화 방법을 지원합니다. AVX-512 및 Neon과 같은 명령 세트를 활용하여 x86_64 및 ARM 아키텍처에 최적화되어 있습니다.
대상 사용자
벡터 데이터베이스 또는 유사성 검색 시스템을 구축하는 개발자로서, C++, Python (pyvsag를 통해), Node.js/TypeScript에 대한 바인딩을 제공하는 고성능, 크로스플랫폼 인덱스 엔진이 필요한 사용자.
주요 특징
- 다국어 지원: 네이티브 C++ 코어에 공식 Python 및 TypeScript 바인딩 제공.
- 고성능 스파스 검색: SINDI 알고리즘은 쿼리당 초당 처리 수(QPS)에서 이전 최고 수준의 솔루션을 크게 능가합니다.
- 메모리 효율성: 다양한 양자화 수준과 스파스 벡터용 디스크 기반 I/O(SINDI_V2)를 지원합니다.
- 하드웨어 최적화: SSE, AVX, Neon, SVE 등의 CPU 고유 최적화를 활용하며, Intel-MKL 또는 OpenBLAS를 통해 선택적 가속을 지원합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트