🚀 Essayez Zilliz Cloud, la version entièrement gérée de Milvus, gratuitement—découvrez des performances 10x plus rapides ! Essayez maintenant>>

milvus-logo
LFAI
  • Home
  • Blog
  • Grâce à Milvus, tout le monde peut créer une base de données vectorielles de plus d'un milliard d'images

Grâce à Milvus, tout le monde peut créer une base de données vectorielles de plus d'un milliard d'images

  • Scenarios
November 11, 2020
milvus

L'augmentation de la puissance de calcul et la baisse des coûts de calcul ont rendu l'analyse à l'échelle de la machine et l'intelligence artificielle (IA) plus accessibles que jamais. En pratique, cela signifie qu'avec un seul serveur et 10 lignes de code, il est possible de construire un moteur de recherche d'images inversé capable d'interroger plus d'un milliard d'images en temps réel. Cet article explique comment Milvus, une plateforme open-source de gestion de données vectorielles, peut être utilisée pour créer de puissants systèmes de traitement et d'analyse de données non structurées, ainsi que la technologie sous-jacente qui rend tout cela possible.

Aller à :

Comment l'IA permet-elle l'analyse de données non structurées ?

Selon une statistique souvent citée, 80 % des données mondiales sont non structurées, mais seulement 1 % d'entre elles sont analysées. Les données non structurées, y compris les images, la vidéo, l'audio et le langage naturel, ne suivent pas de modèle prédéfini ou de mode d'organisation. Cela rend difficile le traitement et l'analyse de grands ensembles de données non structurées. Alors que la prolifération des smartphones et autres appareils connectés pousse la production de données non structurées vers de nouveaux sommets, les entreprises sont de plus en plus conscientes de l'importance des informations tirées de ces données nébuleuses.

Depuis des décennies, les informaticiens ont développé des algorithmes d'indexation conçus pour organiser, rechercher et analyser des types de données spécifiques. Pour les données structurées, il y a le bitmap, les tables de hachage et le B-tree, qui sont couramment utilisés dans les bases de données relationnelles développées par les géants de la technologie tels qu'Oracle et IBM. Pour les données semi-structurées, les algorithmes d'indexation inversée sont standard et peuvent être trouvés dans des moteurs de recherche populaires comme Solr et ElasticSearch. Cependant, les algorithmes d'indexation des données non structurées reposent sur une intelligence artificielle à forte intensité de calcul qui n'est devenue largement accessible qu'au cours de la dernière décennie.

Les réseaux neuronaux convertissent les données non structurées en vecteurs de caractéristiques conviviaux pour l'ordinateur

Les réseaux neuronaux (par exemple CNN, RNN et BERT) permettent de convertir des données non structurées en vecteurs de caractéristiques (également appelés "embeddings"), qui sont des chaînes de nombres entiers ou flottants. Ce format de données numériques est beaucoup plus facile à traiter et à analyser par les machines. Des applications couvrant la recherche inversée d'images, la recherche de vidéos, le traitement du langage naturel (NLP) et d'autres encore peuvent être créées en intégrant des données non structurées dans des vecteurs de caractéristiques, puis en calculant la similarité entre les vecteurs à l'aide de mesures telles que la distance euclidienne ou la similarité en cosinus.

Blog_Thanks to AI, Anyone Can Build a Search Engine for 1+ Billion Images_2.jpeg Blog_Grâce à l'IA, n'importe qui peut construire un moteur de recherche pour plus d'un milliard d'images_2.jpeg

