Bases de Datos vectoriales en Inteligencia Artificial (caso de Chat GPT y Bard)

Ustedes saben que soy bien curioso con el tema de las nuevas tecnologías e investigando un poco acerca de como funciona Chat GPT, Bard, las IA generativas y las aplicaciones de inteligencia artificial llegué a este interesante tema que espero explicar con la mayor claridad posible

Partamos por el inicio

¿Qué es una base de datos vectorial?

Básicamente una colección de datos que se almacenan como representaciones matemáticas, se que no dice mucho esto pero es la base para entender algo más grande.

Un vector es un conjunto de valores numéricos, por ejemplo una lista en Python: [1, 3, 5, 7] es un vector y estos números indican una ubicación dentro de un espacio (de la memoria), igual que un número de fila y columna en una planilla Excel indica una celda específica, por ejemplo la celda A10.

Imaginemos que entramos en una zapatería y vemos un par de zapatos que nos gustan, en el instante llega un vendedor para sugerirnos otros zapatos que se parezcan, y esto sucede seguido en el comercio electrónico. ¿Cuántas veces han comprado en una tienda online de algún comercio y la misma tienda les empieza a sugerir artículos similares a los que compraron?. Bueno, la gracia de las bases de datos vectoriales es que sirven a los modelos de aprendizaje automático poder identificar objetos similares de forma rápida sobre la base de grandes cantidades de datos (big data), lo que permite crear programas avanzados de Inteligencia Artificial.

La inserción de datos vectoriales se generan mediante modelos de IA con grandes cantidades de datos donde se necesita realizar análisis en tiempo real para comprender patrones, relaciones y estructuras subyacentes.

En una base de datos vectorial los documentos de la parte superior derecha son probablemente similares entre sí. En las bases de datos tradicionales, normalmente buscamos filas en la base de datos cuyo valor suele coincidir exactamente con nuestra consulta. En las bases de datos vectoriales, aplicamos una métrica de similitud para encontrar el vector que sea más similar a nuestra consulta.

¿Cómo funcionan las bases de datos vectoriales?

¿Cómo funciona una base de datos vectorial? (fuente)

Cada vector en una base de datos vectorial corresponde a un objeto o elemento, ya sea que se trate de una palabra, una imagen, un vídeo, una película, un documento o cualquier otro dato. Es posible que estos vectores sean largos y complejos, y que expresen la ubicación de cada objeto a lo largo de docenas o incluso cientos de dimensiones.

Por ejemplo, una base de datos vectorial de películas puede ubicar películas según dimensiones como la duración, el género, el año de estreno, la clasificación de orientación parental, el número de actores en común, el número de espectadores en común, etc. Si estos vectores se crean con precisión, es posible que películas similares acaben agrupadas en la base de datos vectorial.

Casos de uso de la base de datos vectorial en aplicaciones LLM (fuente)

¿Cómo se usan las bases de datos vectoriales?

  • Búsquedas semánticas y de similitud: las bases de datos vectoriales permiten que la aplicación conecte elementos pertinentes entre sí. Los vectores que se agrupan son similares y probablemente relevantes entre sí. Esto puede ayudar a los usuarios a buscar información relevante (por ejemplo, una búsqueda de imágenes), pero también ayuda a las aplicaciones:
    • Recomendar productos similares
    • Sugerir canciones, películas o programas
    • Sugerir imágenes o vídeos
  • Aprendizaje automático y aprendizaje profundo: la capacidad de conectar elementos relevantes de información permite construir modelos de aprendizaje automático (y aprendizaje profundo) que pueden realizar tareas cognitivas complejas.
  • Modelos lingüísticos de gran tamaño (LLM) e IA generativa: los LLM, como aquel sobre el que están construidos ChatGPT (de Open AI) y Bard (de Google), se basan en el análisis contextual del texto que es posible gracias a las bases de datos vectoriales. Al asociar palabras, frases e ideas entre sí, los LLM pueden comprender el lenguaje humano natural e incluso generar texto.

Las bases de datos vectoriales más utilizadas

1. Chroma

Chroma es una base de datos vectorial de código abierto nativa de IA . Chroma facilita la creación de aplicaciones LLM al permitir que los conocimientos, los hechos y las habilidades (knowledge, facts, and skills) se puedan incorporar a los LLM.

Documentación oficial

2. Pinecone

Base de datos vectorial Pinecone (fuente)

Pinecone proporciona memoria a largo plazo para aplicaciones de IA de alto rendimiento. Es una base de datos vectorial administrada y nativa de la nube con una API optimizada y sin problemas de infraestructura. Pinecone ofrece resultados de consultas actualizados y relevantes con baja latencia a una escala de miles de millones de vectores.

Documentación oficial

3. Weaviate

Weaviate es una base de datos vectorial de código abierto. Te permite almacenar objetos de datos e incrustaciones de vectores de tus modelos ML favoritos y escalar sin problemas a miles de millones de objetos de datos.

Documentación oficial

4. Faiss

Fuente

Facebook AI Similarity Search (FAISS) es una biblioteca que permite a los desarrolladores buscar rápidamente incrustaciones de documentos multimedia que sean similares entre sí. Resuelve las limitaciones de los motores de búsqueda de consultas tradicionales que están optimizados para búsquedas basadas en hash y proporciona funciones de búsqueda de similitudes más escalables.

Documentación oficial

5. Qdrant

Qdrant es una base de datos vectorial y una herramienta para realizar búsquedas de similitud de vectores. Funciona como un servicio API, que permite buscar los vectores de alta dimensión más cercanos.

Documentación oficial

La tecnología sigue evolucionado…

Referencias:

https://www.linkedin.com/pulse/3-ways-vector-databases-take-your-llm-use-cases-next-level-mishra

https://www.datacamp.com/blog/the-top-5-vector-databases

https://www.cloudflare.com/learning/ai/what-is-vector-database

Please follow and like us:
Juanjo González

Recent Posts

🚀 Aprende a Crear un Login con Python Flask en Minutos! | Tutorial Completo

En este tutorial te mostraré cómo crear un sistema de login con Python Flask de…

3 meses ago

🚀 Tutorial de Flask con Python: Crea un Mantenedor Totalmente Funcional con SQLAlchemy y MySQL 💻

Aprende a crear un mantenedor completo y funcional en este Tutorial de Flask con Python,…

3 meses ago

Subir imágenes a un servidor con Python Flask en 10 minutos!

¿Quieres aprender a subir imágenes a un servidor con Python Flask de manera fácil y…

3 meses ago

Principios SOLID con Python: ejemplo práctico de Responsabilidad Única

Cuando se crea un proyecto Python mediante programación orientada a objetos (POO), una parte importante…

4 meses ago

Guía para entrevistas técnicas como Ingeniero de Software

Navegando en Twitter sobre temas de programación y tecnología encontré esta guía para entrevistas técnicas…

4 meses ago

¿Qué son y para qué sirven los microservicios?

En el mundo de la programación de software, surgen los microservicios como una innovación clave.…

4 meses ago