Base de données vectorielle
Cette section traite de la définition et de l'utilisation d'une base de données vectorielle dans les solutions d'IA de NetApp.
Base de données vectorielle
Une base de données vectorielle est un type spécialisé de base de données conçu pour gérer, indexer et rechercher des données non structurées à l'aide d'codages issus de modèles de machine learning. Au lieu d'organiser les données dans un format tabulaire traditionnel, il organise les données sous forme de vecteurs à haute dimension, également appelés embeddings vectoriels. Cette structure unique permet à la base de données de traiter des données complexes et multidimensionnelles plus efficacement et avec plus de précision.
L'une des principales fonctionnalités d'une base de données vectorielle est son utilisation de l'IA générative pour effectuer des analyses. Cela inclut les recherches de similarité, où la base de données identifie les points de données qui sont comme une entrée donnée, et la détection d'anomalies, où elle peut détecter les points de données qui dévient de manière significative de la norme.
En outre, les bases de données vectorielles sont bien adaptées pour traiter les données temporelles, ou les données horodatées. Ce type de données fournit des informations sur ce qui s'est passé et quand il s'est produit, dans l'ordre et par rapport à tous les autres événements dans un système INFORMATIQUE donné. Cette capacité à gérer et à analyser les données temporelles rend les bases de données vectorielles particulièrement utiles pour les applications qui nécessitent une compréhension des événements au fil du temps.
Avantages de la base de données vectorielle pour le ML et l'IA :
-
Recherche multidimensionnelle : les bases de données vectorielles excellent dans la gestion et la récupération de données de haute dimension, souvent générées dans les applications d'IA et de ML.
-
Évolutivité : ces systèmes peuvent évoluer efficacement pour gérer d'importants volumes de données, tout en prenant en charge la croissance et l'extension de vos projets d'IA et de ML.
-
Flexibilité : les bases de données vectorielles offrent un haut degré de flexibilité, permettant l'adaptation de divers types et structures de données.
-
Performances : elles offrent une gestion et une récupération des données haute performance, essentielles pour la vitesse et l'efficacité des opérations d'IA et de ML.
-
Indexation personnalisable : les bases de données vectorielles offrent des options d'indexation personnalisables, permettant une organisation et une récupération optimisées des données en fonction de besoins spécifiques.
Bases de données vectorielles et cas d'utilisation
Cette section fournit des bases de données vectorielles et des détails sur leur utilisation.
Faiss et Scann
Ce sont des bibliothèques qui servent d'outils essentiels dans le domaine de la recherche vectorielle. Ces bibliothèques offrent des fonctionnalités essentielles pour la gestion et la recherche à travers les données vectorielles, ce qui en fait des ressources précieuses dans ce domaine spécialisé de la gestion des données.
ElasticSearch
Il s'agit d'un moteur de recherche et d'analytique largement utilisé, qui a récemment intégré des fonctionnalités de recherche vectorielle. Cette nouvelle fonctionnalité améliore sa fonctionnalité, ce qui lui permet de gérer et de rechercher plus efficacement les données vectorielles.
Pomme de pin
Il s'agit d'une base de données vectorielle robuste dotée d'un ensemble unique de fonctionnalités. Elle prend en charge les vecteurs denses et clairsemés dans sa fonctionnalité d'indexation, ce qui améliore sa flexibilité et son adaptabilité. L'un de ses principaux atouts réside dans sa capacité à combiner des méthodes de recherche classiques avec la recherche vectorielle dense basée sur l'IA pour créer une approche de recherche hybride qui exploite le meilleur des deux mondes.
Principalement basé sur le cloud, Pinecone est conçu pour les applications de machine learning et s'intègre parfaitement avec diverses plateformes, notamment GCP, AWS, Open ai, GPT-3, GPT-3.5, GPT-4, catgut plus, Elasticsearch, Haystack, et bien plus encore. Notez que Pinecone est une plateforme open source disponible en tant que service (SaaS).
Compte tenu de ses fonctionnalités avancées, Pinecone est particulièrement adapté au secteur de la cybersécurité, où ses capacités performantes de recherche et de recherche hybride peuvent être exploitées de manière efficace pour détecter les menaces et y répondre.
Couleur
Il s’agit d’une base de données vectorielle dotée d’une API Core dotée de quatre fonctions principales, dont l’une comprend un magasin de documents vectoriels en mémoire. Il utilise également la bibliothèque des transformateurs de visage pour vectoriser les documents, en améliorant sa fonctionnalité et sa polyvalence.
Chroma est conçu pour fonctionner à la fois dans le cloud et sur site, offrant une flexibilité basée sur les besoins des utilisateurs. En particulier, il excelle dans les applications audio, ce qui en fait un excellent choix pour les moteurs de recherche audio, les systèmes de recommandation de musique et d'autres cas d'utilisation audio.
Weaviate
Cette base de données polyvalente permet aux utilisateurs de vectoriser leur contenu à l'aide de modules intégrés ou de modules personnalisés, offrant ainsi une flexibilité adaptée à des besoins spécifiques. Il propose des solutions entièrement gérées et auto-hébergées, répondant à diverses préférences de déploiement.
L’une des caractéristiques principales de Weaviate est sa capacité à stocker à la fois des vecteurs et des objets, améliorant ainsi ses capacités de traitement des données. Il est largement utilisé pour un large éventail d'applications, y compris la recherche sémantique et la classification des données dans les systèmes ERP. Dans le secteur du commerce électronique, il alimente les moteurs de recherche et de recommandation. Weaviate est également utilisé pour la recherche d'images, la détection des anomalies, l'harmonisation automatisée des données et l'analyse des menaces de cybersécurité, afin de démontrer sa polyvalence dans plusieurs domaines.
Redis
Redis est une base de données vectorielle hautes performances, connue pour son stockage en mémoire rapide, qui offre une faible latence pour les opérations de lecture/écriture. Il s'agit donc d'un excellent choix pour les systèmes de recommandation, les moteurs de recherche et les applications d'analytique qui nécessitent un accès rapide aux données.
Redis prend en charge diverses structures de données pour les vecteurs, y compris les listes, les ensembles et les ensembles triés. Il fournit également des opérations vectorielles telles que le calcul des distances entre les vecteurs ou la recherche d'intersections et de raccords. Ces fonctionnalités sont particulièrement utiles pour la recherche par similarité, la mise en grappe et les systèmes de recommandation basés sur le contenu.
En termes d'évolutivité et de disponibilité, Redis excelle dans la gestion des charges de travail à haut débit et propose la réplication des données. Il s'intègre également bien à d'autres types de données, y compris les bases de données relationnelles traditionnelles (SGBDR).
Redis inclut une fonction publier/s'abonner (Pub/Sub) pour les mises à jour en temps réel, ce qui est utile pour gérer les vecteurs en temps réel. De plus, Redis est léger et simple à utiliser, ce qui en fait une solution conviviale pour la gestion des données vectorielles.
Milvus
Il s'agit d'une base de données vectorielle polyvalente qui propose une API comme un magasin de documents, tout comme MongoDB. Elle se distingue par sa prise en charge d'un large éventail de types de données, ce qui en fait un choix populaire dans les domaines de la data science et de l'apprentissage machine.
L’une des caractéristiques uniques de Milvus est sa capacité de multi-vectorisation, qui permet aux utilisateurs de spécifier à l’exécution le type de vecteur à utiliser pour la recherche. De plus, elle utilise Knowwhere, une bibliothèque située au sommet d'autres bibliothèques comme Faiss, pour gérer la communication entre les requêtes et les algorithmes de recherche vectorielle.
Milvus offre également une intégration transparente avec les workflows d'apprentissage machine grâce à sa compatibilité avec PyTorch et TensorFlow. Cela en fait un excellent outil pour une gamme d'applications, y compris l'e-commerce, l'analyse d'images et de vidéos, la reconnaissance d'objets, la recherche de similarité d'images et la récupération d'images basée sur le contenu. Dans le domaine du traitement du langage naturel, Milvus est utilisé pour la mise en grappe de documents, la recherche sémantique et les systèmes de réponse aux questions.
Pour cette solution, nous avons sélectionné milvus pour la validation de la solution. Pour les performances, nous avons utilisé milvus et postgres(pgvecto.RS).
Pourquoi avons-nous choisi milvus pour cette solution ?
-
Open-Source : Milvus est une base de données vectorielle open-source qui encourage le développement et les améliorations communautaires.
-
Intégration IA : cette solution exploite l'intégration d'applications d'IA et de recherche par similarité pour améliorer les fonctionnalités des bases de données vectorielles.
-
Gestion de grands volumes : Milvus a la capacité de stocker, d'indexer et de gérer plus d'un milliard de vecteurs d'intégration générés par les modèles de réseaux neuronaux profonds (DNN) et de machine learning (ML).
-
Convivial : il est facile à utiliser et sa configuration prend moins d'une minute. Milvus propose également des kits de développement logiciel pour différents langages de programmation.
-
Vitesse : elle offre des vitesses de récupération jusqu'à 10 fois supérieures à celles de certaines solutions.
-
Évolutivité et disponibilité : Milvus est extrêmement évolutif et offre des options d'évolutivité horizontale et verticale en fonction des besoins.
-
Riche en fonctionnalités : il prend en charge différents types de données, le filtrage des attributs, la prise en charge des fonctions définies par l'utilisateur (UDF), les niveaux de cohérence configurables et le temps de déplacement, ce qui en fait un outil polyvalent pour diverses applications.
Présentation de l'architecture Milvus
Cette section fournit des composants de levier supérieur et des services sont utilisés dans l'architecture Milvus.
* Couche d'accès – elle est composée d'un groupe de proxys sans état et sert de couche frontale du système et de point de terminaison pour les utilisateurs.
* Service coordinateur – il attribue les tâches aux nœuds de travail et agit comme le cerveau d'un système. Il a trois types de coordinateurs : Coord racine, Coord données et coord requête.
* Nœuds de travail : il suit l'instruction du service coordinateur et exécute les nœuds de travail déclenchés par l'utilisateur DML/DDL commands.it a trois types de nœuds de travail tels que noeud de requête, noeud de données et noeud d'index.
* Stockage : il est responsable de la persistance des données. Elle comprend le méta-stockage, le courtier en journaux et le stockage objet. Le stockage NetApp tel que ONTAP et StorageGRID fournit à Milvus un stockage objet et un stockage basé sur des fichiers pour les données clients et les données de base de données vectorielles.