Le calcul de la similarité vectorielle est un processus relativement simple qui repose sur des algorithmes bien établis. Cependant, les ensembles de données non structurées, même après avoir été convertis en vecteurs de caractéristiques, sont généralement plusieurs ordres de grandeur plus importants que les ensembles de données structurés et semi-structurés traditionnels. La recherche de similarités vectorielles est compliquée par l'espace de stockage et la puissance de calcul nécessaires pour interroger efficacement et précisément des données non structurées à grande échelle. Toutefois, si un certain degré de précision peut être sacrifié, il existe divers algorithmes de recherche approximative du plus proche voisin (ANN) qui peuvent améliorer considérablement l'efficacité de l'interrogation pour les ensembles de données massifs à haute dimensionnalité. Ces algorithmes ANN réduisent les besoins en stockage et la charge de calcul en regroupant les vecteurs similaires, ce qui accélère la recherche vectorielle. Les algorithmes les plus couramment utilisés sont ceux basés sur les arbres, les graphes et les combinaisons d'ANN.

Que sont les plateformes de gestion des données vectorielles ?

Les plateformes de gestion des données vectorielles sont des applications conçues spécialement pour le stockage, le traitement et l'analyse d'énormes ensembles de données vectorielles. Ces outils sont conçus pour s'interfacer facilement avec de grandes quantités de données et comprennent des fonctionnalités qui rationalisent la gestion des données vectorielles. Malheureusement, il existe peu de systèmes qui soient à la fois flexibles et suffisamment puissants pour relever les défis du big data moderne. Milvus, une plateforme de gestion des données vectorielles initiée par Zilliz et publiée sous une licence open-source en 2019, tente de combler ce vide.

Quelles sont les limites des approches existantes en matière de gestion des données vectorielles ?

