¿Qué es una base de datos vectorial?

Una base de datos vectorial es cualquier base de datos que te permite almacenar, indexar y consultar incorporaciones vectoriales o representaciones numéricas de datos no estructurados, como texto, imágenes o audio.

Google Cloud integra estas capacidades de nivel empresarial directamente en sus servicios administrados, como AlloyDB para PostgreSQL, Spanner y BigQuery, lo que te ayuda a crear aplicaciones inteligentes sin administrar una infraestructura separada.

Desbloquea la búsqueda semántica con las bases de datos habilitadas para vectores

¿Qué son los embeddings de vectores?

Los embeddings de vectores son representaciones numéricas de datos, que suelen definirse como arrays de números de punto flotante. Traducen datos complejos y no estructurados, como texto, imágenes o audio, a un formato que los modelos de aprendizaje automático pueden procesar.

Cuando se asignan estos datos a un espacio vectorial, las embeddings capturan el significado semántico: los elementos similares se posicionan más cerca entre sí, mientras que los elementos diferentes se posicionan más lejos. Esta relación espacial ayuda a los sistemas a identificar conexiones entre los datos en función del contexto y el significado, en lugar de solo las coincidencias de palabras clave.

Otros tipos de datos admitidos

Mientras que algunas bases de datos especializadas solo admiten embeddings de vectores, otras admiten muchos otros tipos de datos y consultas además de embeddings de vectores. Esto es fundamental para desarrollar aplicaciones de IA generativa a partir de datos enriquecidos del mundo real. Como los beneficios de las consultas semánticas con incorporaciones de vectores se hacen evidentes, la mayoría de las bases de datos agregan compatibilidad con los vectores. En el futuro, creemos que todas las bases de datos serán de vectores.

Descubre cómo la búsqueda de vectores de Vertex AI permite crear aplicaciones de IA generativa de alto rendimiento. La búsqueda vectorial de Vertex AI se basa en la búsqueda escalable de vecino más próximo, o ScaNN, una tecnología de búsqueda de vectores escalable y eficiente desarrollada por Google Research, por lo que es ideal para manejar grandes conjuntos de datos y requisitos de búsqueda en tiempo real. Obtén más información sobre búsqueda de vectores y embeddings en el video que se muestra a continuación, y comienza con esta guía de inicio rápido.

Mira el video para aprender a crear apps potenciadas por LLM con embeddings, búsqueda de vectores y RAG.

¿Cómo funciona una base de datos vectorial?

Consultar con eficacia un gran conjunto de vectores requiere estrategias especializadas de indexación y búsqueda que difieren de los campos de texto o numéricos tradicionales. Como los vectores no tienen un orden lógico único, las bases de datos vectoriales se basan en los siguientes mecanismos para recuperar datos:

  • Búsqueda de vecino más cercano (KNN): El caso de uso más común es identificar los vectores “k” que están más cerca de un vector de consulta. Para ello, se usan métricas de distancia como el producto punto, la similitud de coseno o la distancia euclidiana para medir la proximidad en el espacio vectorial.
  • Vecinos más cercanos aproximados (ANN): Calcular la distancia exacta entre un vector de consulta y todos los demás vectores puede ser costoso en términos de procesamiento. Para reducir este costo, las bases de datos usan algoritmos ANN. Estos pueden mejorar significativamente la velocidad de búsqueda sacrificando una pequeña cantidad de exactitud (recuperación), un compromiso aceptable para la mayoría de las aplicaciones de búsqueda semántica.
  • Indexación de vectores: Para habilitar búsquedas más rápidas, los índices de vectores organizan los datos de manera que se agrupen los clústeres de vectores cercanos. Las estructuras comunes incluyen listas (que representan clústeres de vectores), gráficos (que conectan vectores a vecinos) y árboles (en que las ramas representan subconjuntos de clústeres). Cada tipo de índice ofrece diferentes compensaciones en cuanto a la velocidad de búsqueda, el consumo de memoria y el tiempo de creación del índice.
  • Filtrado de metadatos: La mayoría de las aplicaciones requieren más que solo similitud semántica. Por ejemplo, un usuario podría buscar un libro similar a "una conmovedora historia sobre un pez" (búsqueda de vectores) pero limitar los resultados a elementos "por menos de $20" (filtro de metadatos). Las bases de datos vectoriales avanzadas combinan estos predicados de SQL con la similitud de vectores para ejecutar consultas híbridas potentes.

