[논문 리뷰] SPANN: Highly-efficient Billion-scale Approximate Nearest Neighbor Search
SPANN은 메모리와 디스크를 융합한 근사 최근접 이웃 검색 시스템을 제안하며, 메모리에는 오직 중심점만 저장하고 대용량의 포스팅 리스트는 디스크에 저장함으로써 고속 저지연과 높은 리콜을 달성한다. 계층적 군집화와 쿼리 인식형 절단 기법을 사용하여, 빌리언 스케일 데이터셋에서 메모리 32GB로도 DiskANN 대비 2배 빠른 속도로 90% 리콜을 달성하며, 리콜@1과 리콜@10에 대해 밀리초 이내의 지연 시간을 구현한다.
The in-memory algorithms for approximate nearest neighbor search (ANNS) have achieved great success for fast high-recall search, but are extremely expensive when handling very large scale database. Thus, there is an increasing request for the hybrid ANNS solutions with small memory and inexpensive solid-state drive (SSD). In this paper, we present a simple but efficient memory-disk hybrid indexing and search system, named SPANN, that follows the inverted index methodology. It stores the centroid points of the posting lists in the memory and the large posting lists in the disk. We guarantee both disk-access efficiency (low latency) and high recall by effectively reducing the disk-access number and retrieving high-quality posting lists. In the index-building stage, we adopt a hierarchical balanced clustering algorithm to balance the length of posting lists and augment the posting list by adding the points in the closure of the corresponding clusters. In the search stage, we use a query-aware scheme to dynamically prune the access of unnecessary posting lists. Experiment results demonstrate that SPANN is 2$\ imes$ faster than the state-of-the-art ANNS solution DiskANN to reach the same recall quality $90\\%$ with same memory cost in three billion-scale datasets. It can reach $90\\%$ recall@1 and recall@10 in just around one millisecond with only 32GB memory cost. Code is available at: {\\footnotesize\\color{blue}{\\url{https://github.com/microsoft/SPTAG}}}.
연구 동기 및 목표
- 빌리언 스케일 벡터 데이터셋에 대한 인메모리 근사 최근접 이웃 검색(ANNS)의 높은 메모리 비용 문제를 해결한다.
- 최소한의 메모리와 저렴한 SSD를 사용해 대규모 벡터 검색을 지원하는 하이브리드 ANNS 시스템을 개발한다.
- 디스크 I/O를 최소화하고 포스팅 리스트 품질을 향상시켜 저지연과 높은 리콜을 달성한다.
- 작업 분포 균형을 통해 핫스팟을 방지하고 확장성을 보장하는 효율적인 분산 배포를 가능하게 한다.
- 기존의 디스크 기반 ANNS 솔루션인 DiskANN 및 HM-ANN과 비교해 뛰어난 성능과 확장성을 입증한다.
제안 방법
- 벡터를 분할하고 포스팅 리스트 길이를 균형 있게 유지하기 위해 계층적 균형 잡힌 군집화를 사용하여 로드 분포를 향상시키고 디스크 액세스를 줄인다.
- 클러스터의 폐쇄성에 속하는 점들을 포스팅 리스트에 추가함으로써 메모리 비용을 증가시키지 않고도 검색 품질을 향상시킨다.
- 메모리에는 오직 중심점만 저장하고 전체 포스팅 리스트는 디스크에 저장하여 메모리 프로파일을 최소화하면서도 높은 리콜을 유지한다.
- 검색 중에 쿼리 인식형 동적 절단 기법을 적용하여 디스크 액세스가 필요한 포스팅 리스트 수를 줄이고 I/O 및 CPU 비용을 제한한다.
- 데이터 크기와 이력 기반 쿼리 액세스 패턴을 고려해 최적의 박스 패킹 알고리즘을 적용하여 기계 간의 데이터 분포를 균형 있게 유지하고 분산 환경에서의 핫스팟을 방지한다.
- 각 기계가 인덱스의 파티션을 보유하는 분산 아키텍처를 사용하며, 쿼리 인식형 절단 기반으로 쿼리는 오직 가장 관련성이 높은 기계들로만 라우팅된다.
실험 결과
연구 질문
- RQ1간단한 인verted 인덱스 기반 접근 방식이 최소한의 메모리 사용으로 빌리언 스케일 근사 최근접 이웃 검색에서 최신 기술 수준의 성능을 달성할 수 있는가?
- RQ2메모리-디스크 하이브리드 ANNS 시스템에서 높은 리콜을 유지하면서도 디스크 I/O를 최소화할 수 있는가?
- RQ3메모리 비용 증가 없이 포스팅 리스트 품질을 효과적으로 향상시킬 수 있는 기법은 무엇인가?
- RQ4쿼리 인식형 동적 절단 기법이 각 검색에서 관여하는 기계 수를 크게 줄여 지연 시간과 확장성에 기여할 수 있는가?
- RQ5분산 ANNS 시스템에서 기계 간 작업 분포를 어떻게 균형 있게 유지할 수 있을까? 이를 통해 핫스팟을 방지하고 선형 확장성을 확보할 수 있는가?
주요 결과
- SPANN은 동일한 메모리 예산으로 빌리언 스케일 데이터셋 3종에서 DiskANN 대비 90% 리콜 기준으로 2배 더 빠른 검색 성능을 달성한다.
- SPANN은 오직 32GB 메모리로 리콜@1과 리콜@10에서 약 1밀리초 이내의 지연 시간을 달성하며, 기준 대비 메모리 비용을 90% 감소시켰다.
- 다중 제약 조건 군집화와 쿼리 인식형 절단 기법을 통해 쿼리당 평균으로 디스패치되는 기계 수를 랜덤 파티션의 32대에서 6.3대로 줄여 I/O 및 CPU 비용을 80.3% 절감했다.
- SPANN은 분산 환경에서 강력한 확장성을 보이며, 쿼리 액세스와 데이터 크기가 기계 간에 균일하게 분포되어 자원 추가에 따라 선형 확장이 가능하다.
- 포스팅 리스트 확장 시 폐쇄성 할당을 적용함으로써 검색 품질이 향상되어 메모리 프로파일 증가 없이도 더 높은 리콜을 달성했다.
- SPANN은 마이크로소프트 빙에서 수백 빌리언 건의 벡터 검색을 지원하기 위해 성공적으로 배포되어 실세계 환경에서의 효율성과 견고성을 입증했다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.