Para obtener un instructivo paso a paso sobre cómo implementar la búsqueda de vectores de principio a fin, consulta la guía para realizar una búsqueda de vectores.
Parámetros de ajuste
Los siguientes parámetros de índice y consulta se usan para encontrar el equilibrio adecuado de recuperación y consultas por segundo (QPS).
| Parámetro de ajuste | Descripción | Tipo de opción |
|---|---|---|
mode |
Define el índice de ScaNN como un índice ajustado automáticamente o de forma manual. Las opciones disponibles son las siguientes:
Para obtener más información, consulta Crea un índice de ScaNN. |
Creación de índices (opcional) |
max_num_levels |
Cantidad máxima de niveles de centroides del árbol de agrupamiento en clústeres con el modelo K-means. Para obtener
orientación sobre cómo establecer este valor, consulta
Ajusta un índice de ScaNN.
Los valores disponibles son los siguientes:
Si estableces |
Creación de índices (opcional) |
num_leaves |
Cantidad de particiones que se aplicarán a este índice. El valor máximo es
30000000. Para obtener más información sobre cómo elegir este valor, consulta
Ajusta un índice de ScaNN
y
Prácticas recomendadas para ajustar índices de ScaNN.
|
Creación de índices (obligatorio para los índices ajustados manualmente ) |
quantizer |
El tipo de cuantizador que deseas usar para el árbol de K-means. El valor predeterminado se establece en SQ8, lo que proporciona un mejor rendimiento de la consulta con una pérdida mínima de recuperación (por lo general, menos del 1 o 2%).Establécelo en FLAT si se requiere una recuperación del 99% o más. |
Creación de índices (opcional) |
scann.enable_pca |
Habilita el análisis de componentes principales (PCA), que es una técnica de reducción de dimensiones que se usa para reducir automáticamente
el tamaño del embedding cuando es posible. Esta opción está habilitada de forma predeterminada. Establécela en false si observas un deterioro en la recuperación. |
Creación de índices (opcional) |
auto_maintenance |
Mantén automáticamente un índice de ScaNN para que, a medida que crezca tu conjunto de datos, AlloyDB Omni analice y actualice los centroides, y divida las particiones grandes de valores atípicos. Esto mejora automáticamente las QPS y los resultados de la búsqueda. Para obtener más información, consulta Mantén índices automáticamente. |
Creación de índices (opcional) |
scann.pct_leaves_to_search |
Administra automáticamente la cantidad de particiones que busca un índice vectorial. Para obtener más información, consulta Porcentaje de búsqueda de particiones. | |
scann.num_leaves_to_search
|
Cantidad absoluta de particiones para buscar. Esto te permite compensar la recuperación de la consulta y las QPS. El valor predeterminado es el 1% de
Los valores más altos dan como resultado una mejor recuperación de la consulta, pero QPS más bajas. Del mismo modo, los valores más bajos dan como resultado una peor recuperación de la consulta, pero QPS más altas. |
Tiempo de ejecución de la consulta (opcional) |
scann.pre_reordering_num_neighbors
|
Especifica la cantidad de vecinos candidatos que se deben considerar durante las etapas de reordenamiento una vez que la búsqueda inicial identifica un conjunto de candidatos. Establece este parámetro en un valor superior a la cantidad de vecinos que deseas que muestre la consulta. Los valores más altos dan como resultado una mejor recuperación, pero QPS más bajas.
El valor predeterminado es |
Tiempo de ejecución de la consulta (opcional) |
scann.num_search_threads |
Es la cantidad de subprocesos de búsqueda para la búsqueda de varios subprocesos. Esto puede ayudar a reducir la latencia de una sola consulta mediante el uso de más de un subproceso para la búsqueda de ScaNN ANN en aplicaciones sensibles a la latencia. Esta configuración no mejora la latencia de una sola consulta si la base de datos ya está vinculada a la CPU. El valor predeterminado es 2. |
Tiempo de ejecución de la consulta (opcional) |
|
Cuando se establece en relaxed_order, la marca de la base de datos aborda la recuperación insuficiente. La recuperación insuficiente puede ocurrir cuando la recuperación observada de una consulta cae por debajo de la recuperación objetivo, lo que es más probable cuando se usan filtros. Esta configuración ayuda a lograr la recuperación objetivo, ya que permite que el análisis de vectores continúe buscando más allá del límite de num_leaves_to_search hasta que se encuentre una cantidad suficiente de resultados. |
Tiempo de ejecución de la consulta (opcional) |
|
Esta marca de base de datos establece un límite superior para el porcentaje de hojas totales que se pueden visitar para las consultas que ejecutas con scann.satisfy_limit habilitado. Este es el único GUC de límite superior disponible y se aplica a los modos de búsqueda automática y manual. Evita que la búsqueda se exceda, lo que podría degradar significativamente el rendimiento. Esto se aplica cuando scann.satisfy_limit está activado.Puedes establecer este parámetro en cualquier valor entre 0 y 100. El valor predeterminado es 15%. Este valor predeterminado se basa en el argumento de que, si una búsqueda necesita examinar más del 15% de las hojas, es probable que el filtro sea lo suficientemente selectivo como para que la búsqueda de vecinos más cercanos aproximados (ANN) no proporcione un beneficio, lo que hace que el prefiltrado de vecinos más cercanos (KNN) sea una opción más adecuada. |
Tiempo de ejecución de la consulta (opcional) |