Referencia del índice ScaNN de AlloyDB Omni

Selecciona una versión de la documentación:

En esta página, se proporciona una referencia detallada de los parámetros de ajuste disponibles para los índices de Scalable Nearest Neighbors (ScaNN) en AlloyDB Omni.

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:
  • AUTO: Índice ajustado automáticamente
  • MANUAL: Índice ajustado manualmente

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:

  • 1: Índice de ScaNN de dos niveles
  • 2: Índice de ScaNN de tres niveles
  • 3: Índice de ScaNN de cuatro niveles (vista previa)

Si estableces max_num_levels en 3, también debes establecer scann.max_allowed_num_levels en 3. Para obtener más información, consulta Prácticas recomendadas para ajustar índices de ScaNN.

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)

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.

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 num_leaves.

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 0, lo que inhabilita el reordenamiento. Si el PCA está habilitado durante la creación del índice, el valor predeterminado es 50 x K, donde K es el límite especificado en la consulta.

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)

scann.satisfy_limit (vista previa)

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)

¿Qué sigue?