このページでは、Atlas Vector Searchクエリのパフォーマンスを向上させるための追加の推奨事項を提供します。
十分なメモリを確保する
Hierarchical Navigable Small Worlds は、ベクトルデータがメモリに保持されている場合に効率的に機能します。データ ノードには、ベクトルデータとインデックスを保持するのに十分なRAMがあることを確認する必要があります。データ分離でワークロードを分離ために、個別の 検索ノードを配置することをお勧めします。これにより、ベクトル検索のユースケースでメモリをより効率的に使用できます。
埋め込みモデル | ベクトル次元 | スペース要件 |
---|---|---|
OpenAI | 1536 | 6kb |
Google | 768 | 3kb |
Cohere | 1024 | 1.07kb (for int8 )0.167kb (for int1 ) |
BinData 量子化ベクトル。詳しくは、「量子化されたベクトルの取り込み」をご覧ください。
ファイルシステム キャッシュをウォームアップする
専用の 検索ノード を使用せずにベクトル検索を実行すると、クエリは最初に Hierarchical Navigable Small Worldsグラフを走査するときにディスク上でランダムな検索を実行し、ベクトル値がメモリに読み込まれます。検索ノードを使用する場合、このキャッシュウォーミングは通常、インデックスの再構築が発生しイベントにのみ、通常はスケジュールされたメンテナンスウィンドウ中に発生します。
クエリを実行するときにベクトルのインデックスを作成するのを避ける
ベクトル埋め込みは、インデックス作成中に計算リソースを消費します。その結果、インデックスの作成とクエリの実行を同時に行うと、リソースのボトルネックが発生する可能性があります。最初の同期を実行する場合、テストクエリを発行する前に、検索ノードのCPU使用率が~0%まで低下し、セグメントがマージされてディスクにフラッシュされたことを確実にします。