El índice de 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 hash). Cuando ejecutas una consulta, 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 reducción acelera la puntuación de la similitud, en otras palabras, la distancia, 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.
Los modelos de embeddings de alta dimensión pueden retener gran parte de la información en una dimensión mucho menor. Por ejemplo, puedes retener el 90% de la información con solo el 20% de las dimensiones del embedding. Para ayudar a acelerar esos conjuntos de datos,
el índice de ScaNN de AlloyDB AI realiza automáticamente la reducción de dimensiones
con análisis de componentes principales
(PCA) en los vectores indexados, lo que reduce aún más el uso de CPU y memoria para
la búsqueda de vectores. Para obtener más información, consulta
scann.enable_pca.
Debido a que la reducción de dimensiones causa una pérdida menor de recuperación en el índice, el índice de ScaNN de AlloyDB AI compensa la pérdida de recuperación realizando primero un paso de clasificación con una mayor cantidad de candidatos de vectores PCA del índice. Luego, ScaNN vuelve a clasificar los candidatos de vectores PCA por los vectores originales.
Para obtener más información, consulta scann.pre_reordering_num_neighbors.
¿Qué sigue?
- Obtén información sobre las prácticas recomendadas para ajustar los índices de ScaNN.
- Comienza a usar embeddings de vectores con AlloyDB AI.
- Obtén más información sobre el índice de ScaNN de AlloyDB AI.