microsoft/DiskANN
A vector indexing library to bring fast, fresh and filtered search to your database
해결하는 문제
DiskANN3는 다양한 유형의 데이터베이스에서 확장 가능하고 정확하며 비용 효율적인 벡터 인덱싱을 구현할 수 있는 방법을 제공합니다. 특히 메모리에 완전히 올릴 수 없을 정도로 거대한 데이터셋에서 빠른 최근접 이웃 검색을 수행하는 문제를 해결합니다.
작동 방식
이 라이브러리는 DataProvider 트레이트를 기반으로 한 컴포저블 아키텍처를 사용합니다. 개발자는 이 트레이트를 구현하여 특정 스토리지 시스템(예: 키-값 저장소 또는 B트리)이 벡터와 인접 리스트를 어떻게 저장하고 검색하는지 정의합니다. DiskANN3는 이후 이러한 벡터에 대한 쿼리 및 업데이트를 위한 고수준 API를 제공합니다. 다양한 메모리 계층과 거리 함수를 지원하여 비용과 성능의 균형을 맞춥니다.
대상 사용자
기존 데이터베이스 엔진에 고성능 벡터 검색 기능을 통합하거나, 새로운 확장 가능한 벡터 저장소를 구축해야 하는 데이터베이스 개발자 및 시스템 아키텍트를 위한 것입니다.
주요 특징
- 실시간 업데이트: 병합이나 재구성 없이도 긴 업데이트 스트림 중에도 안정적인 리콜을 유지합니다.
- 유연한 스토리지: 메모리 내, 디스크 기반, Garnet(K-V 저장소), Bf-tree 구현 예시 제공.
- 고급 검색: 페이지네이션, 범위 필터, 다양성 인식 top-k 검색 지원.
- 하드웨어 최적화: x86 및 aarch64 아키텍처 모두에 대해 거리 함수와 양자화기 구현.
- 속성 필터링: 벡터 검색과 함께 조건 필터 처리를 위한 훅 제공.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트