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

El índice de vecinos más cercanos escalables (ScaNN) en AlloyDB para PostgreSQL acelera las consultas de similitud de vectores y, al mismo tiempo, reduce el uso de memoria a través de la indexación de cuantización de árboles. En las técnicas de cuantificación de árboles, los índices aprenden un árbol de búsqueda junto con una función de cuantificación (o hash). Cuando ejecutas una consulta, el árbol de búsqueda reduce el espacio de búsqueda, mientras que la cuantización comprime el tamaño del índice, lo que acelera la puntuación de similitud entre el vector de consulta 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 de 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 embeddings de alta dimensionalidad 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 del embedding. Para ayudar a acelerar esos conjuntos de datos, ScaNN de AlloyDB AI realiza automáticamente una reducción de dimensiones con el análisis de componentes principales (scann.enable_pca en la referencia del índice de ScaNN) en los vectores indexados, lo que reduce aún más el uso de CPU y memoria para la búsqueda de vectores. Debido a que la reducción de dimensiones aún causa una pérdida menor de recuperación en el índice, ScaNN de AlloyDB AI compensa a través de un paso de clasificación inicial con una mayor cantidad de candidatos de vectores reducidos por PCA del índice y, luego, los vuelve a clasificar por los vectores originales (scann.pre_reordering_num_neighbors en la referencia del índice ScaNN).

¿Qué sigue?