[論文レビュー] FreshDiskANN: A Fast and Accurate Graph-Based ANN Index for Streaming Similarity Search
FreshDiskANNは、SSDを搭載した1台のコンsumer機器で、数十億点のデータセットに対して挿入・削除・検索をリアルタイムで行える、グラフベースの近似最近傍(ANN)インデックスである。FreshVamanaと呼ばれる動的グラフ更新アルゴリズムと、I/Oおよび書き込みアンプリフィケーションを最小限に抑える二段階のマージ手順であるStreamingMergeを導入することで、定期的な再構築と比較してインデックス保守コストを5〜10倍低減し、高い性能(5-再現率95%以上)と低レイテンシーを実現する。
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が作成し、人間の編集者が確認しました。