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
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 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)
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.
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.
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.
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.
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.
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
En este tutorial te mostraré cómo crear un sistema de login con Python Flask de…
Aprende a crear un mantenedor completo y funcional en este Tutorial de Flask con Python,…
¿Quieres aprender a subir imágenes a un servidor con Python Flask de manera fácil y…
Cuando se crea un proyecto Python mediante programación orientada a objetos (POO), una parte importante…
Navegando en Twitter sobre temas de programación y tecnología encontré esta guía para entrevistas técnicas…
En el mundo de la programación de software, surgen los microservicios como una innovación clave.…