[논문 리뷰] FreshDiskANN: A Fast and Accurate Graph-Based ANN Index for Streaming Similarity Search
FreshDiskANN는 SSD 스토리지가 탑재된 단일 커머셜 머신을 사용하여 100억 개 포인트 데이터셋에서 실시간 업데이트(삽입, 삭제, 검색)를 가능하게 하는 새로운 그래프 기반 근사 최근접 이웃(ANN) 인덱스이다. FreshVamana라는 동적 그래프 업데이트 알고리즘과 I/O 및 왤쓰 암플리피케이션을 최소화하는 두 번의 통합 절차인 StreamingMerge를 도입함으로써 고성능(5-recall@5 기준 95% 이상)과 저지연을 달성하여 주기적 재빌드 대비 인덱스 유지비용을 5–10배 감소시킨다.
Approximate nearest neighbor search (ANNS) is a fundamental building block in information retrieval with graph-based indices being the current state-of-the-art and widely used in the industry. Recent advances in graph-based indices have made it possible to index and search billion-point datasets with high recall and millisecond-level latency on a single commodity machine with an SSD. However, existing graph algorithms for ANNS support only static indices that cannot reflect real-time changes to the corpus required by many key real-world scenarios (e.g. index of sentences in documents, email, or a news index). To overcome this drawback, the current industry practice for manifesting updates into such indices is to periodically re-build these indices, which can be prohibitively expensive. In this paper, we present the first graph-based ANNS index that reflects corpus updates into the index in real-time without compromising on search performance. Using update rules for this index, we design FreshDiskANN, a system that can index over a billion points on a workstation with an SSD and limited memory, and support thousands of concurrent real-time inserts, deletes and searches per second each, while retaining $>95\%$ 5-recall@5. This represents a 5-10x reduction in the cost of maintaining freshness in indices when compared to existing methods.
연구 동기 및 목표
- 그래프 기반 근사 최근접 이웃(ANN) 검색 시스템에서 실시간 동적 업데이트에 대한 효율적인 지원이 부족한 문제를 해결하기 위해.
- 커머셜 하드웨어를 사용하여 100억 포인트 데이터셋에서 고처리량, 저지연 삽입, 삭제, 검색을 가능하게 하기 위해.
- 업데이트 중 I/O 및 왤쓰 암플리피케이션을 최소화하면서도 높은 검색 정확도(≥5-recall@5 기준 95%)를 유지하기 위해.
- 주기적 재빌드를 대체하여 증분적이고 스트리밍 방식의 업데이트를 통해 인덱스 신선도 유지 비용을 줄이기 위해.
- 정지 일致성(queiscent consistency)을 지원하고 분산을 통해 트리리언 포인트 인덱스까지 효율적으로 확장 가능한 시스템을 설계하기 위해.
제안 방법
- 지역화된 업데이트 규칙을 사용하여 실시간 삽입 및 삭제 중에도 인덱스 품질을 유지하는 그래프 기반 ANN 알고리즘인 FreshVamana를 도입한다.
- 최소한의 I/O 및 왤쓰 암플리피케이션으로 주요 인덱스에 업데이트를 증분적으로 통합하기 위해 두 번의 통합 단계를 거치는 StreamingMerge 절차를 적용한다.
- 랜덤 액세스와 검색 및 업데이트 단계에서의 효율적 탐색을 지원하는 지속적이고 SSD 기반의 인덱스 구조(LTI)를 사용한다.
- 높은 리콜을 달성하기 위해 후보 목록 크기를 100(𝐿𝑠=100)으로 설정하여, 검색당 평균 120회의 랜덤 4KB I/O와 약 8,000회의 거리 비교만을 요구한다.
- 쿼리 스레드 수에 따라 검색 처리량이 거의 선형적으로 증가하며, 64개의 스레드를 사용할 경우 평균 지연 10ms, 99프cntile 지연 12ms 이내로 초당 약 6,500건의 쿼리를 처리할 수 있다.
- 배경에서 업데이트를 처리하기 위해 10–40개의 머지 스레드를 사용하며, SSD I/O 병목 현상으로 인해 패치 및 삽입 단계에서 선형보다 느린 스케일링을 보인다.
실험 결과
연구 질문
- RQ1그래프 기반 ANN 인덱스는 검색 정확도나 지연을 희생시키지 않고 실시간 삽입 및 삭제를 지원할 수 있는가?
- RQ2큰 크기의 SSD 기반 인덱스에 업데이트 작업을 최소한의 I/O와 왤쓰 암플리피케이션으로 통합할 수 있는 방법은 무엇인가?
- RQ3완전한 인덱스 재빌드 대비 증분 업데이트의 성능 및 비용 부담은 얼마나 되는가?
- RQ4단일 커머셜 머신이 수천 건의 동시 업데이트 및 검색을 처리하면서 100억 포인트 인덱스를 유지할 수 있는가?
- RQ5지속적인 데이터 변화 과정에서 시스템은 정지 일치성과 높은 리콜을 어떻게 유지할 수 있는가?
주요 결과
- FreshDiskANN는 실시간 워크로드 하에서 100억 포인트 데이터셋에서 5-recall@5 기준 95% 이상의 성능을 달성하며, 검색 지연은 밀리초 이내이다.
- 64개의 검색 스레드를 사용할 경우 시스템은 초당 약 6,500건의 쿼리를 처리하며 평균 지연은 10ms 이하, 99프cntile 지연은 12ms 이내이다.
- 40개의 스레드를 사용하여 8억 포인트 인덱스에 3,000만 건의 삽입 및 삭제를 처리하는 데 약 16,000초가 소요되었으며, 이는 인덱스를 처음부터 재빌드하는 데 필요한 시간의 약 8.5%에 불과하다.
- 업데이트당 I/O 비용은 약 10KB에 불과하여, 중간 수준의 리콜을 위해 약 15%의 데이터셋을 스캔하는 SRS와 같은 시스템에 비해 훨씬 낮다.
- 검색 처리량은 스레드 수에 따라 거의 선형적으로 증가하며, 더 적은 수의 머지 스레드를 사용할 경우 SSD 경쟁이 감소하여 더 예측 가능한 지연을 기록한다.
- 주기적 재빌드 대비 인덱스 신선도 유지를 위한 하드웨어 비용을 5–10배 감소시켜, 100억 포인트당 단일 머신 배포가 가능하게 한다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.