¿Qué es una base de datos vectorial?

Una base de datos vectorial es cualquier base de datos que permita almacenar, indexar y consultar incrustaciones de vectores o representaciones numéricas de datos no estructurados, como texto, imágenes o audio.

Google Cloud integra estas funciones de nivel empresarial directamente en sus servicios gestionados, como AlloyDB para PostgreSQL, Spanner y BigQuery, lo que te ayuda a crear aplicaciones inteligentes sin tener que gestionar una infraestructura independiente.

Bases de datos con vectores: ¡descubre la búsqueda semántica!

¿Qué son las incrustaciones de vectores?

Las incrustaciones de vectores son representaciones numéricas de datos, normalmente definidas 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.

Al asignar estos datos a un espacio vectorial, las incrustaciones capturan el significado semántico: los elementos similares se colocan más cerca, mientras que los elementos diferentes se sitúan más lejos. Esta relación espacial ayuda a los sistemas a identificar conexiones entre puntos de datos basándose en el contexto y el significado, en lugar de solo en coincidencias de palabras clave.

Otros tipos de datos admitidos

Mientras que algunas bases de datos especializadas solo admiten las incrustaciones de vectores, otras admiten muchos otros tipos de datos y de consultas además de las incrustaciones de vectores. Esto es fundamental para crear aplicaciones de IA generativa a partir de datos reales y enriquecidos. A medida que queden claras las ventajas de las consultas semánticas con incrustaciones de vectores, la mayoría de las bases de datos añadirán compatibilidad con vectores. En el futuro, creemos que todas las bases de datos serán bases de datos vectoriales.

Descubre cómo admite la búsqueda de vectores de Vertex AI la creación de aplicaciones de IA generativa de alto rendimiento. La búsqueda de vectores de Vertex AI se basa en la búsqueda de Nearest Neighbor escalable o ScaNN, una tecnología de búsqueda de vectores escalable y eficiente desarrollada por Google Research, por lo que es ideal para gestionar grandes conjuntos de datos y requisitos de búsqueda en tiempo real. Obtén más información sobre la búsqueda y las incrustaciones de vectores en el vídeo de abajo y empieza con esta guía de inicio rápido.

Mira el vídeo para aprender a crear aplicaciones basadas en LLMs con incrustaciones, búsqueda de vectores y RAG.

¿Cómo funciona una base de datos vectorial?

Para consultar de forma eficiente un gran conjunto de vectores, se necesitan estrategias de indexación y búsqueda especializadas que difieren de las que se usan en 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 vecinos más cercanos (KNN): el caso práctico más habitual es identificar los "k" vectores más cercanos a un vector de consulta. Para ello, se utilizan métricas de distancia como el producto escalar, la similitud del coseno o la distancia euclídea 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 desde el punto de vista computacional. Para reducir este coste, las bases de datos utilizan algoritmos de ANN. Estos algoritmos pueden mejorar significativamente la velocidad de búsqueda sacrificando una pequeña cantidad de precisión (recuperación), un compromiso aceptable para la mayoría de las aplicaciones de búsqueda semántica.
  • Indexación de vectores: para permitir búsquedas más rápidas, los índices de vectores organizan los datos de forma que los clústeres de vectores cercanos se agrupen. Las estructuras más comunes son las listas (que representan clústeres de vectores), los gráficos (que conectan vectores con vecinos) y los árboles (cuyas ramas representan subconjuntos de clústeres). Cada tipo de índice ofrece diferentes ventajas e inconvenientes 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 algo más que la similitud semántica. Por ejemplo, un usuario podría buscar un libro similar a "una historia conmovedora sobre un pez" (búsqueda vectorial) pero limitar los resultados a artículos "por menos de 20 $" (filtro de metadatos). Las bases de datos de vectores avanzadas combinan estos predicados de SQL con la similitud de vectores para ejecutar consultas híbridas potentes.

Casos prácticos de bases de datos vectoriales

Las incrustaciones de vectores captan el significado semántico de datos complejos. Si se combinan con bases de datos vectoriales, que proporcionan una indexación y una 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 conocimientos externa para modelos de lenguaje extenso (LLMs). Al recuperar contexto relevante y propio antes de enviar una petición al modelo, las aplicaciones pueden reducir las alucinaciones y proporcionar respuestas precisas y específicas del dominio. Esto es esencial para crear agentes de asistencia basados en IA, analizadores de documentos legales y sistemas internos de gestió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. Al representar el comportamiento de los usuarios y los atributos de los productos como vectores, las aplicaciones pueden identificar elementos similares o emparejar a 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 streaming de contenido multimedia.

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

