milvus-logo
LFAI
フロントページへ
  • よくあるご質問

パフォーマンスFAQ

IVFインデックスのnlistnprobe の設定方法を教えてください。

nlist の設定はシナリオによって異なります。経験則として、nlist の推奨値は4 × sqrt(n) で、n はセグメント内のエンティティの総数です。

各セグメントのサイズはdatacoord.segment.maxSize パラメータによって決定され、デフォルトでは 512 MB に設定されている。セグメント内のエンティティの総数 n は、datacoord.segment.maxSize を各エンティティのサイズで割ることで推定できる。

nprobe の設定は、データセットとシナリオに固有であり、精度とクエリパフォーマンスのトレードオフを伴います。実験を繰り返して理想的な値を見つけることをお勧めします。

以下のグラフは、sift50mデータセットとIVF_SQ8インデックスで実行したテストの結果です。nlist/nprobe の異なるペアのリコールとクエリのパフォーマンスを比較しています。

Accuracy test 精度テスト Performance testパフォーマンステスト

なぜ小さいデータセットではクエリに時間がかかるのか?

クエリー操作はセグメントに対して行われる。インデックスがあると、セグメントへのクエリにかかる時間が短縮される。セグメントがインデックス化されていない場合、Milvusは生データに対して総当り検索を行うため、クエリ時間が大幅に増加します。

そのため、インデックスが作成されていない小さなデータセット(コレクション)に対するクエリには通常時間がかかる。これはセグメントのサイズがrootCoord.minSegmentSizeToEnableindex で設定されたインデックス構築のしきい値に達していないためである。create_index() を呼び出すと、Milvusは閾値に達しているがまだ自動的にインデックスが作成されていないセグメントに強制的にインデックスを作成し、クエリのパフォーマンスを大幅に向上させることができます。

CPU使用率に影響を与える要因は何ですか?

Milvusがインデックスを構築したり、クエリを実行したりすると、CPU使用率が増加します。一般的に、インデックス構築はシングルスレッドで実行されるAnnoyを使用する場合を除き、CPUを集中的に使用します。

クエリを実行する場合、CPU使用率はnqnprobe の影響を受けます。nqnprobe が小さい場合、同時実行性は低く、CPU使用率は低く保たれる。

データの挿入と検索を同時に行うと、クエリのパフォーマンスに影響しますか?

挿入操作に CPU が集中することはありません。しかし、新しいセグメントがインデックス構築のしきい値に達していない可能性があるため、milvusは総当たり検索に頼り、クエリ性能に大きな影響を与えます。

rootcoord.minSegmentSizeToEnableIndex パラメータはセグメントのインデックス構築しきい値を決定し、デフォルトでは1024行に設定されています。詳細はシステム構成を参照してください。

VARCHARフィールドにインデックスを作成すると削除速度が向上しますか?

VARCHARフィールドにインデックスを作成すると、"Delete By Expression "操作を高速化できますが、特定の条件下でのみ可能です:

  • INVERTEDインデックス:INVERTED インデックス:このインデックスは、プライマリ・キーでない VARCHAR フィールドのIN または== 式に役立ちます。
  • トライ・インデックス:このインデックスは、主キーでないVARCHARフィールドに対する接頭辞クエリ(例えば、LIKE prefix% )に役立ちます。

しかし、VARCHARフィールドにインデックスを付けてもスピードは上がりません:

  • IDによる削除:VARCHARフィールドが主キーの場合。
  • 関連性のない式:VARCHARフィールドが削除式の一部でない場合。

まだ質問がありますか?

できます:

  • GitHubでMilvusをチェックしてください。気軽に質問したり、アイデアを共有したり、他の人を助けたりしてください。
  • Slackチャンネルに参加して、オープンソースコミュニティに参加してください。

翻訳DeepL

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
フィードバック

このページは役に立ちましたか ?