Compartir a través de


Bases de datos vectoriales de código abierto

SE APLICA A: núcleo virtual de MongoDB

Cuando los desarrolladores seleccionan bases de datos vectoriales, las opciones de código abierto proporcionan numerosas ventajas. "Código abierto" significa que el código fuente del software está disponible libremente, lo que permite a los usuarios personalizar la base de datos según sus necesidades específicas. Esta flexibilidad es beneficiosa para las organizaciones que están sujetas a requisitos normativos únicos sobre los datos, como las empresas del sector de servicios financieros.

Otra ventaja de las bases de datos vectoriales de código abierto es el fuerte apoyo de la comunidad del que gozan. Las comunidades de usuarios activas suelen contribuir al desarrollo de estas bases de datos, proporcionan soporte técnico y comparten procedimientos recomendados, lo que promueve la innovación.

Algunas personas optan por bases de datos vectoriales de código abierto porque son "gratuitas", lo que significa que no hay ningún costo para adquirir o usar el software. Una alternativa consiste en usar los niveles gratuitos ofrecidos por los servicios de base de datos vectoriales administrados. Estos servicios administrados no solo proporcionan acceso sin costo hasta un determinado límite de uso, sino que también simplifican la carga operativa controlando el mantenimiento, las actualizaciones y la escalabilidad. Por lo tanto, mediante el uso del nivel gratuito de servicios de base de datos vectoriales administrados, los usuarios pueden lograr ahorros de costos a la vez que reducen la sobrecarga de administración. Este enfoque permite a los usuarios centrarse más en sus actividades principales en lugar de en la administración de bases de datos.

Mecanismo de trabajo de bases de datos vectoriales

Las bases de datos vectoriales están diseñadas para almacenar y administrar inserciones de vectores, que son representaciones matemáticas de datos en un espacio de alta dimensión. En este espacio, cada dimensión corresponde a una característica de los datos y es posible que se usen decenas de miles de dimensiones para representar datos sofisticados. La posición de un vector en este espacio representa sus características. Se pueden vectorizar palabras, frases o documentos completos e imágenes, audio y otros tipos de datos. Estas incrustaciones vectoriales se usan en la búsqueda de similitudes, la búsqueda multimodal, en los motores de recomendaciones, en los modelos de lenguajes grandes (LLM), etc.

La arquitectura de estas bases de datos suele incluir un motor de almacenamiento y un mecanismo de indexación. El motor de almacenamiento optimiza el almacenamiento de datos vectoriales para una recuperación y manipulación eficaces, mientras que el mecanismo de indexación organiza los datos para realizar operaciones de búsqueda y recuperación rápidas.

En una base de datos vectorial, las incrustaciones se indexan y consultan a través de algoritmos de vector de búsqueda en función de su distancia vectorial o similitud. Se necesita un mecanismo sólido para identificar los datos más relevantes. Algunos algoritmos de vector de búsqueda conocidos incluyen Mundos pequeños navegables jerárquicos (HNSW), Archivo invertido (IVF), etc.

Las bases de datos vectoriales se usan en numerosos dominios y situaciones en inteligencia artificial analítica y generativa, como el procesamiento de lenguaje natural, el reconocimiento de vídeo e imágenes, el sistema de recomendaciones, la búsqueda, etc. Por ejemplo, puede usar una base de datos vectorial para:

  • Identificar imágenes, documentos y canciones similares en función de su contenido, temas, sentimientos y estilos
  • Identificar productos similares en función de sus características, funcionalidades y grupos de usuarios
  • Recomendar contenido, productos o servicios en función de las preferencias de las personas
  • Recomendar contenido, productos o servicios en función de las similitudes de los grupos de usuarios
  • Identificar las opciones potenciales más adecuadas a partir de un gran grupo de opciones para cumplir los requisitos complejos
  • Identificar anomalías de datos o actividades fraudulentas que no son similares a los patrones predominantes o normales
  • Implementar la memoria persistente para agentes de IA
  • Habilitar la generación aumentada de recuperación (RAG)

Base de datos vectorial integrada frente a base de datos vectorial pura

Hay dos tipos comunes de implementaciones de base de datos vectoriales: base de datos vectorial pura y base de datos vectorial integrada en una base de datos NoSQL o relacional.

Una base de datos vectorial pura está diseñada para almacenar y administrar eficazmente inserciones de vectores, junto con una pequeña cantidad de metadatos; es independiente del origen de datos del que se derivan las inserciones.

