¿Qué es una base de datos vectorial?

Jeffrey Erickson | Estratega de contenido | 29 de octubre de 2024

Un tipo de datos menos conocido, los vectores, ha acaparado recientemente la atención como facilitador de la IA generativa. Pero los vectores, y las bases de datos capaces de almacenarlos y analizarlos, han estado trabajando entre bastidores durante muchos años. Se utilizan en mapeos y análisis geoespaciales para la planificación de la ciudad, la logística de transporte y el análisis ambiental. Más recientemente, los vectores se han utilizado en motores de recomendación para productos minoristas, así como en sitios de streaming de música y video.

La IA generativa se basa en estos casos de uso y abre la puerta a nuevas innovaciones utilizando vectores y bases de datos vectoriales junto con tecnologías complementarias, como la generación aumentada de recuperación (RAG).

¿Qué es un vector?

Un vector es simplemente un conjunto de números que representa las características de un objeto, ya sea una palabra, una frase, un documento, una imagen o un archivo de video o audio. Los vectores son necesarios porque comparar o buscar este tipo de contenido no estructurado es difícil para las computadoras. Comparar o buscar vectores, por otro lado, es mucho más fácil y se basa en matemáticas bien entendidas.

Los vectores se almacenan en una base de datos con los objetos de datos en los que se basan o con un enlace a ellos. Los vectores que están matemáticamente cerca unos de otros tienden a describir objetos con características similares, por lo que puedes compararlos o buscarlos rápidamente y devolver objetos que sean parecidos. También puedes formar un vector de consulta con solo determinadas funciones identificadas. Una búsqueda devolverá objetos con funciones similares a las especificadas en el vector de consulta.

¿Qué es una base de datos vectorial?

Una base de datos vectorial es cualquier base de datos que puede almacenar y gestionar de forma nativa incrustaciones de vectores y manejar los datos no estructurados que describen, como documentos, imágenes, video o audio.

Con la importancia de la búsqueda de vectores para la IA generativa, la industria tecnológica ha generado muchas bases de datos vectoriales especializadas e independientes, que las empresas pueden añadir a sus infraestructuras de datos. Mientras tanto, las versiones de favoritos establecidas, como Oracle Database y la base de datos MySQL de código abierto, han incorporado vectores como tipo de dato nativo junto con muchos otros tipos de datos. Esto permite que las búsquedas en una combinación de datos empresariales y semánticos sean más rápidas y precisas, ya que ambos tipos de datos están disponibles en una sola base de datos. Este enfoque también evita los problemas de coherencia de datos que surgen cuando se utiliza una base de datos vectorial especializada e independiente, además de la base de datos principal de la empresa.


VIDEO: ¿Qué es una base de datos vectorial? ¿Cómo puede ayudar a satisfacer las necesidades empresariales?



Índice vectorial frente a base de datos vectorial

Los índices vectoriales y las bases de datos vectoriales están diseñados para almacenar y recuperar vectores de manera eficaz, es decir, conjuntos de números que representan las funciones de un objeto, como un documento, una imagen o un archivo de video o audio. Sin embargo, tienen diferentes características y casos de uso. Los índices vectoriales se utilizan principalmente para la búsqueda de "vecinos más cercanos", que consiste en encontrar el vector más cercano a un vector de consulta determinado. Los índices son excelentes para aplicaciones que requieren búsquedas de similitud rápidas y precisas, como un motor de recomendaciones. Por el contrario, las bases de datos vectoriales son donde las organizaciones almacenan vectores para su recuperación y análisis. Una base de datos vectorial de categoría empresarial ofrece funciones útiles más allá de la búsqueda de vecinos más cercanos, como el almacenamiento de metadatos, el control de versiones de datos y la integración con otros sistemas.

Diferencias clave

La diferencia clave entre un índice vectorial y una base de datos vectorial es que los índices vectoriales almacenan información sobre los atributos de datos no estructurados, como texto, imágenes o archivos de audio. Esta información está representada por un conjunto de números llamado vector. El índice vectorial contiene estos datos y los "indexa" de una manera que ayuda a una base de datos a identificar y hacer coincidir objetos rápidamente.

Una base de datos vectorial alberga estos índices y los objetos que describen. Sin embargo, la forma en que una base de datos organiza los índices vectoriales y los objetos de datos varía. Las bases de datos activadas por vectores, como Oracle Database, separan el almacenamiento de objetos de datos de cómo se buscan los datos y los vectores. Esto les permite combinar la potencia de consulta madura de SQL para metadatos y datos de negocio actualizados con la velocidad y relevancia contextual de la búsqueda vectorial. Este enfoque significa, por ejemplo, que una búsqueda vectorial de productos minoristas relevantes también puede ofrecer precios y disponibilidad actualizados.

