sábado, 25 de mayo de 2024

Comprensión de las bases de datos vectoriales: la base de las aplicaciones modernas de IA

¿Qué son las bases de datos vectoriales?

Las bases de datos vectoriales forman la columna vertebral de las aplicaciones de aprendizaje automático e inteligencia artificial. A diferencia de las bases de datos tradicionales que manejan datos estructurados, estas bases de datos almacenan y administran grandes cantidades de datos de alta dimensión en un formato de incrustación vectorial, lo que permite un almacenamiento, recuperación y procesamiento eficiente de información compleja.

¿Pero qué es un vector? Un vector en el contexto de una base de datos vectorial se refiere a una representación basada en incrustación de un objeto, como imágenes, audio y texto, comúnmente utilizada en tareas de aprendizaje automático. Estas representaciones vectoriales no son más que matrices numéricas de alta dimensión que capturan los rasgos o características esenciales de los objetos.

Casos de uso para bases de datos vectoriales

Cuando se les solicita una consulta de búsqueda de una representación vectorial de una imagen o audio, las bases de datos vectoriales pueden recuperar rápidamente incrustaciones de la base de datos de una manera similar a la consulta rápida. Las bases de datos vectoriales utilizan modelos como el enfoque K-vecino más cercano aproximado (utilizando internamente métodos de similitud como la similitud del coseno o la distancia euclidiana) para encontrar similitudes entre incrustaciones.

Procesamiento de imágenes y reconocimiento de voz

Los ejemplos industriales de Vector DB para la búsqueda de imágenes incluyen el uso del servicio OpenSearch por parte de Amazon. Amazon utiliza OpenSearch Vector Search Collection como una base de datos vectorial para búsquedas de imágenes, lo que permite a los usuarios consultar el motor de búsqueda con medios enriquecidos como imágenes. La implementación es similar a la búsqueda semántica, donde se utilizan modelos de aprendizaje profundo, como ResNets, para convertir imágenes en incrustaciones de vectores. OpenSearch proporciona una búsqueda eficiente de similitudes de vectores al ofrecer índices especializados y admite un motor escalable que puede manejar la búsqueda de vectores con baja latencia y hasta miles de millones de vectores.

Otro ejemplo es Voyager de Spotify lanzado en diciembre de 2023. Voyager es una base de datos vectorial de código abierto para reconocimiento de voz que permite la búsqueda por similitud de pistas de música en colecciones de vectores en memoria, sucediendo a Annoy como la biblioteca de búsqueda de vecinos más cercanos recomendada por Spotify para uso en producción. Esto permite a Spotify recomendar nuevas canciones a los usuarios según sus preferencias de escucha y también ayuda a identificar y eliminar pistas duplicadas.

Chatbots y RAG

La IA generativa ha permitido a los chatbots entablar conversaciones más naturales y contextualmente relevantes, brindando una experiencia personalizada a los usuarios y, en algunos casos, se ha observado que es más eficiente en la resolución de problemas que un agente humano.

Sin embargo, uno de los desafíos clave en la creación de chatbots es garantizar que brinden respuestas precisas y relevantes a las consultas de los usuarios. Aquí es donde entran en juego los RAG. La recuperación de generación aumentada (RAG) es un método utilizado para mejorar la confiabilidad de los chatbots de IA generativa. Básicamente, RAG combina el poder de los modelos generativos y una base de conocimiento externa para mejorar la calidad y relevancia de las respuestas generadas por los chatbots.

Sistemas de recomendación

Los sitios web de comercio electrónico utilizan incrustaciones de productos para personalizar las recomendaciones de productos. Estas incorporaciones se crean en función de las características y relaciones de los productos y el historial de pedidos de millones de otros usuarios.

Ejemplos de bases de datos vectoriales

Bases de datos de código abierto exclusivamente vectoriales

  1. Chroma: Chroma es una base de datos vectorial de código abierto diseñada para el almacenamiento y la recuperación eficiente de datos vectoriales de alta dimensión. Proporciona soporte para la búsqueda de similitudes y es adecuado para una amplia gama de aplicaciones, incluidos sistemas de recomendación y búsqueda basada en contenido. Usar Chroma para incrustaciones de vectores es tan simple como hacer `pip install chroma` y ejecutar el servidor Chroma.
  2. Vespa: Vespa es un motor de servicio y procesamiento de big data de código abierto que incluye soporte para manejar y consultar datos vectoriales de alta dimensión. Lo utilizan varias organizaciones para tareas como recomendaciones de contenido personalizadas, sistemas de respuesta a preguntas y sugerencias de escritura anticipada.
  3. Milvus: Milvus es una base de datos vectorial de código abierto optimizada para sistemas de recomendación y búsqueda de similitudes. Proporciona una variedad de funciones para gestionar datos vectoriales a gran escala, incluida la indexación, el almacenamiento y el procesamiento de consultas. Milvus es utilizado por empresas como Nvidia y Roblox.

