Skip to main content
QUICK REVIEW

[論文レビュー] FreshDiskANN: A Fast and Accurate Graph-Based ANN Index for Streaming Similarity Search

Aditi Singh, Suhas Jayaram Subramanya|arXiv (Cornell University)|May 20, 2021
Advanced Image and Video Retrieval Techniques参考文献 46被引用数 13
ひとこと要約

FreshDiskANNは、SSDを搭載した1台のコンsumer機器で、数十億点のデータセットに対して挿入・削除・検索をリアルタイムで行える、グラフベースの近似最近傍(ANN)インデックスである。FreshVamanaと呼ばれる動的グラフ更新アルゴリズムと、I/Oおよび書き込みアンプリフィケーションを最小限に抑える二段階のマージ手順であるStreamingMergeを導入することで、定期的な再構築と比較してインデックス保守コストを5〜10倍低減し、高い性能(5-再現率95%以上)と低レイテンシーを実現する。

ABSTRACT

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)検索システムにおいて、動的更新のための効率的でリアルタイムなサポートが不足しているという問題に対処すること。
  • コンsumerハードウェアを用いて、数十億点のデータセットに対して高スループットで低レイテンシーな挿入・削除・検索を可能にすること。
  • 更新時のI/Oおよび書き込みアンプリフィケーションを最小限に抑えながら、高い検索精度(≥5-再現率95%)を維持すること。
  • 定期的な再構築に代えて、インcrementalでストリーミング更新を行うことで、インデックスの新鮮さのコストを低減すること。
  • 静的整合性を保ちつつ、分散化により1兆点規模のインデックスにも効率的にスケーリングできるシステムを設計すること。

提案手法

  • 局所的な更新ルールを用いて、リアルタイムの挿入・削除においてもインデックス品質を維持するグラフベースのANNアルゴリズム、FreshVamanaを導入する。
  • I/Oおよび書き込みアンプリフィケーションを最小限に抑えるために、更新を段階的にメインインデックスにマージする二段階のStreamingMerge手順を採用する。
  • ランダムアクセスと検索・更新フェーズでの効率的走査を可能にする、永続的でSSD上に保持されるインデックス構造(LTI)を用いる。
  • 100(𝐿𝑠=100)の候補リストサイズを採用することで、1回の検索でたった120回の4KB I/Oと約8,000回の距離比較で高い再現率を達成する。
  • クエリスレッド数にほぼ線形にスケーリングする検索スループットを実現し、64スレッドで平均10msのレイテンシーで約6,500クエリ/秒を達成する。
  • 背景で実行されるマージスレッド(10〜40本)を用いて、リアルタイムで更新を処理する。SSD I/Oボトルネックのため、PatchおよびInsertフェーズでは非線形的スケーリングを示す。

実験結果

リサーチクエスチョン

  • RQ1グラフベースのANNインデックスは、検索精度やレイテンシーを損なわず、リアルタイムでの挿入・削除をサポートできるか?
  • RQ2大規模でSSD上に保持されるインデックスに、I/Oおよび書き込みアンプリフィケーションを最小限に抑えて更新操作をマージする方法は何か?
  • RQ3完全なインデックス再構築と比較して、インクリメンタルな更新のパフォーマンスおよびコストオーバーヘッドはどの程度か?
  • RQ41台のコンsumerマシンが、数千もの同時挿入・削除・検索を伴う数十億点のインデックスを維持できるか?
  • RQ5継続的なデータ変化の過程で、システムは静的整合性と高い再現率をどのように維持できるか?

主な発見

  • FreshDiskANNは、数十億点のデータセットでリアルタイムワークロード下でも5-再現率95%以上を達成し、検索レイテンシーはミリ秒未満である。
  • 64の検索スレッドを用いることで、平均レイテンシーが10ms未塔、99百分位レイテンシーが12ms未塔の範囲で最大6,500クエリ/秒の検索スループットを達成する。
  • StreamingMergeは、40本のスレッドを用いて8億点のインデックスに3,000万件の挿入・削除を約16,000秒で処理し、元のインデックスを再構築するのに要する時間のたった8.5%に抑えられる。
  • 1回の更新あたりのI/Oコストはわずか約10KBであり、中程度の再現率を達成するためのデータセットスキャンを必要とするSRSのようなシステムと比較して顕著に低い。
  • 検索スループットはスレッド数にほぼ線形にスケーリングし、マージスレッド数を減らすことでSSD競合が減少し、より予測可能なレイテンシーが得られる。
  • 定期的な再構築に代えてインクリメンタルでストリーミング更新を採用することで、インデックス新鮮度の保守コストを5〜10倍低減し、10億点あたり1台のマシンでのデプロイメントを可能にする。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。