Conclusiones clave

  • Las bases de datos vectoriales almacenan y manipulan objetos de forma eficaz utilizando un tipo de datos denominado incrustación vectorial.
  • Las incrustaciones vectoriales describen las características de un objeto, y una base de datos vectorial almacena esos vectores y crea índices que facilitan búsquedas rápidas.
  • Los vectores y las bases de datos con vectores no son nuevos; hace tiempo que se emplean para casos de uso especializados, como el mapeo y el análisis de datos.
  • Más recientemente, las incrustaciones vectoriales y las bases de datos vectoriales se han utilizado para encontrar productos similares, reconocer patrones biométricos, detectar anomalías y en motores de recomendación.
  • Las empresas combinan ahora la búsqueda vectorial y la IA generativa con tecnología de generación aumentada de recuperación para obtener resultados más relevantes de la IA generativa al compartir elementos selectos de sus almacenes de documentos y comunicaciones. El resultado son respuestas rápidas más precisas y contextualmente relevantes, ya que se basan en los datos adicionales suministrados por RAG.

Bases de datos vectoriales: explicación

En lugar de asumir el costo y el esfuerzo para ajustar los modelos de IA generativa, las empresas están curando los datos que los LLM utilizan para generar sus resultados. Están utilizando bases de datos vectoriales que contienen información empresarial actualizada. Este enfoque arquitectónico, llamado generación aumentada de recuperación, permite que un LLM entrenado con grandes cantidades de datos generalizados mejore su respuesta utilizando datos privados encontrados en una base de datos vectorial.

Por ejemplo, si un chatbot basado en LLM pudiera acceder a los registros de clientes y las comunicaciones por correo electrónico de un minorista en lugar de a mensajes genéricos, podría proporcionar respuestas más útiles y personalizadas a consultas como "¿Se ha enviado mi pedido?"

La RAG también puede aumentar la confiabilidad de los modelos de IA generativa citando qué documentos de la base de datos vectorial informaron su resultado.

¿Por qué son importantes las bases de datos vectoriales?

No es de extrañar que aumente el uso de bases de datos optimizadas para almacenar y analizar vectores. Las bases de datos vectoriales, que antes se utilizaban principalmente para el mapeo y el análisis de datos, se han convertido en una tecnología fundamental para los motores de recomendación que utilizan habitualmente los minoristas más populares y los proveedores de streaming de música y video, así como los asistentes virtuales, el reconocimiento de patrones biométricos, la detección de anomalías y mucho más. Y ahora, las bases de datos vectoriales han encontrado un uso nuevo y espectacular: almacenar grandes volúmenes de datos no estructurados a los que se puede acceder para informar sobre los resultados de los modelos de IA generativa.

Una tendencia creciente es que las bases de datos establecidas, como MySQL y Oracle Database, incorporen datos vectoriales como tipo de dato nativo junto al resto de datos de una organización, como JSON, grafos, espaciales y relacionales. Esta convergencia elimina la necesidad de trasladar los datos a una base de datos separada para las operaciones de IA generativa, lo que simplifica el proceso y deja los datos valiosos en repositorios de confianza.

El crecimiento de los casos de uso de IA generativa significa que hay muchas bases de datos vectoriales nuevas en el mercado, además de las ya establecidas bases NoSQL y relacionales que han añadido la gestión de tipos de datos vectoriales.

¿Cómo funcionan las bases de datos vectoriales?

Las bases de datos vectoriales funcionan almacenando y procesando datos como vectores, que son representaciones matemáticas de las características de los objetos en un espacio multidimensional. Esto permite almacenar y consultar de forma eficaz tipos de datos complejos, como imágenes, audio, video y datos de sensores, lo que hace que los vectores sean ideales para casos de uso como sistemas de recomendación, procesamiento de lenguaje natural y reconocimiento de imágenes.

Las operaciones se realizan en varios pasos:

  • Vectorización. Se pueden crear vectores para describir el contenido o las características de los datos no estructurados. Esta base de datos no estructurada puede tener forma de texto almacenado en tablas de base de datos o de documentos almacenados en un sistema de archivos.
  • Indexación. Las bases de datos vectoriales utilizan índices vectoriales para organizar los vectores de manera jerárquica, lo que permite su búsqueda y recuperación eficientes.
  • Consultas. Para consultar datos vectoriales, las bases de datos vectoriales realizan operaciones de distancia vectorial utilizando un vector de consulta. Cuanto más próximos estén matemáticamente los vectores, más parecidos serán los objetos que representan. Normalmente, este proceso devolverá un pequeño conjunto de resultados, como los cinco elementos más parecidos.
  • Postprocesamiento. Después de que una base de datos vectorial recupere los vecinos más cercanos de un vector de consulta, puede reordenar las filas del conjunto de resultados. El reordenamiento es una operación costosa en comparación con la consulta vectorial, pero puede dar un mejor orden a los resultados de consulta vectorial existentes.
