En esta página, se describen las estrategias de búsqueda de vectores de AlloyDB AI y se explica cuándo usar cada una de ellas. De forma predeterminada, AlloyDB usa la búsqueda de k-vecinos más cercanos (KNN) para encontrar vectores similares a una consulta. Los índices vectoriales implementan una estrategia de búsqueda llamada vecino más cercano aproximado (ANN). Cuando creas un índice de vectores, AlloyDB AI usa ANN, que proporciona un mejor rendimiento que KNN. Ten en cuenta que, cuando selecciones un índice vectorial, deberás equilibrar la latencia de la búsqueda y la recuperación.
La recuperación mide la eficacia con la que una búsqueda recupera todos los elementos pertinentes para una consulta determinada. Por ejemplo, imagina que tienes 100 incorporaciones, cada una de las cuales representa una entidad en tu base de datos. Consultas tus embeddings con un vector objetivo y lo limitas a 10 resultados. Una búsqueda de vectores de KNN encuentra los 10 vectores más cercanos exactos con un método de cálculo de fuerza bruta, lo que genera un 100% de recuperación. AlloyDB AI usa este método de forma predeterminada si no se crea ni se elige ningún índice de búsqueda de vectores. Cuando creas un índice de vectores en AlloyDB para PostgreSQL, por lo general, se usa ANN, que puede particionar vectores según la similitud para facilitar una recuperación más rápida. Como resultado, con el método ANN, es posible que los 10 vectores que se devolvieron en el ejemplo anterior no sean exactamente los 10 vectores más cercanos en distancia. Si solo 8 de los 10 vectores recuperados son los más cercanos en el espacio a tu vector de consulta, tu recuperación será del 80%.
La latencia de la búsqueda define la rapidez con la que se generan los resultados de la búsqueda. Por ejemplo, la latencia se calcula en función del tiempo que se dedica a una búsqueda para devolver los vectores después de que envías una consulta.
Elige tu estrategia de búsqueda
Cuando realices una búsqueda de vectores en AlloyDB, elige una de las siguientes estrategias de búsqueda:
Estrategia de búsqueda | Descripción | Casos de uso |
K-vecinos más cercanos (KNN) |
Es un algoritmo que encuentra los k vecinos más cercanos a un punto de datos de consulta determinado. Cuando realizas una búsqueda de vectores sin crear un índice, se realiza una búsqueda de KNN de forma predeterminada. Para mejorar aún más el rendimiento de la búsqueda de KNN, agrega tu columna de incorporación y otras columnas relacionadas con tu búsqueda al almacén de columnas en el motor columnar. Puedes agregar las columnas de forma manual o agregar las columnas con la columnarización automática. |
|
Vecinos más cercanos aproximados (ANN) | Es un algoritmo que encuentra aproximadamente los puntos de datos más cercanos. La RNA divide los datos de los clientes existentes en grupos pequeños según las similitudes. |
|
Google recomienda que crees un índice de vectores para optimizar el rendimiento de tus búsquedas de vectores. Para obtener más información sobre cómo se usa el índice de ANN para las búsquedas de similitud, consulta Crea índices con ScaNN.
Para acelerar la búsqueda de KNN filtrada, usa el motor de columnas.