パラメータの調整
次のインデックス パラメータとデータベース フラグを組み合わせて使用することで、再現率と QPS の適切なバランスを見つけることができます。
チューニング パラメータ | 説明 | オプション タイプ |
---|---|---|
max_num_levels |
K 平均法クラスタリング ツリーのセントロイド レベルの最大数。
|
インデックスの作成 (省略可) |
num_leaves |
このインデックスに適用するパーティションの数。インデックスの作成時に適用するパーティションの数は、インデックスのパフォーマンスに影響します。設定された数のベクトルのパーティションを増やすと、よりきめ細かいインデックスが作成され、再現率とクエリ パフォーマンスが向上します。ただし、インデックスの作成時間が長くなります。 3 レベルのツリーは 2 レベルのツリーよりも構築が速いため、3 レベルのツリー インデックスを作成するときに num_leaves_value を増やすと、パフォーマンスを向上させることができます。
|
インデックスの作成 (必須) |
quantizer |
K 平均法ツリーに使用する量子化ツールのタイプ。デフォルト値は SQ8 に設定されています。これにより、再現率の損失を最小限に抑えながら(通常は 1~2% 未満)、クエリのパフォーマンスを向上させることができます。再現率が 99% 以上必要な場合は、 FLAT に設定します。 |
インデックスの作成 (省略可) |
scann.enable_pca |
主成分分析(PCA)を有効にします。これは、可能な場合はエンベディングのサイズを自動的に縮小するために使用されるディメンションの削減手法です。このオプションはデフォルトで有効になっています。 再現率の低下が観察された場合は、 false に設定します。 |
インデックスの作成 (省略可) |
scann.pct_leaves_to_search (Preview) |
このデータベース フラグを使用すると、検索するリーフまたはパーティションの数を自動的に管理できます(/alloydb/omni/containers/16.3.0/docs/ai/maintain-vector-indexes#manage-leave-to-search-split-partitions)。この値は、現在のパーティション数に設定します。たとえば、現在のパーティション数の 1% を検索するには、この値を 1 に設定します。このパラメータは、 0 ~100 の任意の値に設定できます。デフォルト値は 0 です。この値を指定すると、このパラメータは無効になり、「scann.num_leaves_to_search」を使用して検索するリーフ数が計算されます。デフォルトでは、このパラメータは無効になっています。 |
クエリ ランタイム (省略可) |
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 です。 |
クエリ ランタイム (省略可) |