El diagrama ilustra cómo una base de datos vectorial puede ayudar a un servicio de streaming a recomendar la película adecuada para un aficionado a la ciencia ficción.

Tipos de bases de datos vectoriales

Las bases de datos vectoriales pueden clasificarse en varios tipos, según su estructura de almacenamiento, como las columnares, o según su implementación, como las bases de datos en memoria. Cada tipo tiene ventajas; el tipo que selecciones debe basarse en tus requisitos y casos de uso específicos.

  • Bases de datos en columnas

    Una base de datos columnar almacena datos en columnas y los agrupa en un disco. Esta disposición acelera el análisis de datos porque el análisis suele implicar filtrar y combinar datos de columnas de tablas. Las bases de datos también pueden almacenar registros en formato de fila, lo que resulta útil para las transacciones en las que se actualiza un único elemento del registro. Sin embargo, para el análisis de datos, una base de datos columnar permite a los analistas explorar muy rápidamente cualquier columna de miles o millones de registros.

  • Almacenes de documentos

    Una base de datos de almacenamiento de documentos, o base de datos orientada a documentos, es un sistema de almacenamiento de programas y datos que gestiona, recupera y almacena información orientada a documentos. Las bases de datos de documentos almacenan los datos en documentos flexibles, similares a JSON, que son adecuados para estructuras de datos variadas y dinámicas. Se diferencian de las bases de datos relacionales, que utilizan tablas para organizar los datos con un esquema fijo.

  • Bases de datos orientadas a grafos

    El análisis de grafos es el proceso de analizar datos en un formato de grafo, utilizando puntos de datos como nodos y relaciones como aristas. Observar los datos de esta manera puede ayudarte a descubrir conexiones y relaciones que antes no eran evidentes. El análisis de grafos requiere una base de datos que admita formatos de grafos. Puede tratarse de una base de datos de grafos dedicada o de una base de datos convergente que admita varios modelos de datos, incluidos los grafos.

  • Bases de datos en memoria

    Las bases de datos en memoria almacenan y manipulan datos en el nivel de memoria de una aplicación en lugar de en un disco de almacenamiento. Este tipo de estructura suele combinarse con la funcionalidad de los almacenes columnares y los planes de consulta vectorizados para acelerar las consultas analíticas. Este tipo de almacén de datos es bueno para respaldar operaciones rápidas en telecomunicaciones globales y empresas que necesitan tomar decisiones basadas en datos en tiempo real.

  • Almacenes de clave-valor

    Los almacenes de clave-valor, a veces también denominados bases de datos de clave-valor, son una forma rápida de almacenar y consultar datos que a menudo cambian, como los artículos de una tienda online. El almacén clave-valor es una base de datos de tipo NoSQL que utiliza un valor clave para identificar un registro concreto para consultarlo o actualizarlo.

  • Bases de datos espaciales

    Una base de datos espacial almacena y gestiona datos espaciales, que representan información sobre la ubicación física y las propiedades geométricas de los objetos en el espacio. Lo hacen con técnicas de indexación y operaciones de consulta. Las bases de datos espaciales se utilizan para mapeos y análisis online, así como en las operaciones de logística de envíos.

  • Bases de datos de series temporales

    Una base de datos de series temporales se utiliza para almacenar y analizar de forma eficaz datos con registro de hora, donde cada punto de datos se asocia a un registro de hora o intervalo de tiempo específico. Estas bases de datos se utilizan comúnmente en sistemas de monitoreo de TI que dependen del análisis de registros y en finanzas.

  • Bases de datos vectoriales para modelos de lenguaje grandes

    Las bases de datos vectoriales mejoran los modelos de lenguaje grandes comerciales o de código abierto al darles acceso a información actualizada suministrada por una organización o empresa local. Esto ayuda a que los resultados del LLM sean más relevantes y personalizados para las personas asociadas a esa organización.

¿Quién utiliza las bases de datos vectoriales?

