Información general sobre la búsqueda de vectores de AlloyDB AI

AlloyDB AI es una extensión avanzada de AlloyDB para PostgreSQL diseñada para integrar el procesamiento de vectores de alto rendimiento directamente en la base de datos relacional de nivel empresarial. Permite a los desarrolladores crear aplicaciones sofisticadas e inteligentes que comprendan el significado semántico de los datos en formatos estructurados y no estructurados. Al unificar las funciones de SQL con la tecnología de búsqueda vectorial más avanzada, AlloyDB AI proporciona una plataforma única preparada para la IA para la gestión de datos y los flujos de trabajo de generación aumentada por recuperación (RAG), lo que elimina la necesidad de desplegar y gestionar una base de datos de vectores independiente.

Arquitectura y rendimiento principales

AlloyDB usa la extensión pgvector de PostgreSQL para las funciones vectoriales. Es compatible con el popular índice HNSW, así como con el índice Scalable Nearest Neighbors (ScaNN), un algoritmo de búsqueda de vectores vanguardista derivado de años de investigación de la Búsqueda de Google. Esta integración profunda en el entorno de PostgreSQL permite realizar operaciones de alta velocidad compatibles con pgvector y consultas semánticas avanzadas.

Rendimiento del índice ScaNN

El índice ScaNN ofrece ventajas de velocidad significativas con respecto al índice HNSW (Hierarchical Navigable Small Worlds) estándar de PostgreSQL, ya que proporciona operaciones vectoriales rápidas necesarias para cargas de trabajo de IA exigentes:

Operación Mejora del rendimiento (en comparación con el índice HNSW de PostgreSQL estándar) Funciones
Creación de índices Hasta 10 veces más rápido Compilación de índices paralela
Consultas de búsqueda vectorial Hasta 4 veces más rápido Mantenimiento automático de índices
Consultas de búsqueda vectorial filtradas Hasta 10 veces más rápido Observabilidad de nivel empresarial

Filtrado adaptativo y optimización de consultas

El índice ScaNN está totalmente integrado con el planificador de consultas de PostgreSQL para garantizar un rendimiento óptimo en las consultas híbridas que implican tanto similitud de vectores como filtros de metadatos estructurados estándar.

  • Filtrado adaptativo: este mecanismo garantiza un rendimiento óptimo cuando se utilizan filtros, uniones e índices de vectores simultáneamente. Para ello, observa las estadísticas de ejecución de consultas en el tiempo de ejecución, aprende la selectividad de los filtros y ajusta de forma adaptativa el plan de ejecución para determinar el orden más eficiente de la aplicación de filtros y la búsqueda de vectores.
  • Filtrado insertado: específico del algoritmo ScaNN, el filtrado insertado es una estrategia de optimización que ejecuta la búsqueda de vectores y la evaluación de filtros de metadatos al mismo tiempo. Aprovecha los índices secundarios de PostgreSQL (como B-trees, GIN o GiST) para crear una lista reducida (mapa de bits) de las filas que cumplen los criterios de filtro. El análisis de vectores posterior solo calcula las distancias de los vectores incluidos en ese conjunto prefiltrado, lo que reduce drásticamente la sobrecarga computacional, sobre todo cuando los filtros son moderadamente selectivos.

Integración perfecta con Vertex AI

AlloyDB AI se ha diseñado para integrarse con el ecosistema de Vertex AI, lo que permite transformar y enriquecer los datos directamente en la base de datos mediante SQL.

Generación de inserciones automatizada

La plataforma admite la generación automática de inserciones mediante la extensión google_ml_integration. Esta función permite convertir datos operativos (texto, imágenes y vídeo) en inserciones de vectores mediante modelos de Vertex AI, como text-embedding-005.

  • Registro de modelos: los modelos de Vertex AI (de inserción y generativos) se registran en la base de datos mediante el procedimiento google_ml.create_model.
  • Columnas virtuales: las incrustaciones se pueden generar y conservar automáticamente en una columna generada mediante la función embedding(), lo que garantiza que los datos vectoriales permanezcan sincronizados con los datos de la columna de origen:
ALTER TABLE my_table
ADD COLUMN embedding vector(768)
GENERATED ALWAYS AS (embedding('text-embedding-005', source_column)) STORED;

Consultas y enriquecimiento con IA generativa

Una vez almacenadas las incrustaciones de vectores, los desarrolladores pueden realizar búsquedas semánticas sofisticadas mediante el operador de similitud de vectores (<=>) en SQL estándar. Además, los resultados de estas búsquedas se pueden transferir directamente a modelos de IA generativa, como gemini-2.0-flash-001, mediante funciones como google_ml.generate_content para enriquecer las consultas basadas en RAG y generar resultados fáciles de usar.