Cuantización vectorial: búsqueda a escala y aplicaciones de IA generativa

Mai Nguyen and Henry Weller

#genAI#Vector Search

Update 12/12/2024: The upcoming vector quantization capabilities mentioned at the end of this blog post are now available in public preview:

Support for ingestion and indexing of binary (int1) quantized vectors: gives developers the flexibility to choose and ingest the type of quantized vectors that best fits their requirements.

Automatic quantization and rescoring: provides a native mechanism for scalar quantization and binary quantization with rescoring, making it easier for developers to implement vector quantization entirely within Atlas Vector Search.

View the documentation to get started.

Nos complace anunciar un sólido conjunto de capacidades de cuantificación vectorial en MongoDB Atlas Vector Search. Estas capacidades reducirán el tamaño de los vectores al tiempo que preservan el rendimiento, lo que permitirá a los desarrolladores crear poderosas aplicaciones de búsqueda semántica e IA generativa con más escala y a un costo menor. Además, a diferencia de las bases de datos vectoriales relacionales o de nicho, el modelo de documentos flexible de MongoDB, junto con los vectores cuantificados, permite una mayor agilidad en las pruebas y la implementación de diferentes modelos de incrustación de forma rápida y sencilla.

La compatibilidad con la ingesta de vectores cuantizados escalares ya está disponible con carácter general, y será seguida por varias versiones nuevas en las próximas semanas. Siga leyendo para saber cómo funciona la cuantificación vectorial y visite nuestra documentación para comenzar.

Brand graphic representing Atlas Vector Search

Los desafíos de las aplicaciones vectoriales a gran escala

Si bien el uso de vectores abrió una gama de nuevas posibilidades, como el resumen de contenido y el análisis de sentimientos, los chatbots de lenguaje natural y la generación de imágenes, desbloquear información dentro de datos no estructurados puede requerir almacenar y buscar en miles de millones de vectores, lo que puede volver inviable rápidamente.

Los vectores son efectivamente matrices de números de coma flotante que representan información no estructurada de una manera que las computadoras pueden entender (que van desde unos pocos cientos hasta miles de millones de matrices), y a medida que aumenta el número de vectores, también lo hace el tamaño del índice requerido para buscar en ellos. Como resultado, las aplicaciones basadas en vectores a gran escala que utilizan vectores de fidelidad completa a menudo tienen altos costos de procesamiento y tiempos de consulta lentos, lo que dificulta su escalabilidad y rendimiento.

Cuantificación de vectores para la rentabilidad, la escalabilidad y el rendimiento

La cuantización vectorial, una técnica que comprime vectores conservando su similitud semántica, ofrece una solución a este desafío. Imagine convertir una imagen a todo color en escala de grises para reducir el espacio de almacenamiento en una computadora. Esto implica simplificar la información de color de cada pixel agrupando colores similares en canales de color primarios o "contenedores de cuantificación" y, a continuación, representar cada pixel con un solo valor de su contenedor. Los valores en conjunto se utilizan para crear una nueva imagen en escala de grises con un tamaño más pequeño pero conservando la mayoría de los detalles originales, como se muestra en la Figura 1.

Figura 1: Ilustración de la cuantificación de una imagen RGB en escala de grises
This image is an illustration of quantizing an RGB image into grayscale. On the left side is a photo of a puppy in normal color. In the middle is that same photo in RGB examples. And then on the right is a grayscale version of the photo.

La cuantización vectorial funciona de manera similar, reduciendo los vectores de alta fidelidad a menos bits para reducir significativamente los costos de memoria y almacenamiento sin comprometer los detalles importantes. Mantener este equilibrio es fundamental, ya que las aplicaciones de búsqueda e inteligencia artificial deben proporcionar información relevante para ser útiles.

Dos métodos de cuantificación efectivos son escalar (convertir un punto flotante en un número entero) y binario (convertir un punto flotante en un solo bit de 0 o 1). Las capacidades de cuantificación actuales y futuras capacitarán a los desarrolladores para maximizar el potencial de Atlas Vector Search.

El beneficio más impactante de la cuantificación vectorial es el aumento de la escalabilidad y el ahorro de costos a través de la reducción de los recursos informáticos y el procesamiento eficiente de vectores. Y cuando se combina con los nodos de búsqueda, la infraestructura dedicada de MongoDB para la escalabilidad independiente a través del aislamiento de cargas de trabajo y la infraestructura optimizada para memoria para cargas de trabajo de búsqueda semántica e IA generativa, la cuantificación vectorial puede reducir aún más los costos y mejorar el rendimiento, incluso en el volumen y la escala más altos para desbloquear más casos de uso.

"Cohere se complace en ser uno de los primeros socios en apoyar la ingestión cuantificada de vectores en MongoDB Atlas”, dijo Nils Reimers, VP de búsqueda de AI en Cohere. "Los modelos de incrustación, como Cohere Embed v3, ayudan a las compañías a ver resultados de búsqueda más precisos basados en sus propias fuentes de datos. Esperamos poder ofrecer a nuestros clientes conjuntos aplicaciones precisas y rentables para sus necesidades”.

