En esta página, se describe la búsqueda vectorial y cómo funciona en Spanner.
La búsqueda de vectores es una capacidad integrada de alto rendimiento que permite la búsqueda semántica y la coincidencia de similitud en datos de vectores de alta dimensión. Al almacenar y, luego, indexar las incorporaciones de vectores directamente en tu base de datos transaccional, Spanner elimina la necesidad de bases de datos de vectores separadas y canalizaciones de ETL complejas.
Conceptos clave
En esta sección, se presentan los siguientes conceptos clave de la búsqueda de vectores:
- Embeddings de vector
- Métodos de búsqueda (KNN y ANN)
- Funciones de distancia
Embeddings de vector
Los embeddings de vectores son representaciones numéricas de alta dimensión de datos no estructurados. Se generan a partir de los datos no estructurados con modelos de aprendizaje automático. Por ejemplo, puedes usar la API de embeddings de texto de Vertex AI para generar, almacenar y actualizar embeddings de texto para los datos almacenados en Spanner.
Métodos de búsqueda
Spanner admite dos métodos para encontrar vectores similares:
K-vecinos más cercanos (KNN): Realiza una búsqueda exacta calculando la distancia entre la consulta y cada vector del conjunto de datos. Proporciona una recuperación más precisa, pero es costoso en términos de procesamiento para conjuntos de datos masivos.
Vecino más cercano aproximado (ANN): Usa un índice de vectores (basado en el algoritmo ScaNN de Google) para encontrar coincidencias rápidamente en una gran cantidad de vectores. Intercambia una pequeña cantidad de precisión (recuperación) por ganancias en velocidad y escalabilidad.
Funciones clave
Escalabilidad: Admite miles de millones de vectores para la búsqueda de ANN sin particionar o billones de vectores para cargas de trabajo de KNN particionadas.
Base de datos y motor de IA unificados: Usa la función GoogleSQL
ML.PREDICTo PostgreSQLspanner.ML_PREDICT_ROWpara generar embeddings a partir de modelos de Vertex AI directamente en tu flujo de consultas.Filtrado intercalado: Combina de manera eficiente la búsqueda de vectores con filtros de metadatos estructurados (por ejemplo, "Busca imágenes similares en las que categoría = "zapatos" y precio < 100") sin perder rendimiento.
Integración de LangChain: La compatibilidad integrada con LangChain te permite compilar aplicaciones de generación mejorada por recuperación (RAG) con Spanner como almacén de vectores.
Capacidades de búsqueda híbrida
La búsqueda de vectores es más potente cuando se combina con otras funciones de datos de Spanner:
| Combinación | Beneficio |
|---|---|
| Búsqueda de vectores con filtrado de SQL | Combinar de manera eficiente la búsqueda vectorial con filtros (por ejemplo, "Buscar imágenes similares en las que categoría = "zapatos" y precio < 100"). |
| Búsqueda de vectores y búsqueda de texto completo | Combina la similitud semántica con la precisión de las palabras clave usando la fusión de clasificación recíproca (RRF) para obtener una relevancia de búsqueda superior. |
| Vector y gráfico | Usa la búsqueda de vectores para encontrar puntos de entrada (nodos) relevantes en un gráfico de propiedades y, luego, recorre relaciones complejas. |
¿Qué sigue?
- Obtén más información sobre Spanner AI.
- Obtén más información para obtener embeddings de texto de Vertex AI.
- Obtén más información para realizar la búsqueda de k-vecino más cercano (KNN).
- Obtén más información para realizar búsquedas de vecinos más cercanos aproximados (ANN).