Código fuente disponible y bases de datos comerciales solo de vectores

  1. Pinecone: Pinecone es una base de datos vectorial que proporciona código fuente abierto y una plataforma comercial para gestionar datos vectoriales de alta dimensión. Ofrece funciones como indexación en tiempo real, búsqueda de similitudes y numerosas integraciones con flujos de trabajo de aprendizaje automático. Los desarrolladores pueden acceder a Pinecone utilizando plataformas en la nube como AWS, GCP y Azure. También pueden generar incrustaciones de vectores con integraciones de terceros como Hugging Face, Databricks y Cohere mientras monitorean el uso y el rendimiento mediante DataDog y NewRelic.
  2. Weaviate: Weaviate es un sistema de gráficos de conocimiento de código abierto que incluye soporte para administrar y consultar datos vectoriales de alta dimensión. Ofrece funciones para búsqueda semántica, sistemas de recomendación y aplicaciones de procesamiento de lenguaje natural. Weaviate es utilizado por empresas como Stack Overflow para crear una experiencia de búsqueda intuitiva.

Bases de datos con capacidades de búsqueda de vectores

Varias bases de datos tradicionales han agregado soporte para manejar y consultar datos vectoriales de alta dimensión, que incluyen:

  1. Open Search: anteriormente conocida como Open Distro para Elasticsearch, Open Search incluye soporte para la búsqueda de similitud de vectores utilizando el algoritmo k-NN (k-vecinos más cercanos). Los desarrolladores también pueden optar por utilizar Amazon OpenSearch Service, que es un servicio administrado por AWS que les permite ejecutar y escalar clústeres de OpenSearch sin tener que preocuparse por administrar, monitorear y mantener su infraestructura, ni tener que desarrollar una experiencia profunda en la operación de clústeres de OpenSearch.
  2. PostgreSQL: PostgreSQL ha introducido soporte para indexar y consultar vectores de alta dimensión utilizando extensiones como pgvector que permiten a los desarrolladores almacenar, consultar e indexar vectores.
  3. Cassandra: Apache Cassandra incluye soporte para almacenar y consultar datos vectoriales de alta dimensión, lo que lo hace adecuado para casos de uso como análisis de series temporales y sistemas de recomendación.
  4. Redis: Redis también se puede utilizar como una base de datos vectorial para casos de uso como sistemas de recomendación, generación aumentada de recuperación (RAG) y almacenamiento en caché semántico LLM. Por ejemplo, Superlinked utiliza la base de datos Vector de Redis Enterprise para crear productos con recomendaciones personalizadas y contenido relevante.
  5. SingleStore: SingleStore ofrece soporte para el manejo de datos vectoriales de alta dimensión a través de su plataforma de base de datos SQL distribuida, lo que permite aplicaciones de aprendizaje automático y análisis en tiempo real.

Sistemas de búsqueda de vectores creados por la industria

Voyager de Spotify: Voyager es un sistema distribuido de búsqueda y recomendación a gran escala creado por Spotify para manejar incrustaciones de música de alta dimensión. Permite tareas como recomendaciones de música, listas de reproducción personalizadas y deduplicación de pistas de música.
Pintext de Pinterest: Pintext es un sistema de incrustación de texto multitarea desarrollado por Pinterest para manejar representaciones de texto de alta dimensión. Impulsa varias aplicaciones basadas en texto dentro de Pinterest, incluida la recomendación de contenido y la búsqueda semántica.

Conclusión

En esta era de aplicaciones habilitadas para IA, las bases de datos vectoriales forman la columna vertebral de numerosas aplicaciones con las que interactuamos a diario. Estos incluyen recomendaciones de música en nuestras listas de reproducción, chatbots que pueden ser asistentes de inteligencia artificial que pueden resolver nuestros problemas y agentes humanos. La sinergia entre las bases de datos vectoriales y los modelos de aprendizaje profundo prepara el escenario para un futuro en el que la IA realmente comprenda los matices del lenguaje humano, la información visual y el sonido.

El potencial es inmenso y las posibilidades realmente ilimitadas. A medida que las bases de datos vectoriales y los modelos de aprendizaje profundo se vuelvan más sólidos y refinados, las líneas entre lo que las máquinas pueden entender y cómo los humanos interactúan con la información seguirán difuminándose. Estamos un paso más cerca de un futuro en el que las aplicaciones impulsadas por IA aumenten nuestras capacidades, lo que conducirá a una mejor comprensión de nuestro mundo.


Referencia: Roller, J. (2024, mayo 15). Understanding Vector Databases: The Foundation of Modern AI Applications. IEEE Computer Society. https://www.computer.org/publications/tech-news/community-voices/vector-databases-and-ai-applications/

No hay comentarios.:

Publicar un comentario

EDR versus MDR: diferencias clave y cómo elegir

¿Qué es la EDR? Endpoint Detección y Respuesta (EDR) es una tecnología de ciberseguridad que monitorea y recopila continuamente datos de dis...