Une façon courante de construire un système d'analyse de données non structurées consiste à coupler des algorithmes tels que ANN avec des bibliothèques d'implémentation open-source telles que Facebook AI Similarity Search (Faiss). En raison de plusieurs limitations, ces combinaisons algorithme-bibliothèque ne sont pas équivalentes à un système de gestion des données vectorielles à part entière comme Milvus. Les technologies existantes utilisées pour la gestion des données vectorielles sont confrontées aux problèmes suivants :

  1. Flexibilité : Par défaut, les systèmes existants stockent généralement toutes les données dans la mémoire principale, ce qui signifie qu'ils ne peuvent pas être exécutés sur plusieurs machines et qu'ils sont mal adaptés au traitement d'ensembles de données massifs.
  2. Traitement dynamique des données : Les données sont souvent considérées comme statiques une fois introduites dans les systèmes existants, ce qui complique le traitement des données dynamiques et rend impossible la recherche en temps quasi réel.
  3. Traitement avancé des requêtes : La plupart des outils ne prennent pas en charge le traitement avancé des requêtes (par exemple, le filtrage des attributs et les requêtes multi-vectorielles), qui est essentiel pour construire des moteurs de recherche par similarité utiles.
  4. Optimisations informatiques hétérogènes : Peu de plateformes offrent des optimisations pour les architectures de systèmes hétérogènes à la fois sur les CPU et les GPU (à l'exception de Faiss), ce qui entraîne des pertes d'efficacité.

Milvus tente de surmonter toutes ces limitations. Le système améliore la flexibilité en offrant un support pour une variété d'interfaces d'application (y compris des SDK en Python, Java, Go, C++ et des API RESTful), de multiples types d'index vectoriels (par exemple, des index basés sur la quantification et des index basés sur les graphes), et un traitement avancé des requêtes. Milvus traite les données vectorielles dynamiques à l'aide d'un arbre de fusion log-structuré (arbre LSM), ce qui rend les insertions et les suppressions de données efficaces et permet aux recherches de se dérouler en temps réel. Milvus fournit également des optimisations pour les architectures informatiques hétérogènes sur les CPU et GPU modernes, ce qui permet aux développeurs d'adapter les systèmes à des scénarios, des ensembles de données et des environnements d'application spécifiques.

Blog_Thanks to AI, Anyone Can Build a Search Engine for 1+ Billion Images_3.png Blog_Grâce à l'IA, n'importe qui peut construire un moteur de recherche pour plus d'un milliard d'images_3.png

En utilisant diverses techniques d'indexation ANN, Milvus est en mesure d'atteindre un taux de rappel de 99 % dans le top 5. Le système est également capable de charger plus d'un million d'entrées de données par minute. Cela se traduit par un temps de requête inférieur à une seconde lors de l'exécution d'une recherche d'image inversée sur 1 milliard d'images. En tant qu'application native dans le nuage pouvant fonctionner comme un système distribué déployé sur plusieurs nœuds, Milvus peut facilement et de manière fiable atteindre des performances similaires sur des ensembles de données contenant 10, voire 100 milliards d'images. En outre, le système ne se limite pas aux données d'images, avec des applications couvrant la vision par ordinateur, l'IA conversationnelle, les systèmes de recommandation, la découverte de nouveaux médicaments, et bien plus encore.

Comme indiqué ci-dessus, une plateforme de gestion de données vectorielles performante telle que Milvus, associée à des algorithmes de plus proche voisin approximatif, permet la recherche de similarités sur des volumes gigantesques de données non structurées. Cette technologie peut être utilisée pour développer des applications qui couvrent un large éventail de domaines. Nous expliquons brièvement ci-dessous plusieurs cas d'utilisation courants des outils de gestion des données vectorielles et de la recherche de similarités vectorielles.

Les principaux moteurs de recherche tels que Google offrent déjà aux utilisateurs la possibilité d'effectuer des recherches par image. En outre, les plateformes de commerce électronique ont compris les avantages de cette fonctionnalité pour les acheteurs en ligne, et Amazon a intégré la recherche d'images dans ses applications pour smartphones.

Blog_Thanks to AI, Anyone Can Build a Search Engine for 1+ Billion Images_4.png Blog_Grâce à l'IA, n'importe qui peut créer un moteur de recherche pour plus d'un milliard d'images_4.png

Les logiciels libres comme Milvus permettent à n'importe quelle entreprise de créer son propre système de recherche d'images inversées, abaissant ainsi les barrières à l'entrée pour cette fonctionnalité de plus en plus demandée. Les développeurs peuvent utiliser des modèles d'IA pré-entraînés pour convertir leurs propres ensembles de données d'images en vecteurs, puis exploiter Milvus pour permettre la recherche de produits similaires par image.

Systèmes de recommandation vidéo

Les grandes plateformes vidéo en ligne comme YouTube, qui reçoit 500 heures de contenu généré par les utilisateurs chaque minute, présentent des exigences uniques en matière de recommandation de contenu. Afin de faire des recommandations pertinentes en temps réel qui prennent en compte les nouveaux téléchargements, les systèmes de recommandation vidéo doivent offrir un temps de requête rapide comme l'éclair et un traitement dynamique efficace des données. En convertissant les images clés en vecteurs, puis en introduisant les résultats dans Milvus, il est possible de rechercher et de recommander des milliards de vidéos en temps quasi réel.

Traitement du langage naturel (NLP)

Le traitement du langage naturel est une branche de l'intelligence artificielle qui vise à construire des systèmes capables d'interpréter les langues humaines. Après avoir converti les données textuelles en vecteurs, Milvus peut être utilisé pour identifier et supprimer rapidement les textes en double, alimenter la recherche sémantique ou même créer un assistant d'écriture intelligent. Une plate-forme efficace de gestion des données vectorielles permet de maximiser l'utilité de tout système NLP.

En savoir plus sur Milvus

Si vous souhaitez en savoir plus sur Milvus, visitez notre site web. En outre, notre bootcamp propose plusieurs tutoriels, avec des instructions pour configurer Milvus, effectuer des tests de référence et créer une variété d'applications différentes. Si vous êtes intéressé par la gestion des données vectorielles, l'intelligence artificielle et les défis liés aux big data, rejoignez notre communauté open-source sur GitHub et discutez avec nous sur Slack.

Vous voulez en savoir plus sur la création d'un système de recherche d'images ? Consultez cette étude de cas :

    Try Managed Milvus for Free

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

    Get Started

    Like the article? Spread the word

    Continuer à Lire