Las bases de datos vectoriales pueden ayudar a identificar patrones irregulares en conjuntos de datos masivos. Al establecer un espacio vectorial que represente el comportamiento o las transacciones "normales", los desarrolladores pueden detectar de forma programática los valores atípicos que se alejen mucho de los clústeres establecidos. Esta función es fundamental para crear sistemas de detección de fraudes financieros, herramientas de monitorización de la seguridad de redes y comprobaciones del 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. Al comparar las incrustaciones de registros de clientes o fichas de productos, los sistemas pueden identificar entradas duplicadas aunque el texto varíe ligeramente (por ejemplo, "Plaza Mayor" frente a "Plza. Mayor"). Esto ayuda a las organizaciones a mantener una visión ú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 con las inserciones de vectores a través de la extensión estándar pgvector y la mejora con el índice ScaNN de Google. Esto permite hacer consultas de vectores más rápido y habilita el filtrado en línea, que puede ayudar a optimizar las búsquedas híbridas al evaluar la similitud de vectores y los filtros de metadatos simultáneamente para mejorar el rendimiento.

Ejemplo: Búsqueda híbrida de inmuebles

Una aplicación inmobiliaria 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, respetando estrictamente las restricciones (por ejemplo, "3 dormitorios", "menos de 800.000 $", "en el distrito escolar A").

  • Reto: una búsqueda de vectores estándar podría devolver una casa de estilo de mediados de siglo que cueste 2 millones de dólares o que esté en un distrito equivocado. Una consulta SQL estándar puede filtrar por precio, pero no puede entender "estilo de medidos 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 aplicación devuelve casas que se ajustan a la estética y al presupuesto en cuestión de milisegundos, sin la penalización de rendimiento que supone filtrar los resultados posteriormente.

Google Cloud integra las funciones de búsqueda de vectores directamente en sus servicios de bases de datos principales, lo que te ayuda a poner en práctica la IA generativa usando tus datos y flujos de trabajo actuales.

Spanner

Spanner, la base de datos distribuida a nivel mundial de Google, admite la búsqueda vectorial para aplicaciones transaccionales. Puede proporcionar una búsqueda vectorial altamente disponible y escalable mediante algoritmos de elementos más cercanos exactos y aproximados. Esto permite que las aplicaciones internacionales implementen funciones como las recomendaciones en tiempo real o la búsqueda semántica, al tiempo que se mantienen una coherencia y una fiabilidad estrictas.

Ejemplo: Recomendaciones en tiempo real para comercio electrónico

Una plataforma de comercio electrónico internacional quiere crear un motor de recomendaciones que gestione búsquedas vagas de los usuarios, como "mejores botas de senderismo para lluvia", y que, al mismo tiempo, asegure la disponibilidad inmediata de los productos.

  • Reto: la concordancia con palabras clave tradicional no encuentra productos relevantes que no contengan los términos de búsqueda exactos (por ejemplo, una descripción que diga "impermeable" podría no coincidir con una búsqueda de "lluvia"). Además, verificar la disponibilidad del inventario en una base de datos vectorial independiente crea latencia y riesgos de coherencia de datos durante los eventos de mucho tráfico.
  • Solución: la plataforma añade una columna de vectores a su tabla de productos de Spanner y genera elementos insertados mediante Vertex AI a través de SQL. Después, usa la búsqueda vectorial de Spanner para ejecutar una consulta híbrida que encuentre productos semánticamente similares y, al mismo tiempo, aplique una comprobación de inventario estricta (InventoryCount > 0).
  • Resultado: los clientes reciben recomendaciones precisas y personalizadas de productos que se asegura que están en stock, se entregan con baja latencia y tienen coherencia global necesaria para una transacción en directo.

BigQuery

BigQuery te permite realizar análisis de vectores en conjuntos de datos masivos sin tener que sacar los datos de tu almacén de datos. Con la función VECTOR_SEARCH, puedes ejecutar búsquedas de similitud usando SQL estándar. Esto es especialmente útil en casos prácticos de análisis, como agrupar clientes en clústeres 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 escala

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

  • Reto: las búsquedas por palabras clave no detectan las variaciones sutiles de los 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 de miles de millones de entradas de registro. Después, ejecuta una consulta VECTOR_SEARCH para encontrar todos los registros que sean semánticamente similares a una firma de exploit conocida, lo que permite identificar nuevas variantes del ataque.
  • Resultado: pueden detectar y agrupar amenazas de día cero en años de datos históricos usando SQL sencillo, sin necesidad de mover los datos a una base de datos vectorial especializada.

Soluciona los retos empresariales que se te presenten con Google Cloud

Los nuevos clientes reciben 300 USD en crédito gratis para invertirlos en Google Cloud.
Habla con un especialista del equipo de ventas de Google Cloud sobre tus necesidades específicas con más detalle.

Ve un paso más allá

Empieza a crear en Google Cloud con 300 USD en crédito gratis y más de 20 productos Always Free.

Google Cloud