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 inteligentes y sofisticadas que comprenden el significado semántico de los datos en formatos estructurados y no estructurados. Al unificar las capacidades de SQL con la tecnología de búsqueda de vectores de vanguardia, AlloyDB AI proporciona una plataforma única lista para la IA para la administración de datos y los flujos de trabajo de generación de aumento de recuperación (RAG), lo que elimina la necesidad de implementar y administrar una base de datos de vectores separada.
Arquitectura y rendimiento principales
AlloyDB usa la extensión pgvector de PostgreSQL para la funcionalidad de vectores. Es compatible con el popular índice HNSW, así como con el índice de vecinos más cercanos escalables (ScaNN), un algoritmo de búsqueda de vectores de vanguardia derivado de años de investigación de la Búsqueda de Google. Esta integración profunda en el entorno de PostgreSQL permite operaciones de alta velocidad compatibles con pgvector y consultas semánticas avanzadas.
Rendimiento del índice de ScaNN
El índice ScaNN ofrece ventajas significativas en cuanto a la velocidad en comparación con el índice HNSW (Hierarchical Navigable Small Worlds) estándar de PostgreSQL, ya que proporciona operaciones de vectores rápidas necesarias para las cargas de trabajo de IA exigentes:
| Operación | Aumento 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 índice paralela |
| Consultas de Vector Search | Hasta 4 veces más rápido | Mantenimiento automático del índice |
| Consultas de Vector Search filtradas | Hasta 10 veces más rápido | Observabilidad de nivel empresarial |
Filtrado adaptable y optimización de consultas
El índice ScaNN está profundamente integrado en el planificador de consultas de PostgreSQL para garantizar un rendimiento óptimo en las consultas híbridas que involucran tanto la similitud de vectores como los filtros de metadatos estructurados estándar.
- Filtrado adaptable: Este mecanismo garantiza un rendimiento óptimo cuando se utilizan filtros, uniones e índices de vectores de forma simultánea. 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 aplicación de filtros y búsqueda vectorial.
- Filtrado intercalado: Específico del algoritmo de ScaNN, el filtrado intercalado es una estrategia de optimización que ejecuta la búsqueda de vectores y la evaluación del filtro de metadatos en tándem. Aprovecha los índices secundarios de PostgreSQL (como B-trees, GIN o GiST) para crear una lista abreviada (mapa de bits) de las filas que satisfacen los criterios de filtro. El análisis de vectores posterior solo calcula las distancias para los vectores contenidos en ese conjunto prefiltrado, lo que reduce drásticamente la sobrecarga computacional, en especial cuando los filtros son moderadamente selectivos.
Integración perfecta en Vertex AI
AlloyDB AI está diseñado para integrarse de forma predeterminada con el ecosistema de Vertex AI, lo que permite transformar y enriquecer los datos directamente en la base de datos con SQL.
Generación de embeddings automatizada
La plataforma admite la generación automática de incorporaciones con la extensión google_ml_integration. Esta capacidad permite convertir los datos operativos (texto, imágenes y video) en embeddings de vectores con los modelos de Vertex AI, como text-embedding-005.
- Registro del modelo: Los modelos de Vertex AI (generativos y de embeddings) se registran en la base de datos con el procedimiento
google_ml.create_model. - Columnas virtuales: Los embeddings se pueden generar y conservar automáticamente en una columna generada con 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
Con los embeddings de vectores almacenados, los desarrolladores pueden realizar búsquedas semánticas sofisticadas con el operador de similitud de vectores (<=>) en SQL estándar. Además, los resultados de estas búsquedas se pueden pasar directamente a los modelos de IA generativa, como gemini-2.0-flash-001, con funciones como google_ml.generate_content para el enriquecimiento de consultas basadas en RAG y la generación de resultados fáciles de usar.