¿Cómo evaluar una base de datos vectorial?
Este artículo se publicó originalmente en InfoWorld y se vuelve a publicar aquí con permiso.
En el mundo actual impulsado por los datos, el crecimiento exponencial de los datos no estructurados es un fenómeno que exige nuestra atención. El auge de la IA y los Grandes Modelos de Lenguaje (LLMs) ha vuelto a encender esta explosión de datos, dirigiendo nuestra atención hacia una tecnología revolucionaria: las bases de datos vectoriales. Como infraestructura vital en la era de la IA, las bases de datos vectoriales son herramientas potentes para almacenar, indexar y buscar datos no estructurados.
Con la atención del mundo firmemente centrada en las bases de datos vectoriales, surge una pregunta apremiante: ¿Cómo seleccionas la adecuada para las necesidades de tu negocio? ¿Cuáles son los factores clave que debes considerar al comparar y evaluar bases de datos vectoriales? Esta publicación profundizará en estas preguntas y proporcionará perspectivas desde los puntos de vista de escalabilidad, funcionalidad y rendimiento, ayudándote a tomar decisiones informadas en este panorama dinámico.
¿Qué es una base de datos vectorial?
Los sistemas convencionales de bases de datos relacionales gestionan datos en tablas estructuradas con formatos predefinidos y sobresalen en la ejecución de operaciones de búsqueda precisas. En contraste, las bases de datos vectoriales se especializan en almacenar y recuperar datos no estructurados, como imágenes, audio, videos y texto, mediante representaciones numéricas de alta dimensión conocidas como embeddings vectoriales.
Las bases de datos vectoriales son famosas por las búsquedas de similitud, empleando técnicas como el algoritmo Vecino Más Cercano Aproximado (ANN). Este algoritmo organiza los datos según relaciones espaciales e identifica rápidamente el punto de datos más cercano a una consulta dada dentro de conjuntos de datos extensos.
Los desarrolladores usan bases de datos vectoriales para crear sistemas de recomendación, chatbots y aplicaciones para buscar imágenes, videos y audio similares. Con el auge de ChatGPT, las bases de datos vectoriales se han vuelto beneficiosas para abordar los problemas de alucinación de los grandes modelos de lenguaje.
Bases de datos vectoriales frente a otras tecnologías de búsqueda vectorial
Hay varias tecnologías disponibles para la búsqueda vectorial más allá de las bases de datos vectoriales. En 2017, Meta lanzó como código abierto FAISS, reduciendo significativamente los costos y las barreras asociados con la búsqueda vectorial. En 2019, Zilliz presentó Milvus, una base de datos vectorial de código abierto diseñada específicamente que lidera el camino en la industria. Desde entonces, han surgido muchas otras empresas de bases de datos vectoriales. La tendencia de las bases de datos vectoriales despegó en 2022 con la entrada de muchos productos de búsqueda tradicionales como Elasticsearch y Redis, y el uso generalizado de LLMs como ChatGPT.
¿Cuáles son sus diferencias ahora que hay tantos productos de búsqueda vectorial? Los clasifico aproximadamente en los siguientes tipos:
Bibliotecas de búsqueda vectorial. Son colecciones de algoritmos sin funcionalidades básicas de base de datos como insertar, eliminar, actualizar, consultar, persistencia de datos y escalabilidad. FAISS es un ejemplo principal.
Bases de datos vectoriales ligeras. Están construidas sobre bibliotecas de búsqueda vectorial, lo que las hace ligeras en la implementación, pero con poca escalabilidad y rendimiento. Chroma es un ejemplo de ello.
Plugins de búsqueda vectorial. Estos son complementos de búsqueda vectorial que dependen de bases de datos tradicionales. Sin embargo, su arquitectura está pensada para cargas de trabajo convencionales, lo que puede afectar negativamente a su rendimiento y escalabilidad. Elasticsearch y Pgvector son ejemplos principales.
Bases de datos vectoriales diseñadas específicamente. Estas bases de datos están diseñadas específicamente para la búsqueda vectorial y ofrecen ventajas significativas sobre otras tecnologías de búsqueda vectorial. Por ejemplo, las bases de datos vectoriales dedicadas proporcionan características más fáciles de usar, como computación y almacenamiento distribuidos, recuperación ante desastres y persistencia de datos. Milvus es un ejemplo principal.
¿Cómo evaluar una base de datos vectorial?
Al evaluar una base de datos vectorial, la escalabilidad, la funcionalidad y el rendimiento son las tres métricas más cruciales.
Escalabilidad
La escalabilidad es esencial para determinar si una base de datos vectorial puede manejar eficazmente datos que crecen exponencialmente. Al evaluar la escalabilidad, debemos considerar la escalabilidad horizontal/vertical, el balanceo de carga y múltiples replicaciones.
Escalabilidad horizontal/vertical
Diferentes bases de datos vectoriales emplean diversas técnicas de escalado para adaptarse a las demandas de crecimiento empresarial. Por ejemplo, Pinecone y Qdrant optan por el escalado vertical, mientras que Milvus adopta el escalado horizontal. La escalabilidad horizontal ofrece mayor flexibilidad y rendimiento que el escalado vertical, con menos límites superiores.
Balanceo de carga
La programación es crucial para un sistema distribuido. Su velocidad, granularidad y precisión influyen directamente en la gestión de la carga y el rendimiento del sistema, reduciendo la escalabilidad si no se optimiza correctamente.
Compatibilidad con múltiples réplicas
Múltiples réplicas permiten respuestas diferenciales a varias consultas, lo que mejora las consultas por segundo (QPS) del sistema y la escalabilidad general.
Diferentes bases de datos vectoriales atienden a diferentes tipos de usuarios, por lo que sus estrategias de escalabilidad difieren. Milvus, por ejemplo, se centra en escenarios con volúmenes de datos que aumentan rápidamente y utiliza una arquitectura escalable horizontalmente con separación entre almacenamiento y cómputo. Pinecone y Qdrant, por otro lado, están diseñadas para usuarios con un volumen de datos y demandas de escalado moderados. Mientras tanto, LanceDB y Chroma priorizan las implementaciones ligeras sobre la escalabilidad.
Funcionalidad
Clasifico la funcionalidad de las bases de datos vectoriales en dos categorías principales: características orientadas a bases de datos y orientadas a vectores.
Características orientadas a vectores
Las bases de datos vectoriales benefician muchos casos de uso, como la generación aumentada por recuperación (RAG), los sistemas de recomendación y la búsqueda de similitud semántica utilizando varios índices. Por lo tanto, la capacidad de admitir múltiples tipos de índices es un factor crítico al evaluar una base de datos vectorial.
Actualmente, la mayoría de las bases de datos vectoriales admiten índices HNSW (Hierarchical Navigable Small World), y algunas también admiten índices IVF (Inverted File). Estos índices son adecuados para operaciones en memoria y son los más apropiados para entornos con recursos abundantes. Sin embargo, algunas bases de datos vectoriales eligen soluciones basadas en mmap para situaciones con recursos de hardware limitados. Aunque son más fáciles de implementar, las soluciones basadas en mmap tienen un coste en términos de rendimiento.
Milvus, una de las bases de datos vectoriales con más trayectoria, admite 11 tipos de índices, incluidos índices basados en disco y basados en GPU. Este enfoque garantiza la adaptabilidad a una amplia gama de escenarios de aplicación.
Funciones orientadas a bases de datos
Muchas funciones beneficiosas para las bases de datos tradicionales también se aplican a las bases de datos vectoriales, como Change Data Capture (CDC), soporte multiinquilino, grupos de recursos y control de acceso basado en roles (RBAC). Milvus y algunas bases de datos tradicionales equipadas con plugins vectoriales admiten eficazmente estas funciones orientadas a bases de datos.
Rendimiento
El rendimiento es la métrica más crítica para evaluar una base de datos vectorial. A diferencia de las bases de datos convencionales, las bases de datos vectoriales realizan búsquedas aproximadas, lo que significa que los k resultados principales recuperados no pueden garantizar una precisión del 100%. Por lo tanto, además de las métricas tradicionales como consultas por segundo (QPS) y latencia, la "tasa de recuperación" es otra métrica de rendimiento esencial para las bases de datos vectoriales que cuantifica la precisión de la recuperación.
Recomiendo dos herramientas de benchmarking de código abierto ampliamente reconocidas para evaluar diferentes métricas: ANN-Benchmark y VectorDBBench.
ANN-Benchmark
La indexación vectorial es un aspecto crítico y que consume muchos recursos de una base de datos vectorial. Su rendimiento afecta directamente al rendimiento general de la base de datos. ANN-Benchmark es una herramienta de benchmarking líder para evaluar el rendimiento de diversos algoritmos de índices vectoriales en una variedad de conjuntos de datos reales.
El gráfico siguiente muestra los resultados de probar la recuperación/consultas por segundo de varios algoritmos basados en el conjunto de datos GIST1M (1M de vectores con 960 dimensiones). Representa la tasa de recuperación en el eje x frente a QPS en el eje y, ilustrando el rendimiento de cada algoritmo en diferentes niveles de precisión de recuperación.
Según los resultados mostrados en el gráfico anterior, las bibliotecas Milvus, Zilliz y HNSW lograron los tres mejores resultados al procesar 1.000.000 de vectores con 960 dimensiones. Para obtener más resultados de benchmarking, consulta el sitio web de ANN-Benchmark.
VectorDBBench
Aunque ANN-Benchmark es increíblemente útil para seleccionar y comparar diferentes algoritmos de búsqueda vectorial, no proporciona una visión general completa de las bases de datos vectoriales. También debemos considerar factores como el consumo de recursos, la capacidad de carga de datos y la estabilidad del sistema. Además, ANN-Benchmark omite muchos escenarios comunes, como la búsqueda vectorial filtrada.
VectorDBBench es una herramienta de benchmarking de código abierto que puede abordar las limitaciones mencionadas anteriormente y está diseñada para bases de datos vectoriales de código abierto como Milvus y Weaviate, y servicios totalmente gestionados como Zilliz Cloud y Pinecone. Debido a que muchos servicios de búsqueda vectorial totalmente gestionados no exponen sus parámetros para el ajuste por parte del usuario, VectorDBBench muestra las tasas de QPS y recuperación por separado.
Los gráficos siguientes muestran los resultados de las pruebas de QPS y la tasa de recuperación de varias bases de datos vectoriales convencionales al procesar 500.000 vectores con 1.536 dimensiones y 1.000.000 de vectores con 768 dimensiones, respectivamente.
Según los resultados en los gráficos anteriores, las bases de datos vectoriales creadas específicamente, como Milvus y Zilliz, demostraron un rendimiento excepcional tanto en QPS como en tasas de recuperación. Estos resultados indican que las bases de datos vectoriales creadas específicamente pueden procesar rápidamente enormes cantidades de datos y recuperar resultados más precisos. En cambio, los complementos de búsqueda vectorial basados en bases de datos tradicionales mostraron un rendimiento inferior.
Para obtener más resultados de benchmarking, consulta el sitio web de VectorDBBench.
Conclusión
En el ámbito dinámico de las bases de datos vectoriales, numerosos productos presentan énfasis y fortalezas únicas. No existe una base de datos vectorial "mejor" universal; la elección depende de tus necesidades. Por lo tanto, evaluar la escalabilidad, funcionalidad, rendimiento y compatibilidad de una base de datos vectorial con tus casos de uso particulares es vital.
Sigue leyendo

DeepSeek-OCR Explained: Optical Compression for Scalable Long-Context and RAG Systems
Discover how DeepSeek-OCR uses visual tokens and Contexts Optical Compression to boost long-context LLM efficiency and reshape RAG performance.

AI Integration in Video Surveillance Tools: Transforming the Industry with Vector Databases
Discover how AI and vector databases are revolutionizing video surveillance with real-time analysis, faster threat detection, and intelligent search capabilities for enhanced security.

Vector Databases vs. Hierarchical Databases
Use a vector database for AI-powered similarity search; use a hierarchical database for organizing data in parent-child relationships with efficient top-down access patterns.



