¿Qué es una base de datos vectorial?
La información se presenta de muchas formas. Parte de la información no está estructurada (como los documentos de texto, los archivos multimedia enriquecidos y el audio) y otra parte está estructurada (como los registros de aplicaciones, las tablas y los gráficos). Las innovaciones en inteligencia artificial y machine learning (AI/ML) nos permitieron crear un tipo de modelo de ML: modelos de incrustación. Las incrustaciones codifican todos los tipos de datos en vectores que capturan el significado y el contexto de un activo. Esto nos permite encontrar activos similares mediante la búsqueda de puntos de datos vecinos. Los métodos de búsqueda vectorial permiten experiencias únicas, como tomar una fotografía con el smartphone y buscar imágenes similares.
Las bases de datos vectoriales proporcionan la capacidad de almacenar y recuperar vectores como puntos de alta dimensión. Añaden capacidades adicionales para la búsqueda eficiente y rápida de los vecinos más cercanos en el espacio N-dimensional. Por lo general, se basan en índices de k vecinos más cercanos (k-nearest neighbor, k-NN) y se crean con algoritmos como los algoritmos Hierarchical Navigable Small World (HNSW) e Inverted File Index (IVF). Las bases de datos vectoriales proporcionan capacidades adicionales (como la gestión de datos, la tolerancia a errores, la autenticación y el control de acceso) y un motor de consultas.
¿Cómo se usan las bases de datos vectoriales?
Las bases de datos vectoriales se utilizan normalmente para impulsar casos de uso de búsquedas vectoriales, como la búsqueda visual, semántica y multimodal. Más recientemente, se han combinado con modelos de texto de inteligencia artificial (IA) generativa para crear agentes inteligentes que proporcionan experiencias de búsqueda conversacional. También pueden evitar que los modelos de IA generativa tengan alucinaciones, lo que puede provocar que los chatbots proporcionen respuestas no fácticas pero creíbles.
El proceso de desarrollo comienza con la creación de un modelo de incrustación diseñado para codificar imágenes de productos similares a un corpus en vectores. El proceso de importación de datos también se denomina hidratación de datos. El desarrollador de la aplicación ahora puede usar la base de datos para buscar productos similares codificando una imagen del producto y utilizando el vector para buscar imágenes similares.
Dentro del modelo, los índices de k vecino más cercano (k-nearest neighbor, k-NN) proporcionan una recuperación eficiente de los vectores y aplican una función de distancia como el coseno para clasificar los resultados por similitud.
¿Por qué son importantes las bases de datos vectoriales?
Sus desarrolladores pueden indexar los vectores generados por las incrustaciones en una base de datos vectorial. Esto les permite encontrar activos similares consultando vectores vecinos.
Las bases de datos vectoriales proporcionan un método para hacer operativos los modelos de incrustación. El desarrollo de aplicaciones es más productivo con capacidades de base de datos como la gestión de recursos, los controles de seguridad, la escalabilidad, la tolerancia a errores y la recuperación eficiente de la información mediante lenguajes de consulta sofisticados.
En última instancia, las bases de datos vectoriales permiten a los desarrolladores crear experiencias de aplicaciones únicas. Por ejemplo, los usuarios pueden tomar fotografías en sus smartphones para buscar imágenes similares.
Los desarrolladores pueden usar otros tipos de modelos de aprendizaje automático para automatizar la extracción de metadatos a partir de contenidos como imágenes y documentos escaneados. Pueden indexar metadatos junto con vectores para permitir la búsqueda híbrida tanto en palabras clave como en vectores. También pueden fusionar la comprensión semántica con el ranking de relevancia para mejorar los resultados de búsqueda.
Las innovaciones en la inteligencia artificial (IA) generativa introdujeron nuevos tipos de modelos, como ChatGPT, que generan textos y sostienen conversaciones complejas con personas humanas. Algunos pueden funcionar en múltiples modalidades; por ejemplo, algunos modelos permiten a los usuarios describir un paisaje y generar una imagen que se ajuste a la descripción.
Sin embargo, los modelos generativos son propensos a las alucinaciones, lo que podría, por ejemplo, provocar que un chatbot confunda a los usuarios. Las bases de datos vectoriales pueden complementar los modelos de IA generativa. Pueden proporcionar una base de conocimientos externa para los chatbots con IA generativa y ayudar a garantizar que proporcionen información confiable.
¿Quién usa las bases de datos vectoriales?
Las bases de datos vectoriales son para desarrolladores que desean crear experiencias basadas en búsquedas vectoriales. Un desarrollador de aplicaciones puede usar modelos de código abierto, herramientas de aprendizaje automático (ML) automatizado y servicios de modelos básicos para generar incrustaciones e hidratar una base de datos vectorial. Esto requiere una experiencia mínima en ML.
Un equipo de científicos e ingenieros de datos puede crear incrustaciones ajustadas por expertos y ponerlas en funcionamiento a través de una base de datos vectorial. Esto puede ayudarlos a ofrecer una solución de inteligencia artificial (IA) con mayor rapidez.
Los equipos de operaciones se benefician de la gestión de las soluciones como cargas de trabajo de bases de datos conocidas. Pueden utilizar las herramientas y los manuales de estrategias existentes.
¿Cuáles son los beneficios de las bases de datos vectoriales?
Las bases de datos vectoriales permiten a los desarrolladores innovar y crear experiencias únicas impulsadas por la búsqueda vectorial. Pueden acelerar el desarrollo de aplicaciones de inteligencia artificial (IA) y simplificar la operacionalización de las cargas de trabajo de aplicaciones impulsadas por la IA.
Las bases de datos vectoriales ofrecen una alternativa a la creación sobre índices simples de k vecinos más cercanos (K-nn). Ese tipo de índice requiere una gran cantidad de experiencia e ingeniería adicionales para su uso, ajuste y puesta en funcionamiento.
Una buena base de datos vectorial proporciona a las aplicaciones una base mediante funciones como la gestión de datos, la tolerancia a errores, las funciones de seguridad críticas y un motor de consultas. Estas capacidades permiten a los usuarios poner en funcionamiento sus cargas de trabajo para simplificar el escalado, mantener una alta escalabilidad y cumplir con los requisitos de seguridad.
Capacidades como el motor de consultas y los SDK simplifican el desarrollo de aplicaciones. También permiten a los desarrolladores realizar consultas más avanzadas (como buscar y filtrar) en los metadatos como parte de una búsqueda de K-nn. También tienen la opción de utilizar modelos híbridos de puntuación de relevancia que combinan modelos de frecuencia terminológica tradicionales, como el BM25, con puntuaciones vectoriales para mejorar la recuperación de información.
¿Cuáles son los desafíos de las bases de datos vectoriales?
Las bases de datos vectoriales comparten muchos de los mismos desafíos a los que se enfrentan otras tecnologías de bases de datos. Habrá un esfuerzo continuo para mejorar la escalabilidad, la precisión de la aproximación, el rendimiento de la latencia y la economía.
Al tratarse de una tecnología relativamente incipiente, muchas bases de datos vectoriales necesitan desarrollar competencias básicas de bases de datos, como la seguridad, la resiliencia, el soporte operativo y la diversificación del soporte de la carga de trabajo. Esto será importante a medida que las aplicaciones de inteligencia artificial (IA) vayan madurando y requieran algo más que una simple búsqueda vectorial.
¿Cómo puede AWS cumplir con los requisitos de su base de datos vectorial?
Amazon Web Services (AWS) ofrece muchos servicios para sus requisitos de bases de datos vectoriales:
- Para empezar a usar SageMaker Canvas y QuickSight, consulte el Amazon OpenSearch Service le permite realizar fácilmente análisis interactivo de registros, supervisión de aplicaciones en tiempo real, búsqueda de sitios web y mucho más. Para las bases de datos vectoriales, puede leer sobre la búsqueda de k vecinos más cercanos (k-NN) en OpenSearch Service.
- Edición compatible con Postgre SQL de Amazon Aurora y Amazon Relational Database Service (Amazon RDS) para PostgreSQL admiten la extensión pgvector para almacenar incrustaciones de modelos de machine learning (ML) en la base de datos y realizar búsquedas de similitud eficientes.
- Amazon Neptune ML es una nueva capacidad de Neptune que utiliza las redes neuronales de gráficos (Graph Neural Networks, GNN), una técnica de ML creada específicamente para los gráficos, para hacer predicciones fáciles, rápidas y más precisas mediante datos de gráficos.
- La búsqueda vectorial para Amazon MemoryDB permite almacenar millones de vectores, con tiempos de respuesta de consulta y actualización de milisegundos de un solo dígito, y decenas de miles de consultas por segundo (QPS) con una recuperación superior al 99 %.
- Amazon DocumentDB (compatible con MongoDB) admite la búsqueda vectorial, una nueva capacidad que permite almacenar, indexar y buscar millones de vectores con tiempos de respuesta de milisegundos. Gracias a la búsqueda vectorial para Amazon DocumentDB, puede configurar, operar y escalar bases de datos para las aplicaciones de ML de forma sencilla.
Cree una cuenta hoy mismo para comenzar a utilizar las bases de datos vectoriales en AWS.
Siguientes pasos con AWS
Obtenga acceso instantáneo al nivel Gratuito de AWS.
Comience a crear en la consola de administración de AWS.