Vista general del rendimiento de las consultas de vectores de ScaNN

Selecciona una versión de la documentación:

En esta página se ofrece una descripción general conceptual sobre cómo mejorar el rendimiento de las consultas vectoriales mediante el índice de vecinos más cercanos escalable (ScaNN) de AlloyDB AI. Para obtener más información, consulta Crear índices y vectores de consulta.

El índice ScaNN usa la indexación basada en la cuantización de árboles, en la que los índices aprenden un árbol de búsqueda junto con una función de cuantización (o de hashing). Cuando ejecutas una consulta, el árbol de búsqueda se usa para acotar el espacio de búsqueda, mientras que la cuantificación se usa para comprimir el tamaño del índice. Esta poda acelera la puntuación de la similitud (es decir, la distancia) entre el vector de consulta y los vectores de la base de datos.

Para conseguir una tasa de consultas por segundo (CPS) alta y una alta recuperación con tus consultas de vecinos más cercanos, debes particionar el árbol de tu índice de ScaNN de la forma más adecuada para tus datos y tus consultas.

Los modelos de inserción de alta dimensión pueden conservar gran parte de la información con una dimensionalidad mucho menor. Por ejemplo, puedes conservar el 90% de la información con solo el 20% de las dimensiones de la inserción. Para acelerar este tipo de conjuntos de datos, el índice ScaNN de la IA de AlloyDB realiza automáticamente una reducción de dimensiones mediante el análisis de componentes principales (PCA) en los vectores indexados, lo que reduce aún más el uso de CPU y memoria en la búsqueda de vectores. Para obtener más información, consulta scann.enable_pca.

Como la reducción de dimensiones provoca una pequeña pérdida de memoria en el índice, el índice ScaNN de IA de AlloyDB compensa esta pérdida realizando primero un paso de clasificación con un mayor número de candidatos de vectores de PCA del índice. A continuación, ScaNN vuelve a clasificar los candidatos de vectores de PCA por los vectores originales. Para obtener más información, consulta scann.pre_reordering_num_neighbors.

Siguientes pasos