🚀 Prueba Zilliz Cloud, el Milvus completamente gestionado, gratis—¡experimenta un rendimiento 10 veces más rápido! Prueba Ahora>>

milvus-logo
LFAI
  • Home
  • Blog
  • Gracias a Milvus, cualquiera puede crear una base de datos vectorial de más de mil millones de imágenes

Gracias a Milvus, cualquiera puede crear una base de datos vectorial de más de mil millones de imágenes

  • Scenarios
November 11, 2020
milvus

El aumento de la potencia de cálculo y el descenso de los costes de computación han hecho que el análisis a escala de máquina y la inteligencia artificial (IA) sean más accesibles que nunca. En la práctica, esto significa que con un solo servidor y 10 líneas de código es posible construir un motor de búsqueda inversa de imágenes capaz de consultar más de mil millones de imágenes en tiempo real. Este artículo explica cómo Milvus, una plataforma de gestión de datos vectoriales de código abierto, puede utilizarse para crear potentes sistemas de procesamiento y análisis de datos no estructurados, así como la tecnología subyacente que lo hace posible.

Ir a:

¿Cómo permite la IA el análisis de datos no estructurados?

Una estadística que se cita a menudo es que el 80% de los datos del mundo no están estructurados, pero sólo se analiza el 1%. Los datos no estructurados, como imágenes, vídeo, audio y lenguaje natural, no siguen un modelo predefinido ni una forma de organización. Esto dificulta el procesamiento y análisis de grandes conjuntos de datos no estructurados. A medida que la proliferación de teléfonos inteligentes y otros dispositivos conectados impulsa la producción de datos no estructurados a nuevas cotas, las empresas son cada vez más conscientes de la importancia que puede tener la información derivada de esta nebulosa.

Durante décadas, los informáticos han desarrollado algoritmos de indexación adaptados para organizar, buscar y analizar tipos de datos específicos. Para los datos estructurados, existen los mapas de bits, las tablas hash y los árboles B, que se utilizan habitualmente en las bases de datos relacionales desarrolladas por gigantes tecnológicos como Oracle e IBM. Para los datos semiestructurados, los algoritmos de indexación invertida son estándar, y se pueden encontrar en motores de búsqueda populares como Solr y ElasticSearch. Sin embargo, los algoritmos de indexación de datos no estructurados se basan en una inteligencia artificial que requiere un uso intensivo de ordenadores y que sólo ha sido ampliamente accesible en la última década.

Las redes neuronales convierten los datos no estructurados en vectores de características fáciles de computación

Las redes neuronales (por ejemplo, CNN, RNN y BERT) permiten convertir datos no estructurados en vectores de características (también conocidos como incrustaciones), que son cadenas de números enteros o flotantes. Este formato de datos numéricos es mucho más fácil de procesar y analizar por las máquinas. Las aplicaciones que abarcan la búsqueda inversa de imágenes, la búsqueda de vídeos, el procesamiento del lenguaje natural (PLN), etc., pueden construirse incrustando datos no estructurados en vectores de características y, a continuación, calculando la similitud entre vectores mediante medidas como la distancia euclidiana o la similitud del coseno.

Blog_Thanks to AI, Anyone Can Build a Search Engine for 1+ Billion Images_2.jpeg Blog_Gracias a la IA, cualquiera puede crear un motor de búsqueda para más de mil millones de imágenes_2.jpeg

Calcular la similitud vectorial es un proceso relativamente sencillo que se basa en algoritmos establecidos. Sin embargo, los conjuntos de datos no estructurados, incluso después de convertirlos en vectores de características, suelen ser varios órdenes de magnitud mayores que los conjuntos de datos estructurados y semiestructurados tradicionales. Sin embargo, si se puede sacrificar cierto grado de precisión, existen varios algoritmos de búsqueda por aproximación al vecino más cercano (RNA) que pueden mejorar drásticamente la eficiencia de la consulta de conjuntos de datos masivos de gran dimensionalidad. Estos algoritmos RNA reducen los requisitos de almacenamiento y la carga computacional al agrupar vectores similares, lo que agiliza la búsqueda de vectores. Los algoritmos más utilizados son los basados en árboles, en grafos y los combinados.

¿Qué son las plataformas de gestión de datos vectoriales?

Las plataformas de gestión de datos vectoriales son aplicaciones diseñadas específicamente para almacenar, procesar y analizar conjuntos de datos vectoriales masivos. Estas herramientas están diseñadas para interactuar fácilmente con grandes cantidades de datos e incluyen funciones que agilizan la gestión de datos vectoriales. Por desgracia, existen pocos sistemas que sean lo suficientemente flexibles y potentes para resolver los retos que plantean los macrodatos modernos. Milvus, una plataforma de gestión de datos vectoriales iniciada por Zilliz y lanzada bajo una licencia de código abierto en 2019, intenta llenar este vacío.

¿Cuáles son las limitaciones de los enfoques existentes para la gestión de datos vectoriales?

Una forma común de construir un sistema de análisis de datos no estructurados es emparejar algoritmos como ANN con bibliotecas de implementación de código abierto como Facebook AI Similarity Search (Faiss). Debido a varias limitaciones, estas combinaciones de algoritmo y biblioteca no son equivalentes a un sistema completo de gestión de datos vectoriales como Milvus. La tecnología existente utilizada para la gestión de datos vectoriales se enfrenta a los siguientes problemas:

  1. Flexibilidad: Por defecto, los sistemas existentes suelen almacenar todos los datos en la memoria principal, lo que significa que no pueden ejecutarse en varias máquinas y no son adecuados para gestionar conjuntos de datos masivos.
  2. Tratamiento dinámico de los datos: A menudo se asume que los datos son estáticos una vez introducidos en los sistemas existentes, lo que complica el procesamiento de datos dinámicos e imposibilita la búsqueda en tiempo casi real.
  3. Procesamiento avanzado de consultas: La mayoría de las herramientas no admiten el procesamiento avanzado de consultas (por ejemplo, filtrado de atributos y consultas multivectoriales), que es esencial para crear motores de búsqueda de similitudes útiles.
  4. Optimizaciones para computación heterogénea: Pocas plataformas ofrecen optimizaciones para arquitecturas de sistemas heterogéneos tanto en CPU como en GPU (excluyendo Faiss), lo que conlleva pérdidas de eficiencia.

