Base de datos vectorial
Esta sección abarca la definición y el uso de una base de datos vectorial en las soluciones de IA de NetApp.
Base de datos vectorial
Una base de datos vectorial es un tipo especializado de base de datos diseñada para manejar, indexar y buscar datos no estructurados utilizando incrustaciones de modelos de aprendizaje automático. En lugar de organizar los datos en un formato tabular tradicional, organiza los datos como vectores de alta dimensión, también conocidos como incrustaciones vectoriales. Esta estructura única permite a la base de datos manejar datos complejos y multidimensionales de manera más eficiente y precisa.
Una de las funcionalidades clave de una base de datos vectorial es su uso de la IA generativa para realizar análisis. Esto incluye búsquedas de similitud, donde la base de datos identifica puntos de datos que son como una entrada dada, y detección de anomalías, donde puede detectar puntos de datos que se desvían significativamente de la norma.
Además, las bases de datos vectoriales son adecuadas para manejar datos temporales o datos con marca de tiempo. Este tipo de datos proporciona información sobre “qué” sucedió y cuándo sucedió, en secuencia y en relación con todos los demás eventos dentro de un sistema DE TI dado. Esta capacidad para manejar y analizar datos temporales hace que las bases de datos vectoriales sean particularmente útiles para aplicaciones que requieren una comprensión de los eventos a lo largo del tiempo.
Ventajas de la base de datos vectorial para ML e IA:
-
Búsqueda de alta dimensión: Las bases de datos vectoriales destacan en la gestión y recuperación de datos de alta dimensión, que a menudo se generan en aplicaciones de IA y ML.
-
Escalabilidad: Pueden escalar de forma eficiente para gestionar grandes volúmenes de datos y dar soporte al crecimiento y la expansión de proyectos de inteligencia artificial y APRENDIZAJE AUTOMÁTICO.
-
Flexibilidad: Las bases de datos vectoriales ofrecen un alto grado de flexibilidad, lo que permite el alojamiento de diversos tipos de datos y estructuras.
-
Rendimiento: Proporcionan gestión y recuperación de datos de alto rendimiento, vitales para la velocidad y la eficiencia de las operaciones de IA y APRENDIZAJE AUTOMÁTICO.
-
Indexación personalizable: Las bases de datos vectoriales ofrecen opciones de indexación personalizables, lo que permite una organización y recuperación de datos optimizadas en función de necesidades específicas.
Bases de datos vectoriales y casos de uso.
En esta sección se proporcionan varias bases de datos vectoriales y los detalles de sus casos de uso.
Faiss y Scann
Son bibliotecas que sirven como herramientas cruciales en el ámbito de la búsqueda vectorial. Estas bibliotecas proporcionan una funcionalidad que es fundamental en la gestión y búsqueda a través de datos vectoriales, lo que las convierte en recursos invaluables en esta área especializada de gestión de datos.
Elasticsearch
Es un motor de búsqueda y análisis ampliamente utilizado, ha incorporado recientemente capacidades de búsqueda vectorial. Esta nueva función mejora su funcionalidad, lo que permite al departamento de TI manejar y buscar datos vectoriales de forma más efectiva.
Piña
Es una base de datos vectorial robusta con un conjunto único de características. Admite vectores densos y dispersos en su funcionalidad de indexación, lo que mejora su flexibilidad y adaptabilidad. Uno de sus puntos fuertes reside en su capacidad para combinar métodos de búsqueda tradicionales con la búsqueda de vectores densos basada en IA, creando un método de búsqueda híbrido que aprovecha lo mejor de ambos mundos.
Principalmente basado en la nube, Pinecone está diseñado para aplicaciones de aprendizaje automático y se integra bien con una variedad de plataformas, incluyendo GCP, AWS, Open AI, GPT-3, GPT-3,5, GPT-4, Catgut Plus, Elasticsearch, Haystack, y mucho más. Es importante tener en cuenta que Pinecone es una plataforma de código cerrado y está disponible como una oferta de Software como Servicio (SaaS).
Dadas sus capacidades avanzadas, Pinecone es especialmente adecuado para la industria de la ciberseguridad, donde sus capacidades de búsqueda híbrida y de búsqueda de alta dimensión se pueden aprovechar de manera efectiva para detectar y responder a las amenazas.
Croma
Es una base de datos vectorial que tiene una Core-API con cuatro funciones principales, una de las cuales incluye un almacén de vectores de documentos en memoria. También utiliza la biblioteca Face Transformers para vectorizar documentos, mejorando su funcionalidad y versatilidad.
Chroma está diseñado para funcionar tanto en la nube como en las instalaciones, ofreciendo flexibilidad basada en las necesidades del usuario. En particular, destaca en aplicaciones relacionadas con el audio, lo que lo convierte en una excelente opción para motores de búsqueda basados en audio, sistemas de recomendación de música y otros casos de uso relacionados con el audio.
Weaviate
Es una base de datos vectorial versátil que permite a los usuarios vectorizar su contenido utilizando sus módulos integrados o módulos personalizados, proporcionando flexibilidad en función de necesidades específicas. Ofrece tanto soluciones totalmente gestionadas como autoalojadas, atendiendo a una variedad de preferencias de implementación.
Una de las características clave de Weaviate es su capacidad para almacenar tanto vectores como objetos, mejorando sus capacidades de manejo de datos. Es ampliamente utilizado para una gama de aplicaciones, incluyendo búsqueda semántica y clasificación de datos en sistemas ERP. En el sector del comercio electrónico, impulsa motores de búsqueda y recomendación. Weaviate también se utiliza para la búsqueda de imágenes, la detección de anomalías, la armonización automatizada de datos y el análisis de amenazas de ciberseguridad, mostrando su versatilidad en múltiples dominios.
Reedis
Redis es una base de datos vectorial de alto rendimiento conocida por su rápido almacenamiento en memoria, que ofrece baja latencia para operaciones de lectura y escritura. Esto lo convierte en una excelente opción para sistemas de recomendación, motores de búsqueda y aplicaciones de análisis de datos que requieren un acceso rápido a los datos.
Redis admite varias estructuras de datos para vectores, incluidas listas, conjuntos y conjuntos ordenados. También proporciona operaciones vectoriales, como el cálculo de distancias entre vectores o la búsqueda de intersecciones y uniones. Estas características son particularmente útiles para la búsqueda de similitudes, la agrupación en clústeres y los sistemas de recomendación basados en contenido.
En términos de escalabilidad y disponibilidad, Redis destaca en la gestión de cargas de trabajo de alto rendimiento y ofrece replicación de datos. También se integra bien con otros tipos de datos, incluidas las bases de datos relacionales tradicionales (RDBMS).
Redis incluye una función Publicar/Suscribir (Pub/Sub) para actualizaciones en tiempo real, lo que es beneficioso para administrar vectores en tiempo real. Además, Redis es ligero y fácil de usar, lo que lo convierte en una solución fácil de usar para la gestión de datos vectoriales.
Milvus
Es una base de datos vectorial versátil que ofrece una API como un almacén de documentos, al igual que MongoDB. Se destaca por su soporte para una amplia variedad de tipos de datos, por lo que es una opción popular en los campos de la ciencia de datos y el aprendizaje automático.
Una de las características únicas de Milvus es su capacidad de multivectorización, que permite a los usuarios especificar en tiempo de ejecución el tipo de vector a utilizar para la búsqueda. Además, utiliza Knowwhere, una biblioteca que se encuentra sobre otras bibliotecas como Faiss, para gestionar la comunicación entre las consultas y los algoritmos de búsqueda vectorial.
Milvus también ofrece una integración perfecta con flujos de trabajo de aprendizaje automático, gracias a su compatibilidad con PyTorch y TensorFlow. Esto lo convierte en una excelente herramienta para una amplia gama de aplicaciones, incluyendo comercio electrónico, análisis de imágenes y vídeos, reconocimiento de objetos, búsqueda de similitud de imágenes y recuperación de imágenes basada en contenido. En el ámbito del procesamiento del lenguaje natural, Milvus se utiliza para la agrupación de documentos, la búsqueda semántica y los sistemas de respuesta a preguntas.
Para esta solución, elegimos Milvus para la validación de la solución. Para el rendimiento, utilizamos tanto milvus como postgres (pgvecto.rs).
¿Por qué elegimos Milvus para esta solución?
-
Código abierto: Milvus es una base de datos vectorial de código abierto que fomenta el desarrollo y las mejoras impulsadas por la comunidad.
-
Integración de IA: Aprovecha la integración de aplicaciones de búsqueda de similitud y de IA para mejorar la funcionalidad de las bases de datos vectoriales.
-
Manejo de grandes volúmenes: Milvus tiene la capacidad de almacenar, indexar y gestionar más de mil millones de vectores de incrustación generados por los modelos de redes neuronales profundas (DNN) y aprendizaje automático (ML).
-
Fácil de usar: Es fácil de usar, con la configuración que tarda menos de un minuto. Milvus también ofrece SDK para diferentes lenguajes de programación.
-
Velocidad: Ofrece velocidades de recuperación increíblemente rápidas, hasta 10 veces más rápidas que algunas alternativas.
-
Escalabilidad y disponibilidad: Milvus es altamente escalable, con opciones para escalar horizontal y verticalmente según sea necesario.
-
Rico en características: Admite diferentes tipos de datos, filtrado de atributos, soporte de función definida por el usuario (UDF), niveles de consistencia configurables y tiempo de viaje, lo que lo convierte en una herramienta versátil para diversas aplicaciones.
Descripción general de la arquitectura Milvus
Esta sección proporciona componentes de palanca superiores y servicios utilizados en la arquitectura Milvus.
* Capa de acceso: Se compone de un grupo de proxies sin estado y sirve como la capa frontal del sistema y el punto final para los usuarios.
* Servicio de Coordinador: Asigna las tareas a los nodos de los trabajadores y actúa como el cerebro de un sistema. Tiene tres tipos de coordinador: Coord raíz, coord de datos y coord de consulta.
* Nodos de trabajador: Sigue la instrucción del servicio coordinador y ejecuta el usuario disparado DML/DDL commands.it tiene tres tipos de nodos de trabajo, como nodo de consulta, nodo de datos y nodo de índice.
* Almacenamiento: Es responsable de la persistencia de datos. Incluye almacenamiento de metadatos, agente de registro y almacenamiento de objetos. El almacenamiento de NetApp como ONTAP y StorageGRID proporciona almacenamiento de objetos y almacenamiento basado en archivos a Milvus para datos de clientes y datos de bases de datos vectoriales.