Las bases de datos vectoriales son utilizadas por diversas aplicaciones y organizaciones que manejan grandes cantidades de datos espaciales y geométricos, como en los sectores de retail y logística y en sistemas que pilotean vehículos autónomos. Y ahora, las empresas que exploran la IA avanzada y el aprendizaje automático también están adoptando este tipo de base de datos. Los modelos de IA generativa, por ejemplo, dependen de bases de datos vectoriales para mejorar sus resultados utilizando datos locales actualizados.

Otros casos de uso específicos son los siguientes:

  • Las empresas financieras utilizan los vectores de varias formas. Por ejemplo, en el análisis de carteras, los vectores pueden representar aspectos de las carteras de un cliente. También pueden utilizarse para acompañar el rendimiento de la cuenta a lo largo del tiempo.
  • Investigadores del sector de la salud utilizan bases de datos vectoriales para respaldar sus investigaciones y ensayos clínicos. Almacenan y analizan datos relacionados con los datos demográficos, la ubicación y los resultados del tratamiento de los pacientes, lo que permite a los investigadores evaluar el impacto de muchos factores diferentes en la eficacia del tratamiento.
  • Los minoristas online utilizan bases de datos vectoriales para hacer referencia a compras y hábitos de navegación anteriores y recomendar productos que los clientes probablemente consideren deseables.
  • Las empresas de logística de envíos utilizan bases de datos vectoriales para almacenar información sobre ubicaciones y distancias, lo que les permite mapear y rastrear con precisión objetos en movimiento.
  • Los servicios de streaming utilizan vectores para ejecutar motores de recomendación, lo que les permite presentar recomendaciones basadas en diversos factores, incluidos el género, los actores principales, la fecha de lanzamiento y las críticas.

¿Cómo se utilizan las bases de datos vectoriales?

Los casos de uso de las bases de datos vectoriales son tan variados como las organizaciones y aplicaciones que dependen de ellas. Además de la analítica de datos en tiempo real, los sistemas financieros y los motores de recomendación, las bases de datos vectoriales están optimizadas para manejar las complejas estructuras de datos que suelen requerir tareas como el reconocimiento de imágenes y el procesamiento del lenguaje natural.

Al almacenar y procesar datos de manera eficiente, las bases de datos vectoriales permiten a las empresas aprovechar estructuras de datos complejas para una amplia gama de aplicaciones, como las siguientes:

  • Sistemas de recomendaciones. Las incrustaciones vectoriales se utilizan para encontrar rápidamente opciones similares de productos o entretenimiento que puedan interesar a un comprador o navegador.
  • Motores de búsqueda. Los motores de búsqueda utilizan bases de datos vectoriales para indexar consultas y documentos con sus incrustaciones vectoriales, lo que les permite localizar rápidamente resultados de búsqueda similares o documentos parecidos.
  • Personalización. Estos sistemas utilizan información demográfica y guías para búsquedas vectoriales que identifican productos o servicios que probablemente coinciden con los de un usuario en particular.
  • Detección de anomalías. Las bases de datos vectoriales permiten la búsqueda eficaz de vectores anómalos, incluso en conjuntos de datos muy grandes. Esto puede ayudar a los equipos de seguridad a detectar intentos de violación y a las empresas de tarjetas de crédito a detener las transacciones fraudulentas.
  • Genómica y bioinformática. Como los vectores y las bases de datos vectoriales son buenos en la comparación de patrones y la detección de anomalías, pueden ayudar a los investigadores a comparar secuencias genéticas de grandes volúmenes de datos genéticos. Esto puede ayudar en áreas como la predicción de enfermedades y el descubrimiento de fármacos.
  • Asistencia e investigación médica. Los proveedores de atención médica utilizan bases de datos vectoriales para almacenar y gestionar información relevante para la atención al paciente, como historiales médicos, datos demográficos, resultados de laboratorio e incluso información genética. En los ensayos clínicos, pueden analizarse los datos geoespaciales relacionados con los lugares de ensayo, los datos demográficos de los pacientes, los resultados del tratamiento y los eventos adversos para determinar la eficacia de un tratamiento.
  • Recuperación de imágenes y videos. Las operaciones de recuperación de imágenes y videos emplean bases de datos vectoriales para búsquedas semánticas y de similitud que localizan rápidamente imágenes o videos en profundos catálogos de opciones.

Ventajas de las bases de datos vectoriales

Las bases de datos vectoriales ofrecen muchas ventajas, como la búsqueda rápida de similitudes. Están optimizadas para realizar búsquedas eficientes por el vecino más cercano, lo que permite recuperar rápidamente elementos similares incluso en grandes conjuntos de datos. Esto las hace ideales para sectores que requieren procesamiento y análisis en tiempo real de datos no estructurados y para casos de uso emergentes de IA generativa.

