Qu'est-ce qu'une base de données vectorielle ?
L'information se présente sous de nombreuses formes. Certaines informations sont non structurées, comme les documents texte, le multimédia enrichi et le son, tandis que d'autres sont structurées, comme les journaux d'applications, les tables et les graphiques. Les innovations en matière d'intelligence artificielle et de machine learning(IA/ML) nous ont permis de créer un type de modèle de ML : des modèles de vectorisation. Les intégrations encodent tous les types de données dans des vecteurs qui capturent la signification et le contexte d'une ressource. Cela nous permet de trouver des ressources similaires en recherchant des points de données voisins. Les méthodes de recherche vectorielle permettent des expériences uniques, comme prendre une photo avec votre smartphone et rechercher des images similaires.
Les bases de données vectorielles permettent de stocker et de récupérer des vecteurs sous forme de points à forte dimensionnalité. Elles ajoutent des fonctionnalités supplémentaires pour une recherche efficace et rapide des voisins les plus proches dans l'espace à N-dimensions. Elles sont généralement alimentées par des index k-NN (k-nearest neighbor) et construites à l'aide d'algorithmes tels que le HNSW (Hierarchical Navigable Small World) et l'IVF (Inverted File Index). Les bases de données vectorielles fournissent des fonctionnalités supplémentaires telles que la gestion des données, la tolérance aux pannes, l'authentification et le contrôle d'accès, ainsi qu'un moteur de requêtes.
Pourquoi les bases de données vectorielles sont-elles importantes ?
Vos développeurs peuvent indexer les vecteurs générés par intégration dans une base de données vectorielle. Cela leur permet de trouver des ressources similaires en interrogeant les vecteurs voisins.
Les bases de données vectorielles fournissent une méthode pour rendre opérationnels les modèles d'intégration. Le développement d'applications est plus productif grâce à des fonctionnalités de base de données telles que la gestion des ressources, les contrôles de sécurité, la capacité de mise à l'échelle, la tolérance aux pannes et la recherche efficace d'informations grâce à des langages d'interrogation sophistiqués.
Les bases de données vectorielles permettent aux développeurs de créer des applications uniques. Par exemple, vos utilisateurs pourraient prendre des photos sur leur smartphone pour rechercher des images similaires.
Les développeurs peuvent utiliser d'autres types de modèles de machine learning pour automatiser l'extraction de métadonnées à partir de contenus tels que des images et des documents numérisés. Ils peuvent indexer les métadonnées parallèlement aux vecteurs pour permettre une recherche hybride sur des mots clés et des vecteurs. Ils peuvent également intégrer la compréhension sémantique dans le classement par pertinence afin d'améliorer les résultats de recherches.
Les innovations en matière d'intelligence artificielle (IA) générative ont introduit de nouveaux types de modèles tels que ChatGPT, qui peuvent générer du texte et gérer des conversations complexes avec des humains. Certains modèles peuvent fonctionner selon des modalités multiples ; par exemple, certains modèles permettent aux utilisateurs de décrire un paysage et de générer une image correspondant à la description.
Les modèles génératifs sont toutefois sujets à des hallucinations, qui pourraient, par exemple, amener un chatbot à induire les utilisateurs en erreur. Les bases de données vectorielles peuvent compléter les modèles d'IA générative. Elles peuvent constituer une base de connaissances externe pour les chatbots d'IA générative et contribuer à garantir qu'ils fournissent des informations fiables.
Comment les bases de données vectorielles sont-elles utilisées ?
Les bases de données vectorielles sont généralement utilisées pour alimenter les cas d'utilisation de la recherche vectorielle tels que la recherche visuelle, sémantique et multimodale. Plus récemment, elles ont été associées à des modèles textuels d'intelligence artificielle (IA) générative pour créer des agents intelligents qui offrent des expériences de recherche conversationnelle. Elles peuvent également empêcher les modèles d'IA générative d'halluciner, ce qui peut amener les chatbots à fournir des réponses non factuelles mais crédibles.
Le processus de développement commence par la création d'un modèle d'intégration conçu pour coder en vecteurs un corpus tel que des images de produits. Le processus d'importation de données est également appelé hydratation des données. Le développeur de l'application peut maintenant utiliser la base de données pour rechercher des produits similaires en encodant une image de produit et en utilisant le vecteur pour rechercher des images similaires.
Dans le modèle, les index k plus proches voisins (k-NN) permettent une recherche efficace des vecteurs et appliquent une fonction de distance telle que le cosinus pour classer les résultats en fonction de leur similarité.
Qui utilise les bases de données vectorielles ?
Les bases de données vectorielles sont destinées aux développeurs qui veulent créer des expériences basées sur la recherche vectorielle. Un développeur d'applications peut utiliser des modèles open source, des outils automatisés de machine learning (ML) et des services de modèles de base pour générer des intégrations et hydrater une base de données vectorielle. Cela nécessite une expertise minimale en ML.
Une équipe de scientifiques des données et d'ingénieurs peut créer des intégrations parfaitement adaptées et les rendre opérationnelles par le biais d'une base de données vectorielle. Cela peut les aider à fournir une solution d'intelligence artificielle (IA) plus rapidement.
Les équipes d'exploitation bénéficient de la gestion des solutions comme des charges de travail de base de données familières. Elles peuvent utiliser les outils et les playbooks existants.
Quels sont les avantages des bases de données vectorielles ?
Les bases de données vectorielles permettent aux développeurs d'innover et de créer des expériences uniques basées sur la recherche vectorielle. Elles peuvent accélérer le développement d'applications d'intelligence artificielle (IA) et simplifier l'opérationnalisation des charges de travail des applications alimentées par l'IA.
Les bases de données vectorielles constituent une alternative aux index k plus proches voisins (k-NN). Ce type d'index nécessite beaucoup d'expertise et d'ingénierie supplémentaires pour l'utilisation, le réglage et l'opérationnalisation.
Une bonne base de données vectorielle fournit aux applications une base grâce à des fonctions telles que la gestion des données, la tolérance aux pannes, des fonctions de sécurité essentielles et un moteur de requêtes. Ces fonctionnalités permettent aux utilisateurs d'opérationnaliser leurs charges de travail afin de simplifier la mise à l'échelle, de maintenir une capacité de mise à l'échelle élevée et de prendre en charge les exigences en matière de sécurité.
Des fonctionnalités telles que le moteur de requêtes et les kits SDK simplifient le développement d'applications. Elles permettent également aux développeurs d'effectuer des requêtes plus avancées (comme la recherche et le filtrage) sur les métadonnées dans le cadre d'une recherche k-NN. Elles offrent également la possibilité d'utiliser des modèles hybrides de notation de la pertinence qui combinent des modèles traditionnels de fréquence des termes comme BM25 avec des scores vectoriels afin d'améliorer la recherche d'informations.
Comment AWS peut-il prendre en charge vos besoins en matière de bases de données vectorielles ?
Amazon Web Services (AWS) propose de nombreux services pour répondre à vos besoins en matière de bases de données vectorielles :
- Amazon OpenSearch Service vous permet d'effectuer facilement des analytiques interactives de journaux , de surveiller des applications en temps réel, de rechercher du contenu sur site web, etc. Pour les bases de données vectorielles, vous pouvez vous renseigner sur la recherche par k-Nearest Neighbor (k-NN) dans OpenSearch Service.
- Amazon Aurora édition compatible PostgreSQL et Amazon Relational Database Service (Amazon RDS) pour PostgreSQL prennent en charge l'extension pgvector pour stocker les intégrations issues de modèles de machine learning (ML) dans votre base de données et pour effectuer des recherches de similarité efficaces.
- Amazon Neptune ML est une nouvelle fonctionnalité de Neptune qui utilise les réseaux neuronaux graphiques (GNN), une technique de ML spécialement conçue pour les graphiques, afin de faire des prédictions faciles, rapides et plus précises en utilisant les données des graphiques.
- La recherche vectorielle pour Amazon MemoryDB permet de stocker des millions de vecteurs, avec des temps de réponse de quelques millisecondes pour les requêtes et les mises à jour, et des dizaines de milliers de requêtes par seconde (QPS) avec un taux de rappel supérieur à 99 %.
- Amazon DocumentDB (compatible avec MongoDB) prend désormais en charge la recherche vectorielle, une nouvelle fonctionnalité qui vous permet de stocker, d'indexer et de rechercher des millions de vecteurs avec des temps de réponse de quelques millisecondes. Avec la recherche vectorielle pour Amazon DocumentDB, vous pouvez simplement mettre en place, exploiter et faire mettre à l’échelle les bases de données pour vos applications de ML.
Commencez à utiliser les bases de données vectorielles sur AWS en créant un compte dès aujourd'hui.
Quels sont les défis des bases de données vectorielles ?
Les bases de données vectorielles sont confrontées aux mêmes défis que les autres technologies de bases de données. Les efforts visant à améliorer la capacité de mise à l'échelle, la précision d'approximation, les performances de latence et la rentabilité seront poursuivis.
En tant que technologie relativement naissante, de nombreuses bases de données vectorielles doivent mûrir en ce qui concerne les compétences de base des bases de données telles que la sécurité, la résilience, la prise en charge opérationnelle et la diversification de la prise en charge des charges de travail. Cela sera important à mesure que les applications d'intelligence artificielle (IA) évolueront et nécessiteront plus qu'une simple recherche vectorielle.