パラメータのチューニング
次のインデックス パラメータとデータベース フラグを組み合わせて使用することで、再現率と QPS の適切なバランスを見つけることができます。
チューニング パラメータ | 説明 | オプション タイプ |
---|---|---|
max_num_levels |
K 平均法クラスタリング ツリーのセントロイド レベルの最大数。
|
インデックスの作成 (省略可) |
num_leaves |
このインデックスに適用するパーティションの数。インデックスの作成時に適用するパーティションの数は、インデックスのパフォーマンスに影響します。設定された数のベクトルのパーティションを増やすと、よりきめ細かいインデックスが作成され、再現率とクエリ パフォーマンスが向上します。ただし、インデックスの作成時間が長くなります。 3 レベルのツリーは 2 レベルのツリーよりも構築が速いため、3 レベルのツリー インデックスを作成するときに num_leaves_value を増やすと、パフォーマンスを向上させることができます。
|
インデックスの作成 (必須) |
quantizer |
K 平均法ツリーに使用する量子化ツールのタイプ。デフォルト値は SQ8 に設定されています。これにより、再現率の損失を最小限に抑えながら(通常は 1~2% 未満)、クエリのパフォーマンスを向上させることができます。再現率が 99% 以上必要な場合は、 FLAT に設定します。 |
インデックスの作成 (省略可) |
scann.enable_inline_filtering |
データをクエリし、ベクトル類似性検索オペレーション内で直接フィルタを適用するインライン フィルタリングをサポートします。これらのベクトル類似性クエリは、同じデータベース テーブルでフィルタを使用し、最近傍の識別のための距離を計算しながらフィルタ評価を完了します。このオプションはデフォルトでは無効になっています。 インライン フィルタリングを有効にするには、このパラメータを true に設定します。パフォーマンスの低下が確認された場合は、false に設定します。このオプションはプレビュー版で使用できます。 |
クエリ ランタイム (省略可) |
scann.enable_pca |
主成分分析(PCA)を有効にします。これは、可能な場合はエンベディングのサイズを自動的に縮小するために使用されるディメンションの削減手法です。このオプションはデフォルトで有効になっています。 再現率の低下が観察された場合は、 false に設定します。 |
インデックスの作成 (省略可) |
scann.num_leaves_to_search |
このデータベース フラグは、検索するリーフまたはパーティションの絶対数を制御します。これにより、再現率と QPS をトレードオフできます。デフォルト値は、num_leaves で設定された値の 1% です。値を大きくすると再現率は高くなりますが、QPS は低くなります。同様に、値を小さくすると、再現率は低下しますが、QPS は高くなります。 |
クエリ ランタイム (省略可) |
scann.pre_reordering_num_neighbors |
データベース フラグを設定すると、最初の検索で候補のセットが特定された後の並べ替えステージで検討する近傍候補の数を指定できます。このパラメータは、クエリで返される近傍の数よりも大きい値に設定します。 値を大きくすると再現率は高くなりますが、QPS は低くなります。並べ替えを無効にするには、この値を 0 に設定します。インデックスの作成時に PCA が有効になっていない場合、デフォルトは 0 です。それ以外の場合は、デフォルトは 50 x K です。ここで、K はクエリで指定された LIMIT です。 |
クエリ ランタイム (省略可) |
scann.num_search_threads |
マルチスレッド検索の検索スレッド数。これにより、レイテンシの影響を受けやすいアプリケーションで ScaNN ANN 検索に複数のスレッドを使用することで、単一クエリのレイテンシを短縮できます。データベースがすでに CPU バウンドになっている場合、この設定では単一クエリのレイテンシは改善されません。デフォルト値は 2 です。 |
クエリ ランタイム (省略可) |