Otras ventajas son las siguientes:

  • Rentabilidad. Las bases de datos vectoriales, en particular las opciones de código abierto como PostGIS, MySQL con extensiones vectoriales o las bases de datos multimodelo con almacenes vectoriales nativos, ofrecen soluciones rentables para el análisis geoespacial y los modelos de IA generativa.
  • Almacenamiento eficiente. Las técnicas de indexación espacial en bases de datos vectoriales permiten almacenar y organizar eficazmente los datos vectorizados.
  • Recuperación rápida. Las bases de datos vectoriales están indexadas para una recuperación rápida de los datos basada en los numerosos atributos de un objeto. Lo hacen observando las relaciones y la proximidad y utilizándolas para ejecutar búsquedas rápidamente.
  • Integración con machine learning. Las bases de datos vectoriales están diseñadas para integrarse con marcos y algoritmos de machine learning, lo que impulsa el desarrollo de modelos predictivos, detección de anomalías, agrupación y otros análisis basados en machine learning.
  • Personalización. Las bases de datos vectoriales permiten a minoristas, servicios de streaming de música e incluso empresas de atención médica adaptar sus servicios para encontrar rápidamente coincidencias con las preferencias y necesidades de una persona.
  • Análisis en tiempo real. Las bases de datos vectoriales pueden admitir operaciones en memoria para obtener tiempos de respuesta rápidos en las consultas y un procesamiento eficaz de los datos. Esto les permite realizar análisis en tiempo real para la toma de decisiones diarias.
  • Reducción de la complejidad del desarrollo. Las bases de datos vectoriales pueden proporcionar API, bibliotecas y lenguajes de consulta que abstraen las complejidades de la gestión de datos y el desarrollo de aplicaciones. Esto puede reducir enormemente el tiempo del proceso de desarrollo de la aplicación y, por tanto, el costo.
  • Escalabilidad. Las bases de datos vectoriales pueden gestionar y procesar de manera eficiente millones o incluso miles de millones de objetos vectoriales y, con la infraestructura adecuada, crecer rápidamente para acompañar la demanda.
  • Versatilidad. Las bases de datos vectoriales admiten una amplia gama de datos no estructurados, como grabaciones de audio, documentos de texto e imágenes. Esta versatilidad les permite adaptarse a diversos casos de uso y aplicaciones.

¿Cómo puede Oracle satisfacer tus necesidades vectoriales?

Tanto si utilizas IA generativa como casi cualquier otra operación que utilice vectores, Oracle puede ayudarte.

Oracle Database, la base de datos empresarial más popular del mundo, proporciona una única plataforma de datos para vectores y todos tus datos corporativos. Aprovecha la capacidad de búsqueda por similitud de los datos de tu empresa, sin necesidad de supervisar y sincronizar varias bases de datos. AI Vector Search te permite realizar búsquedas en datos estructurados y no estructurados comprendiendo su semántica o significado, así como sus valores.

Combinar datos relacionales, documentos JSON, grafos, datos geoespaciales, texto y vectores en una sola base de datos te permite crear rápidamente nuevas funciones en tus aplicaciones. AI Vector Search en Oracle Database también se puede utilizar en un pipeline de RAG junto con cualquier servicio GenAI. Además, el servicio de base de datos HeatWave MySQL de Oracle maneja vectores de forma nativa para admitir la búsqueda de vectores y otros casos de uso. Por ejemplo, puede utilizarlo junto con el servicio RAG en Oracle Cloud Infrastructure (OCI) para aportar una interfaz de IA generativa a tus documentos, proporcionándote una IA experta en los datos operativos de tu empresa.

Las bases de datos vectoriales son fundamentales para casos de uso de IA interesantes, como los chatbots que revolucionan el servicio de atención al cliente y los algoritmos que transforman la atención médica. Descubre cómo las empresas están aprovechando la potencia de los vectores.

Preguntas frecuentes sobre la base de datos vectorial

¿Cuándo se debe utilizar una base de datos vectorial?

Una base de datos vectorial puede utilizarse para en amplia variedad de casos de uso, como aplicaciones geoespaciales, logística de envíos o investigación medioambiental, recomendaciones en materia de entretenimiento en locales físicos o virtuales, más recientemente, como almacén principal de datos que respalden la IA generativa por parte de organizaciones individuales.

¿Netflix utiliza bases de datos vectoriales?

Netflix anunció que utiliza bases de datos vectoriales para respaldar sus populares motores de recomendación. Aplica incrustaciones vectoriales a cada pieza de entretenimiento de su catálogo y la base de datos vectorial permite buscar en tiempo real títulos similares.