Casos de uso para bases de datos vectoriales

Los embeddings de vectores capturan el significado semántico de datos complejos. Cuando se combinan con bases de datos vectoriales que proporcionan indexación y recuperación eficientes, los desarrolladores pueden crear una amplia gama de aplicaciones inteligentes y herramientas de procesamiento de datos.

Los desarrolladores pueden usar bases de datos vectoriales como una base de conocimiento externa para modelos de lenguaje grandes (LLM). Cuando las aplicaciones recuperan un contexto pertinente y propio antes de enviar una instrucción al modelo, pueden reducir las alucinaciones y brindar respuestas precisas y específicas del dominio. Esto es esencial para crear agentes de atención al cliente potenciados por IA, analizadores de documentos legales y sistemas internos de administración del conocimiento.

Las bases de datos vectoriales permiten a los desarrolladores crear sistemas de personalización que van más allá del filtrado colaborativo. Cuando se representa el comportamiento de los usuarios y los atributos de los productos como vectores, las aplicaciones pueden identificar elementos similares o hacer coincidir los usuarios con contenido que se ajuste a sus preferencias en tiempo real. Esta arquitectura admite sugerencias de productos de comercio electrónico, feeds de contenido y recomendaciones de transmisión de contenido multimedia.

A diferencia de la búsqueda tradicional de palabras clave, las bases de datos vectoriales permiten usar aplicaciones de búsqueda semántica que comprenden la intención del usuario. Los desarrolladores pueden crear experiencias de búsqueda que les permitan a los usuarios realizar consultas por concepto en lugar de por frases exactas. Además, como los vectores pueden representar diferentes tipos de datos en el mismo espacio, puedes crear herramientas de búsqueda multimodales, lo que les permite a los usuarios buscar imágenes con descripciones de texto o encontrar documentos relacionados con una imagen de entrada.

Las bases de datos vectoriales permiten identificar patrones irregulares en conjuntos de datos masivos. Establecer un espacio vectorial que represente el comportamiento o las transacciones “normales” les permite a los desarrolladores detectar de forma programática los valores atípicos que se alejan de los clústeres establecidos. Esta capacidad es fundamental para crear sistemas de detección de fraude financiero, herramientas de supervisión de seguridad de red y verificaciones de estado de la infraestructura de TI.

En los flujos de trabajo de ingeniería de datos, las bases de datos vectoriales pueden ayudar a limpiar y unificar conjuntos de datos dispares. Cuando comparan embeddings de registros de clientes o fichas de productos, los sistemas pueden identificar entradas duplicadas incluso cuando el texto varía ligeramente (por ejemplo, "Main St." vs. "Main Street"). Esto ayuda a las organizaciones a mantener una vista única y precisa de sus datos.

Bases de datos vectoriales en Google Cloud

AlloyDB para PostgreSQL

AlloyDB para PostgreSQL combina la compatibilidad de PostgreSQL con la infraestructura escalable de Google. Incluye compatibilidad integrada para embeddings de vectores a través de la extensión estándar pgvector y la mejora con el índice ScaNN de Google. Esto puede permitir consultas de vectores más rápidas y habilita el “filtrado en línea”, que ayuda a optimizar las búsquedas híbridas evaluando la similitud de vectores y los filtros de metadatos simultáneamente para un mejor rendimiento.

Ejemplo: Búsqueda híbrida de bienes raíces

Una aplicación de bienes raíces en la que los usuarios quieren encontrar casas según su "estilo" (por ejemplo, "moderno de mediados de siglo con luz natural") y, al mismo tiempo, cumplir estrictamente con restricciones concretas (por ejemplo, "3 habitaciones", "menos de $800,000", "en el distrito escolar A").

  • Desafío: Una búsqueda de vectores estándar podría devolver una casa de "mediados de siglo" que cuesta $2 M o está en el distrito equivocado; una consulta de SQL estándar puede filtrar por precio, pero no puede entender "estilo de mediados de siglo".
  • Solución: El filtrado en línea de AlloyDB analiza el índice de vectores y comprueba los filtros de metadatos de SQL (precio, ubicación) simultáneamente en una sola pasada.
  • Resultado: La app devuelve casas que coinciden con la estética y el presupuesto en milisegundos, sin la penalización de rendimiento de los resultados posteriores al filtrado.