Una base de datos vectorial integrada en una base de datos NoSQL o relacional altamente eficaz proporciona funcionalidades adicionales. La base de datos vectorial integrada en una base de datos NoSQL o relacional puede almacenar, indexar e insertar consultas junto con los datos originales correspondientes. Este enfoque elimina el coste adicional de replicar datos en una base de datos de vectores pura independiente. Además, mantener juntos las incrustaciones de vectores y los datos originales facilita mejor las operaciones de datos multi modal y permite una mayor coherencia, escala y rendimiento de los datos.

Seleccionar la mejor base de datos de vectores de código abierto

La elección de la mejor base de datos de vectores de código abierto requiere tener en cuenta varios factores. El rendimiento y la escalabilidad de la base de datos son cruciales, ya que afectan a la capacidad de la base de datos para cumplir sus requisitos específicos de carga de trabajo. Las bases de datos con funcionalidades eficaces de indexación y consulta suelen ofrecer un rendimiento óptimo. Otro factor es el soporte técnico de la comunidad y la documentación disponibles para la base de datos. Una sólida comunidad y una amplia documentación pueden proporcionar ayuda valiosa. Estas son algunas bases de datos de vectores de código abierto populares:

  • Chroma
  • Milvus
  • Qdrant
  • Weaviate

Pero la opción más popular puede que no sea la mejor opción en tu caso. Por tanto, debes comparar diferentes opciones en función de las características, los tipos de datos admitidos, la compatibilidad con herramientas existentes y los marcos que uses. También debes tener en cuenta los desafíos de las bases de datos vectoriales de código abierto (a continuación).

Desafíos de las bases de datos vectoriales de código abierto

La mayoría de las bases de datos vectoriales de código abierto, incluidas las mostradas anteriormente, son bases de datos vectoriales puras. En otras palabras, están diseñadas solo para almacenar y administrar inserciones de vectores, junto con una pequeña cantidad de metadatos. Dado que son independientes del origen de datos desde el que se derivan las inserciones, su uso requiere enviar los datos entre integraciones de servicio, lo que agrega costos adicionales, complejidad y cuellos de botella para las cargas de trabajo de producción.

También plantean los desafíos típicos de las bases de datos de código abierto:

  • Configuración: los usuarios necesitan conocimientos detallados para instalar, configurar y operar, especialmente para implementaciones complejas. La optimización de los recursos y la configuración al escalar verticalmente requiere una supervisión y ajustes continuos.
  • Mantenimiento: los usuarios deben administrar sus propias actualizaciones, revisiones y mantenimiento. Por lo tanto, la experiencia en aprendizaje automático no bastaría; los usuarios también deben tener una amplia experiencia en la administración de bases de datos.
  • Soporte técnico: el soporte técnico oficial se puede limitar en comparación con los servicios administrados y confiar más en la asistencia de la comunidad.

Por tanto, aunque gratuitas al principio, las bases de datos vectoriales de código abierto incurren en costos significativos cuando se escalan verticalmente. La expansión de las operaciones requiere más hardware, personal de TI cualificado y administración avanzada de infraestructura, lo que conduce a mayores gastos en hardware, personal y costos operativos. El escalado de bases de datos vectoriales de código abierto puede ser financieramente exigente a pesar de la falta de tarifas de licencia.

Cómo abordar los desafíos de las bases de datos vectoriales de código abierto

Una base de datos vectorial totalmente administrada integrada en una base de datos NoSQL o relacional muy eficaz evita el costo adicional y la complejidad de las bases de datos vectoriales de código abierto. Esta base de datos almacena, indexa y consulta inserciones junto con los datos originales correspondientes. Este enfoque elimina el coste adicional de replicar datos en una base de datos de vectores pura independiente. Además, mantener juntos las incrustaciones de vectores y los datos originales facilita mejor las operaciones de datos multi modal y permite una mayor coherencia, escala y rendimiento de los datos. Mientras tanto, el servicio totalmente administrado ayuda a los desarrolladores a evitar las molestias de configurar y mantener una base de datos vectorial de código abierto y de recurrir a la ayuda de la comunidad cuando hay problemas. Además, algunos servicios de base de datos vectoriales administrados ofrecen un nivel gratuito de por vida.

Un ejemplo es la base de datos vectorial integrada en Azure Cosmos DB for MongoDB. Permite a los desarrolladores disfrutar de la misma ventaja financiera asociada a las bases de datos vectoriales de código abierto, mientras que el proveedor de servicios controla el mantenimiento, las actualizaciones y la escalabilidad. Cuando es el momento de escalar verticalmente las operaciones, la actualización es rápida y sencilla, a la vez que se mantiene un bajo costo total de propiedad (TCO). Este servicio también se puede usar para escalar aplicaciones de MongoDB de forma práctica que ya están en producción.

Pasos siguientes