Descripción general de la búsqueda de vectores de Spanner

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.PREDICT o PostgreSQL spanner.ML_PREDICT_ROW para 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?