En nuestras pruebas, en comparación con los vectores de fidelidad completa, los vectores tipo BSON, el formato de serialización binaria tipo JSON de MongoDB para un almacenamiento eficiente de documentos, redujeron el tamaño del almacenamiento en un 66% (de 41 GB a 14 GB). Y como se muestra en las Figuras 2 y 3, las pruebas ilustran una reducción significativa de memoria (73% a 96% menos) y mejoras de latencia utilizando vectores cuantificados, donde la cuantificación escalar preserva el rendimiento de recuperación y el rendimiento de recuperación de la cuantificación binaria se mantiene con la reclasificación, un proceso de evaluación de un pequeño subconjunto de las salidas cuantificadas frente a vectores de fidelidad completa para mejorar la precisión de los resultados de búsqueda.

Figura 2: Reducción significativa del almacenamiento + buen rendimiento de recuperación y latencia con cuantificación en diferentes modelos de incrustación
This image is a table displaying storage size and latency times for different amounts of documents and test groups. The test is divided into three groups, which are Full-Fidelity Vectors, Scalar Quantization, and Binary Quantization. Then, there are two different groups for the number of total documents, one being 200k docs on OpenAI embedding models, and the other being 3 million docs on Cohere embedding model. For the data, the full-fidelity vectors test on 200k docs had a vector index size of 1.2 GB and a latency of 13ms, and a 12GB vector index size and 26ms latency on the 3 million docs test. The Scalar Quantization test had a vector index size of .32 GB and 11ms latency on the 200k docs test, and a 3.2 GB vector index size and 19ms latency on the 3 million docs test. Finally, the binary quantization had a .05 GB vector index size on the 200k docs test (a 96% reduction from other tests) along with a 12ms latency, and then a .5 GB vector index size on 3 million docs test, representing a 96% reduction from the Full-Fidelity Vectors test.

Figura 3: Mejora notable en el rendimiento de recuperación para la cuantificación binaria cuando se combina con la repuntuación
This image is a graph of improvement in recall performance for binary quantization when combining with rescoring. The Y axis of the graph represents average recall over 50 queries, while the X axis represents num candidates. There are 4 lines on the graph, each representing a different type of queries. The line representing binary, in red, starts near 0,0 and stays below 0.6 on the graph across all num candidates, putting it as the lowest line on the graph. The float ANN line, in blue, starts near the top of the Y axis at 0 num candidates and moves in a level line across the graph, same goes for the scalar line, in orange, which comes in just below the float ANN. The binary + rescoring line starts towards the bottom of the Y axis at 0 num candidates, but gradually increases the more the graph moves right.

Además, gracias al beneficio de costo reducido, la cuantificación de vectores facilita casos de uso de vectores múltiples más avanzados que fueron demasiado exigentes desde el punto de vista computacional o prohibitivos para implementar. Por ejemplo, la cuantificación vectorial puede ayudar a los usuarios a:

  • Pruebe fácilmente diferentes modelos de integración A/B empleando múltiples vectores producidos a partir del mismo campo fuente durante la creación de prototipos. El modelo de documentos de MongoDB, junto con vectores cuantificados, permite una mayor agilidad a menores costos. El esquema de documentos flexible permite a los desarrolladores implementar y comparar rápidamente los resultados de los modelos de incrustación sin necesidad de reconstruir el índice o aprovisionar un modelo de datos o un conjunto de infraestructura completamente nuevos.

  • Mejore aún más la relevancia de los resultados de búsqueda o el contexto para los modelos lingüísticos grandes (LLM) mediante la incorporación de vectores de múltiples fuentes de relevancia, como diferentes campos de origen (descripciones de productos, imágenes de productos, etc.) incrustados en el mismo modelo o en modelos diferentes.

Cómo empezar y qué sigue

Ahora, gracias a la compatibilidad con la ingesta de vectores cuantizados escalares, los desarrolladores pueden importar y trabajar con vectores cuantificados de los proveedores de modelos de incrustación que prefieran (como Cohere, Nomic, Jina, Mixedbread y otros), directamente en Atlas Vector Search. Lea la documentación y el tutorial para comenzar.

Y en las próximas semanas, características adicionales de cuantificación vectorial equiparán a los desarrolladores con un completo conjunto de herramientas para crear y optimizar aplicaciones con vectores cuantificados:

El soporte para la ingestión de vectores binarios cuantificados permitirá una mayor reducción del espacio de almacenamiento, lo que permitirá un mayor ahorro de costos y brindará a los desarrolladores la flexibilidad de elegir el tipo de vectores cuantificados que mejor se adapte a sus necesidades.

La cuantificación y la reclasificación automáticas proporcionarán capacidades nativas para la cuantificación escalar, así como la cuantificación binaria con la reclasificación en Atlas Vector Search, lo que facilita a los desarrolladores aprovechar al máximo la cuantificación vectorial dentro de la plataforma.

Con la compatibilidad con vectores cuantificados en MongoDB Atlas Vector Search, puede crear aplicaciones de búsqueda semántica y de IA generativa escalables y de alto rendimiento con flexibilidad y rentabilidad. Consulte estos recursos para comenzar la documentación y el tutorial.

Diríjase a nuestra guía de inicio rápido para comenzar con Atlas Vector Search hoy.