Milvus intenta superar todas estas limitaciones. El sistema mejora la flexibilidad ofreciendo soporte para diversas interfaces de aplicación (incluidos SDK en Python, Java, Go, C++ y API RESTful), múltiples tipos de índices vectoriales (por ejemplo, índices basados en cuantización e índices basados en grafos) y procesamiento avanzado de consultas. Milvus maneja datos vectoriales dinámicos mediante un árbol de fusión estructurado en registros (árbol LSM), lo que permite que las inserciones y eliminaciones de datos sean eficientes y que las búsquedas se realicen en tiempo real. Milvus también ofrece optimizaciones para arquitecturas informáticas heterogéneas en CPU y GPU modernas, lo que permite a los desarrolladores ajustar los sistemas a escenarios, conjuntos de datos y entornos de aplicación específicos.

Blog_Thanks to AI, Anyone Can Build a Search Engine for 1+ Billion Images_3.png Blog_Gracias a la IA, cualquiera puede crear un motor de búsqueda para más de mil millones de imágenes_3.png

Utilizando varias técnicas de indexación ANN, Milvus es capaz de alcanzar una tasa de recuperación del 99% entre los cinco primeros. El sistema también es capaz de cargar más de un millón de entradas de datos por minuto. Esto se traduce en un tiempo de consulta inferior a un segundo cuando se ejecuta una búsqueda inversa de imágenes en mil millones de imágenes. Como aplicación nativa de la nube que puede funcionar como un sistema distribuido desplegado en múltiples nodos, Milvus puede lograr fácilmente y de forma fiable un rendimiento similar en conjuntos de datos que contengan 10.000 o incluso 100.000 millones de imágenes. Además, el sistema no se limita a los datos de imágenes, con aplicaciones que abarcan la visión por ordenador, la IA conversacional, los sistemas de recomendación, el descubrimiento de nuevos fármacos, etc.

Como ya se ha indicado, una plataforma de gestión de datos vectoriales capaz como Milvus, combinada con algoritmos de aproximación al vecino más próximo, permite la búsqueda de similitudes en volúmenes gigantescos de datos no estructurados. Esta tecnología puede utilizarse para desarrollar aplicaciones que abarcan una amplia gama de campos. A continuación explicamos brevemente varios casos de uso comunes para las herramientas de gestión de datos vectoriales y la búsqueda de similitud vectorial.

Los principales motores de búsqueda, como Google, ya ofrecen a los usuarios la opción de buscar por imagen. Además, las plataformas de comercio electrónico se han dado cuenta de las ventajas que esta funcionalidad ofrece a los compradores en línea, y Amazon ha incorporado la búsqueda por imágenes en sus aplicaciones para smartphones.

Blog_Thanks to AI, Anyone Can Build a Search Engine for 1+ Billion Images_4.png Blog_Gracias a la IA, cualquiera puede crear un motor de búsqueda para más de mil millones de imágenes_4.png

El software de código abierto como Milvus permite a cualquier empresa crear su propio sistema de búsqueda inversa de imágenes, lo que reduce las barreras de acceso a esta función cada vez más demandada. Los desarrolladores pueden utilizar modelos de IA preentrenados para convertir sus propios conjuntos de datos de imágenes en vectores y, a continuación, aprovechar Milvus para permitir la búsqueda de productos similares por imagen.

Sistemas de recomendación de vídeos

Las principales plataformas de vídeo en línea, como YouTube, que recibe 500 horas de contenidos generados por los usuarios cada minuto, presentan exigencias únicas en lo que respecta a la recomendación de contenidos. Para hacer recomendaciones pertinentes y en tiempo real que tengan en cuenta las nuevas subidas, los sistemas de recomendación de vídeos deben ofrecer un tiempo de consulta rapidísimo y un tratamiento dinámico y eficaz de los datos. Al convertir los fotogramas clave en vectores e introducir los resultados en Milvus, se pueden buscar y recomendar miles de millones de vídeos prácticamente en tiempo real.

Procesamiento del lenguaje natural (PLN)

El procesamiento del lenguaje natural es una rama de la inteligencia artificial cuyo objetivo es crear sistemas capaces de interpretar el lenguaje humano. Tras convertir los datos de texto en vectores, Milvus puede utilizarse para identificar y eliminar rápidamente texto duplicado, potenciar la búsqueda semántica o incluso crear un asistente de escritura inteligente. Una plataforma eficaz de gestión de datos vectoriales ayuda a maximizar la utilidad de cualquier sistema de PLN.

Más información sobre Milvus

Si desea obtener más información sobre Milvus, visite nuestro sitio web. Además, nuestro bootcamp ofrece varios tutoriales, con instrucciones para configurar Milvus, realizar pruebas comparativas y crear una variedad de aplicaciones diferentes. Si le interesa la gestión de datos vectoriales, la inteligencia artificial y los retos que plantean los macrodatos, únase a nuestra comunidad de código abierto en GitHub y charle con nosotros en Slack.

¿Quieres más información sobre la creación de un sistema de búsqueda de imágenes? Consulte este caso práctico:

    Try Managed Milvus for Free

    Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

    Get Started

    Like the article? Spread the word

    Sigue Leyendo