Google Cloud integra capacidades de búsqueda de vectores directamente en sus servicios de bases de datos principales, lo que te ayuda a poner en funcionamiento la IA generativa con tus datos y flujos de trabajo existentes.

Spanner

Spanner, la base de datos distribuida globalmente de Google, admite la búsqueda de vectores para aplicaciones transaccionales. Puede proporcionar una búsqueda de vectores altamente disponible y escalable con algoritmos de vecino más cercano exacto y aproximado. Esto permite que las aplicaciones globales implementen funciones como recomendaciones en tiempo real o búsqueda semántica, a la vez que mantienen la coherencia y confiabilidad estrictas.

Ejemplo: Recomendaciones en tiempo real para comercio electrónico

Una plataforma global de comercio electrónico quiere crear un motor de recomendaciones que maneje búsquedas vagas de los usuarios, como "mejores botas de senderismo para clima lluvioso", y, al mismo tiempo, garantice la disponibilidad inmediata de los productos.

  • Desafío: La coincidencia tradicional de palabras clave no encuentra productos relevantes, pero no contienen los términos de búsqueda exactos (por ejemplo, una descripción que dice "resistente al agua" podría no coincidir con una búsqueda de "lluvia"); además, verificar la disponibilidad del inventario en una base de datos de vectores separada crea latencia y riesgos de coherencia de los datos durante eventos de alto tráfico.
  • Solución: La plataforma agrega una columna de vectores a su tabla de productos de Spanner existente y genera embeddings con Vertex AI a través de SQL. Usa la búsqueda de vectores de Spanner para ejecutar una consulta híbrida que encuentra productos semánticamente similares y, al mismo tiempo, aplica una verificación estricta del inventario (InventoryCount > 0).
  • Resultado: Los clientes reciben recomendaciones de productos precisas y personalizadas que se garantiza que están en stock, entregadas con la baja latencia y la coherencia global necesarias para una transacción en vivo.

BigQuery

BigQuery puede permitirte realizar análisis de vectores en conjuntos de datos masivos sin mover los datos fuera de tu almacén de datos. Con la función VECTOR_SEARCH, puedes ejecutar búsquedas de similitud con SQL estándar. Esto es particularmente útil para casos de uso analíticos, como agrupar clientes en función de su comportamiento o identificar tendencias de productos similares en miles de millones de filas de datos.

Ejemplo: Detección de amenazas de ciberseguridad a gran escala

Un equipo de seguridad necesita analizar petabytes de registros de servidores para identificar actividades maliciosas. Los atacantes suelen modificar ligeramente su código para evadir las búsquedas de palabras clave de concordancia exacta.

  • Desafío: Las búsquedas de palabras clave no detectan las variaciones sutiles de ataques conocidos (por ejemplo, cambiar el nombre de una variable en una secuencia de comandos maliciosa).
  • Solución: El equipo usa BigQuery para generar embeddings para miles de millones de entradas de registro; luego, ejecuta una consulta VECTOR_SEARCH para encontrar todos los registros semánticamente similares a una firma de exploit conocida, lo que identifica nuevas variantes del ataque.
  • Resultado: Pueden detectar y agrupar amenazas de día cero en años de datos históricos con SQL simple, sin necesidad de mover datos a una base de datos de vectores especializada.

Resuelve tus desafíos más difíciles con Google Cloud

Los clientes nuevos obtienen $300 en créditos gratuitos que pueden usar en Google Cloud.
Habla con un especialista en ventas de Google Cloud para analizar tu desafío único en más detalle.

Da el siguiente paso

Comienza a desarrollar en Google Cloud con el crédito gratis de $300 y los más de 20 productos del nivel Siempre gratuito.

Google Cloud