Descripción general del rendimiento de las consultas de vectores de ScaNN

Selecciona una versión de la documentación:

En esta página, se proporciona una descripción general conceptual sobre cómo mejorar el rendimiento de las búsquedas de vectores con el índice de ScaNN.

El índice de ScaNN usa la indexación basada en la cuantificación de árboles. En las técnicas de cuantificación basadas en árboles, los índices aprenden un árbol de búsqueda junto con una función de cuantificación (o hash). Cuando ejecutas una búsqueda, el árbol de búsqueda se usa para reducir el espacio de búsqueda, mientras que la cuantizació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 búsqueda y los vectores de la base de datos.

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

Una característica común de la generación actual de modelos de incorporación de alta dimensión es que pueden retener gran parte de la información con una dimensionalidad mucho menor. Por ejemplo, se puede retener el 90% de la información con solo el 20% de las dimensiones de la incorporación. Para ayudar a acelerar esos conjuntos de datos, AlloyDB ScaNN realizará automáticamente la reducción de dimensiones con el análisis de componentes principales (consulta scann.enable_pca below) en los vectores indexados, lo que reduce aún más el uso de CPU y memoria para la búsqueda de vectores. Dado que la reducción de dimensiones aún causa una pérdida menor de recuperación en el índice, AlloyDB ScaNN compensa esto a través de un paso de clasificación inicial con una mayor cantidad de candidatos de vectores con PCA del índice y, luego, los vuelve a clasificar según los vectores originales (consulta scann.pre_reordering_num_neighbors).

¿Qué sigue?