Una base de datos vectorial es una base de datos especializada diseñada para almacenar y gestionar datos como vectores de alta dimensionalidad. El término proviene de vectores, que son representaciones matemáticas de características o atributos contenidos en los datos. A diferencia de las bases de datos tradicionales, que son adecuadas para manejar datos estructurados organizados en filas y columnas, la estructura de la base de datos vectorial organiza la información como representaciones vectoriales con un número fijo de dimensiones agrupadas según su similitud.
Cada vector dentro de una base de datos vectorial consta de un número específico de dimensiones, que puede variar desde unas pocas docenas hasta varios miles. El número de dimensiones depende de la complejidad y granularidad de los datos. Esta estructura permite a las bases de datos vectoriales manejar eficientemente información compleja y multifacética y realizar búsquedas y análisis rápidos basados en la similitud.
Según International Data Corporation (IDC), el 90% de los nuevos datos creados son datos no estructurados, como texto, imágenes y video. Los modelos basados en aprendizaje, como las redes neuronales profundas, se utilizan cada vez más para gestionar estos datos no estructurados para aplicaciones en diversas industrias, desde el comercio electrónico hasta la atención médica. Estas aplicaciones funcionan convirtiendo los datos no estructurados en vectores de incrustación. Una vez que los datos han sido "vectorizados", tareas como búsquedas, recomendaciones y análisis se pueden implementar a través de la Búsqueda IA basada en similitud. La gestión de datos vectoriales se realiza en bases de datos vectoriales.
Saber cuándo usar bases de datos vectoriales depende de los otros procesos y tecnologías que esté utilizando. Son un componente clave para potenciar muchos sistemas de IA, y algunas (pero no todas) las aplicaciones de modelos de lenguaje grandes (LLM) utilizan bases de datos vectoriales para búsquedas rápidas de similitud o para proporcionar contexto o conocimiento de dominio. Por ejemplo, desempeñan un papel crucial en generación aumentada por recuperación (RAG), un enfoque donde la base de datos vectorial se utiliza para mejorar el prompt pasado al LLM agregando contexto adicional junto con la consulta.
Las bases de datos vectoriales también permiten la búsqueda híbrida. Este enfoque combina la búsqueda tradicional basada en palabras clave con la búsqueda de similitud semántica para localizar información relevante incluso cuando las palabras clave no son una coincidencia exacta. Las bases de datos vectoriales también se pueden utilizar para una serie de tareas de procesamiento del lenguaje natural (PLN), incluido el análisis semántico y de sentimientos, o en el entrenamiento de modelos de aprendizaje automático (ML).
Un vector es una matriz numérica de alta dimensionalidad que expresa la ubicación de un punto particular en varias dimensiones. Imagine un espacio vectorial de palabras como una nube tridimensional donde las palabras se representan como puntos. En este espacio, las palabras con significados relacionados se agrupan. Por ejemplo, el punto que representa "manzana" estaría ubicado más cerca de "pera" que de "coche". Esta disposición espacial refleja las relaciones semánticas entre las palabras, y la proximidad indica similitud en el significado.
Se genera un vector aplicando una función de incrustación a los datos sin procesar para transformarlos en una representación. Estas representaciones se denominan "incrustaciones" porque un modelo de ML toma un grupo representativo y lo incrusta en un espacio vectorial. Los vectores se incrustan como listas de números, lo que facilita que los modelos de ML realicen operaciones con los datos. De hecho, el rendimiento de los métodos de ML depende críticamente de la calidad de las representaciones vectoriales. Un párrafo completo de texto o un grupo de números se puede reducir a un vector, lo que permite al modelo realizar operaciones de manera eficiente.
Las bases de datos vectoriales están diseñadas para almacenar, indexar y consultar datos de manera eficiente a través de incrustaciones vectoriales de alta dimensionalidad. Una vez que un usuario introduce una consulta o solicitud en la base de datos vectorial, esta inicia la siguiente secuencia de procesos:
Estos procesos permiten a las bases de datos vectoriales realizar búsquedas semánticas y recuperaciones basadas en similitud, lo que las hace ideales para aplicaciones como sistemas de recomendación, reconocimiento de imágenes y video, análisis de texto y detección de anomalías.
Las bases de datos vectoriales ofrecen una gama de beneficios:
Las bases de datos vectoriales se utilizan en diversas industrias para una amplia gama de aplicaciones y casos de uso. Aquí hay algunos de los ejemplos más comunes de bases de datos vectoriales:
El auge de los LLMs para tareas como la recuperación de información, junto con la creciente popularidad de las plataformas de comercio electrónico y recomendación, requiere sistemas de gestión de bases de datos vectoriales que puedan ofrecer capacidades de optimización de consultas para datos no estructurados.
En aplicaciones multimodales, los datos se incrustan y almacenan en bases de datos vectoriales, lo que facilita la recuperación eficiente de representaciones vectoriales. Cuando un usuario envía una consulta de texto, el sistema utiliza tanto el LLM como la base de datos vectorial. El LLM proporciona capacidades de PNL (Procesamiento del Lenguaje Natural), mientras que los algoritmos de la base de datos vectorial realizan búsquedas ANN (Búsqueda de Vecinos Más Cercanos). Este enfoque puede producir mejores resultados en comparación con el uso de cualquiera de los componentes de forma aislada.
Las bases de datos vectoriales se aplican cada vez más a los LLMs a través de RAG (Recuperación Aumentada por Generación), lo que permite una mayor explicabilidad al aplicar contexto a las salidas de los LLMs. Las indicaciones del usuario se pueden aumentar mediante la inclusión de contexto para mitigar desafíos centrales de los LLMs, como la alucinación o el sesgo.
Las bases de datos vectoriales pueden desempeñar un papel clave en el reconocimiento de imágenes al almacenar incrustaciones de alta dimensionalidad de imágenes generadas por modelos de ML. Dado que las bases de datos vectoriales están optimizadas para tareas de búsqueda de similitud, son ideales para aplicaciones como la detección de objetos, el reconocimiento facial y la búsqueda de imágenes.
Las bases de datos vectoriales se ajustan para la recuperación rápida de contexto a través de la similitud. Las plataformas de comercio electrónico pueden usar bases de datos vectoriales para encontrar productos con atributos visuales similares, mientras que los sitios de redes sociales pueden sugerir imágenes relacionadas a los usuarios. Un ejemplo ilustrativo es Pinterest, donde las bases de datos vectoriales potencian el descubrimiento de contenido al representar cada imagen como un vector de alta dimensionalidad. Cuando un usuario fija una imagen de una puesta de sol costera, el sistema puede buscar rápidamente en su base de datos vectorial para sugerir imágenes visualmente similares, como otros paisajes de playa o puestas de sol.
Las bases de datos vectoriales han revolucionado el PNL al permitir el almacenamiento y la recuperación eficientes de representaciones de palabras distribuidas. Modelos como Word2Vec, GloVe y BERT se entrenan en enormes conjuntos de datos de texto para generar incrustaciones de palabras de alta dimensionalidad que capturan relaciones semánticas, las cuales luego se almacenan en bases de datos vectoriales para un acceso rápido.
Dado que permiten búsquedas rápidas de similitud, las bases de datos vectoriales permiten a los modelos encontrar palabras o frases contextualmente relevantes. Esta capacidad es particularmente valiosa para tareas como la búsqueda semántica, la respuesta a preguntas, la clasificación de texto y la extracción de entidades nombradas. Además, las bases de datos vectoriales pueden almacenar incrustaciones a nivel de oración, capturando contextos de palabras y permitiendo una comprensión del lenguaje más matizada.
Una vez que una base de datos vectorial se entrena utilizando un modelo de incrustación, se puede utilizar para generar recomendaciones personalizadas. Cuando un usuario interactúa con el sistema, su comportamiento y preferencias se utilizan para generar la incrustación del usuario. Por ejemplo, un usuario puede pedirle a un LLM una recomendación de serie de TV y la base de datos vectorial puede sugerir series de TV que tengan tramas o calificaciones similares a las preferencias del usuario. Las series de TV con incrustaciones más cercanas a la codificación del usuario se recomiendan en consecuencia.
Las instituciones financieras utilizan bases de datos vectoriales para detectar transacciones fraudulentas. Las bases de datos vectoriales permiten a las empresas comparar vectores de transacciones con patrones de fraude conocidos en tiempo real. La escalabilidad de las bases de datos vectoriales también les permite gestionar el riesgo y obtener nuevas perspectivas sobre el comportamiento del consumidor. Estas bases de datos pueden identificar patrones que indican actividades codificando datos de transacciones como vectores. Además, facilitan la evaluación de la solvencia crediticia y la segmentación de consumidores mediante el análisis de datos para mejorar el proceso de toma de decisiones.
A pesar de sus muchos beneficios y casos de uso, una comprensión completa de las bases de datos vectoriales también debe incluir sus desafíos.
Las bases de datos vectoriales requieren pipelines eficientes de ingesta de datos donde los datos crudos y sin procesar de diversas fuentes se puedan limpiar, procesar e incrustar con un modelo de ML antes de almacenarlos como vectores en la base de datos.
Databricks AI Search ofrece una solución integral para este desafío. Automatiza la generación, gestión y optimización de vectores, manejando la sincronización en tiempo real de los datos de origen con los índices vectoriales correspondientes. El software gestiona fallos, optimiza el rendimiento y realiza ajuste automático del tamaño del lote y escalado automático sin necesidad de intervención manual.
Este enfoque reduce la necesidad de pipelines de ingesta de datos separados, minimizando el "trabajo pesado del desarrollador" y permitiendo a los equipos centrarse en tareas de nivel superior que agregan valor comercial directamente en lugar de pasar tiempo construyendo y manteniendo procesos complejos de preparación de datos.
Las bases de datos vectoriales requieren seguridad adicional, controles de acceso y gobernanza de datos junto con el mantenimiento y la gestión necesarios. Las organizaciones empresariales requieren seguridad estricta y controles de acceso sobre los datos para que los usuarios no puedan acceder a modelos de GenAI que se vinculan a datos confidenciales.
Muchas bases de datos vectoriales actuales o no tienen controles de seguridad y acceso robustos implementados o requieren que las organizaciones creen y mantengan un conjunto separado de políticas de seguridad. Databricks AI Search proporciona una interfaz unificada que define políticas de datos para rastrear el linaje de datos automáticamente sin necesidad de herramientas adicionales. Esto garantiza que los LLMs no expongan datos confidenciales a usuarios que no deberían tener acceso.
Dado que ofrecen potentes capacidades para búsquedas de similitud y el manejo de datos de alta dimensionalidad, las bases de datos vectoriales son herramientas esenciales para los científicos de datos que trabajan con modelos de IA y ML. Databricks AI Search se destaca como una base de datos vectorial sin servidor que elimina la necesidad de configuración manual, permitiendo a los científicos de datos centrarse en el trabajo principal en lugar de la gestión de la infraestructura.
Las ventajas clave de Databricks AI Search incluyen la integración perfecta con la arquitectura lakehouse, la ingesta automatizada de datos y resultados hasta cinco veces más rápidos en comparación con otras bases de datos vectoriales populares. También es compatible con las herramientas de gobernanza de datos y seguridad existentes a través de Unity Catalog, lo que garantiza la protección de datos y el cumplimiento.
Databricks AI Search ofrece flexibilidad tanto para usuarios novatos como avanzados, con escalado automático para la ingesta y consulta de datos, así como APIs de conexión y reemplazo para aquellos que prefieren un mayor control sobre sus pipelines. Esta combinación de facilidad de uso y rendimiento potente simplifica la construcción de una base de datos vectorial para científicos de datos de todos los niveles de experiencia.
Las bases de datos vectoriales organizan los datos como puntos en un espacio vectorial multidimensional. Cada punto representa un fragmento de datos, y la ubicación refleja sus características en relación con otros fragmentos de datos. Esta estructura de base de datos vectorial es muy adecuada para muchas aplicaciones de GenAI, ya que las incrustaciones vectoriales son generadas por LLMs y los datos se pueden buscar y recuperar fácilmente.
Por el contrario, las bases de datos de grafos organizan los datos almacenándolos en una estructura de grafo. Las entidades se representan como nodos en un grafo, mientras que las conexiones entre estos puntos de datos se representan como aristas. La estructura de grafo permite que los elementos de datos en el almacén sean una colección de nodos y aristas, donde las aristas representan las relaciones entre los nodos. La estructura interconectada de las bases de datos de grafos las hace muy adecuadas para escenarios donde las conexiones entre los puntos de datos son tan importantes como los datos mismos.
Use esta tabla para comparar rápidamente cómo cada tipo de base de datos almacena datos, maneja consultas y se adapta a diferentes cargas de trabajo.
| Base de datos vectorial | Índice vectorial | RDBMS tradicional | Base de datos de grafos | |
|---|---|---|---|---|
| Modelo de datos | Streaming/continuo (segundos a minutos) | Análisis proactivo impulsado por IA | Análisis proactivo impulsado por IA | Análisis proactivo impulsado por IA |
| Tipos de consulta | Analistas, ejecutivos | Equipos de operaciones, aplicaciones, sistemas automatizados | Equipos de operaciones, aplicaciones, sistemas automatizados | Equipos de operaciones, aplicaciones, sistemas automatizados |
| Latencia típica | Exploración ad hoc, informes programados | Métricas predefinidas, alertas, desencadenadores automatizados | Métricas predefinidas, alertas, desencadenadores automatizados | Métricas predefinidas, alertas, desencadenadores automatizados |
| Escala | Interpretación humana → decisión | Desencadenadores automatizados, recomendaciones integradas | Desencadenadores automatizados, recomendaciones integradas | Desencadenadores automatizados, recomendaciones integradas |
| Filtrado | Almacén de datos, canalizaciones ETL | Plataformas de streaming, procesamiento de eventos | Plataformas de streaming, procesamiento de eventos | Plataformas de streaming, procesamiento de eventos |
| Garantías transaccionales | Consistencia eventual típica | Solo lectura, capa de búsqueda | ACID completo | ACID (varía según la herramienta) |
| Gobernanza / seguridad | Mejorando, varía según el proveedor | Mínima, depende del sistema anfitrión | RBAC maduro, registros de auditoría, cifrado | Moderada, varía según el proveedor |
| Herramientas comunes | Pinecone, Weaviate, Qdrant | FAISS, HNSW lib, ScaNN | PostgreSQL, MySQL, SQL Server | Neo4j, Amazon Neptune, ArangoDB |
Un índice vectorial y una base de datos vectorial desempeñan funciones distintas pero complementarias en el manejo de datos de alta dimensionalidad.
Índice vectorial: Un índice vectorial es una estructura de datos especializada diseñada para facilitar búsquedas rápidas de similitud entre incrustaciones vectoriales. Mejora significativamente la velocidad de búsqueda al organizar los vectores de manera que permita una recuperación eficiente. Ejemplos de índices vectoriales incluyen Facebook AI Similarity Search (FAISS), HNSW y LSH. Estos índices se pueden usar como procesos algorítmicos independientes o integrarse en sistemas más grandes para optimizar las operaciones de búsqueda.
Base de datos vectorial: Una base de datos vectorial es una solución integral de gestión de datos que no solo incorpora indexación vectorial, sino que también proporciona funcionalidades adicionales como almacenamiento de datos; operaciones de creación, lectura, actualización y eliminación (CRUD); filtrado de metadatos y escalado horizontal. Está diseñada para gestionar y consultar incrustaciones vectoriales de manera eficiente, admitiendo operaciones complejas y garantizando la integridad y seguridad de los datos.
La elección de la base de datos vectorial adecuada depende de las demandas específicas de su carga de trabajo, del tamaño que espera que alcancen sus datos y de qué tan bien se adapta la base de datos a su pila tecnológica existente. Una solución que funciona perfectamente para un prototipo pequeño puede tener dificultades con el tráfico a escala empresarial, mientras que una plataforma rica en funciones podría ser demasiado compleja para casos de uso más simples. Tenga en cuenta estos criterios para elegir una base de datos vectorial que escale con sus necesidades y funcione bien con los sistemas existentes.
Estos dos términos se usan a menudo indistintamente, pero se refieren a diferentes capas del sistema.
Alcance: Un índice vectorial es una única estructura de datos —como HNSW o IVF— optimizada para acelerar la búsqueda de vecinos más cercanos. En contraste, una base de datos vectorial es un sistema completo construido alrededor de uno o más de estos índices junto con capacidades de almacenamiento y consulta.
Soporte CRUD: Los índices vectoriales a menudo tienen soporte limitado o ineficiente para actualizaciones y eliminaciones. Las bases de datos vectoriales proporcionan operaciones robustas de creación, lectura, actualización y eliminación sobre la capa de índice.
Escalado: Un índice independiente reside en la memoria y no gestiona la distribución ni la replicación. Una base de datos vectorial, sin embargo, maneja el escalado horizontal, el fragmentación y la persistencia en la infraestructura.
Independiente vs. integrado: Los índices vectoriales se pueden incrustar directamente en el código de la aplicación (por ejemplo, FAISS). Las bases de datos vectoriales son servicios con API, controles de acceso y herramientas de gestión integradas.
Una base de datos vectorial es una opción común para las canalizaciones de RAG en producción, pero no siempre es necesaria. La respuesta correcta depende de su escala y complejidad.
Para RAG en producción a escala, una base de datos vectorial se vuelve valiosa cuando necesita almacenamiento persistente, filtrado de metadatos, controles de acceso y la capacidad de actualizar su conjunto de datos con el tiempo.
Los entornos multitenant o regulados casi siempre justifican una base de datos vectorial, ya que requieren aislamiento de inquilinos, registro de auditoría y controles de acceso de grano fino que los índices independientes no proporcionan.
Cuando su conjunto de datos es estático y pequeño, la sobrecarga de una base de datos vectorial puede superar los beneficios: un índice ligero cargado al inicio puede manejar la recuperación igual de bien.
Para la creación de prototipos, un índice en memoria como FAISS o un simple almacén basado en archivos suele ser suficiente y mucho más fácil de configurar que una base de datos vectorial completa.
La búsqueda híbrida combina dos señales de recuperación fundamentalmente diferentes —coincidencia de palabras clave y similitud semántica— en un único resultado de consulta.
Las bases de datos vectoriales añaden una sobrecarga operativa real, y hay varios escenarios en los que esa complejidad simplemente no está justificada.
El reciente auge de los LLM y las aplicaciones GenAI en general ha contribuido a una adopción concomitante de bases de datos vectoriales. A medida que las aplicaciones de IA continúan madurando, el desarrollo de nuevos productos y las cambiantes necesidades de los usuarios decidirán la dirección de las tendencias futuras en bases de datos vectoriales. Sin embargo, existen algunas direcciones generalmente esperadas para esta tecnología.
Mayor integración con modelos de ML: La relación entre las bases de datos vectoriales y los modelos de ML es objeto de una mayor investigación. Estos esfuerzos apuntan a reducir el tamaño y la dimensionalidad de los vectores, minimizando los requisitos de almacenamiento para grandes conjuntos de datos y mejorando la eficiencia computacional.
Personalización de RAG: RAG es un enfoque utilizado para mejorar el contexto proporcionado a un LLM en casos de uso de GenAI, incluidas aplicaciones de chatbot y preguntas y respuestas generales. La base de datos vectorial se utiliza para mejorar el prompt que se pasa al LLM agregando contexto adicional junto con la consulta.
Búsqueda multivectorial: Se espera una mayor investigación sobre la mejora de las capacidades de búsqueda multivectorial, lo cual es importante para aplicaciones como el reconocimiento facial. Las técnicas actuales a menudo se basan en combinar puntuaciones individuales, pero este enfoque puede ser computacionalmente costoso, ya que aumenta el número de cálculos de distancia requeridos.
Búsqueda híbrida: La evolución de los sistemas de búsqueda ha llevado a una creciente adopción de enfoques híbridos que combinan métodos tradicionales basados en palabras clave con técnicas modernas de recuperación vectorial
Databricks AI Search es la solución de base de datos vectorial integrada de Databricks para la Plataforma de Inteligencia de Datos. Este sistema totalmente integrado elimina la necesidad de canalizaciones de ingesta de datos separadas y aplica controles de seguridad y mecanismos de gobernanza de datos, garantizando una protección consistente en todos los activos de datos.
Databricks AI Search proporciona una experiencia lista para usar de alto rendimiento, que permite a los LLM recuperar rápidamente resultados relevantes con una latencia mínima. Los usuarios se benefician del escalado y la optimización automáticos, lo que elimina la necesidad de ajuste manual de la base de datos. Esta integración agiliza el proceso de almacenamiento, gestión y consulta de incrustaciones vectoriales, lo que facilita a las organizaciones la implementación de aplicaciones de IA, como sistemas de recomendación y búsquedas semánticas, al tiempo que se mantienen los estándares de seguridad y gobernanza de datos.
¿Dónde puedo encontrar más información sobre bases de datos vectoriales y búsqueda vectorial?
Hay muchos recursos disponibles para encontrar más información sobre bases de datos vectoriales y búsqueda vectorial, que incluyen:
Contacta con Databricks para programar una demostración y hablar con alguien sobre tus bases de datos LLM y vectoriales.
(Esta entrada del blog ha sido traducida utilizando herramientas basadas en inteligencia artificial) Publicación original
Suscríbete a nuestro blog y recibe las últimas publicaciones directamente en tu bandeja de entrada.