Comment j’ai converti une base de données relationnelle classique en une base de données vectorielle pour stocker des embeddings
Comment j'ai converti une base de données relationnelle en base de données vectorielle pour stocker des embeddings.
Dans le monde de l’IA générative d’aujourd’hui, la base de données Vector est devenue l’une des parties intégrantes lors de la conception d’applications basées sur LLM. Que vous envisagiez de construire une application en utilisant OpenAI ou Google’s Generative AI ou que vous envisagiez de résoudre des cas d’utilisation tels que la conception d’un moteur de recommandation ou la construction d’une vision par ordinateur (CV) ou d’une base de données Vector, ce serait un composant important à prendre en compte.
Qu’est-ce qu’une base de données Vector et en quoi sont-elles différentes des bases de données traditionnelles ?
Dans le monde de l’apprentissage automatique, les vecteurs ou embeddings représentent la représentation numérique ou mathématique des données, qui peuvent être du texte, des images ou des contenus multimédias (audio ou vidéo). LLM d’OpenAI ou d’autres peuvent transformer les données régulières en embeddings vectoriels avec des dimensions multi-niveaux élevées et les stocker dans l’espace vectoriel. Ces formes numériques aident à déterminer le sens sémantique entre les données, à identifier des schémas ou des regroupements, ou à établir des relations. Les bases de données relationnelles basées sur des colonnes classiques ou les bases de données NoSQL ne sont pas adaptées pour stocker des données d’embeddings vectoriels avec plusieurs dimensions et pour les mettre à l’échelle de manière efficace si nécessaire. C’est là que nous avons besoin d’une base de données Vector, qui est un type spécial de base de données conçu pour gérer et stocker ce type de données d’embeddings, tout en offrant des performances élevées et une évolutivité.
Lors de la récupération de données ou de la recherche d’index, la base de données traditionnelle renvoie des résultats correspondant exactement à la requête, tandis que la base de données Vector utilise des algorithmes tels que le Kth-Nearest Neighbor (K-NN) ou l’Approximate Nearest Neighbor (A-NN) pour trouver des vecteurs similaires dans les mêmes dimensions ou ayant la plus courte distance en appliquant l’algorithme du cosinus, et renvoie des résultats similaires. Cela permet de résoudre des cas d’utilisation tels que la recherche d’images similaires parmi des ensembles de photos prises, la construction d’un moteur de recommandation basé sur une utilisation spécifique ou l’identification de schémas parmi un ensemble de vastes ensembles de données.
Comme vous pouvez le voir, la base de données Vector est capable de stocker et de rechercher efficacement des données vectorielles, ce qui est essentiel pour concevoir et construire des applications d’IA utilisant les modèles de langage volumineux (LLM). Nous disposons de nombreuses bases de données Vector sous forme d’utilisations sur site telles que Redis Enterprise ou Milvus ou de prestations de service SAAS comme Pinecone. Dans cet article, nous explorerons la base de données RDBMS la plus populaire, Postgres, et comment nous pouvons la convertir en une base de données Vector complète capable de fonctionner avec d’autres bases de données Vector populaires de qualité entreprise.
- Un chercheur de l’UCLA développe une bibliothèque Python appelée ClimateLearn pour accéder aux données climatiques de pointe et aux modèles d’apprentissage automatique de manière standardisée et simple.
- Ce modèle de langage protéique basé sur l’intelligence artificielle débloque la modélisation de séquences à usage général.
- Meilleurs outils de confidentialité DNS en 2023
Comment convertir Postgres en une base de données Vector ?
Postgres est l’un des RDBMS les plus populaires, qui est open source mais a des performances similaires à celles de nombreux RDBMS de qualité entreprise. Il est présent sur le marché depuis longtemps, dominant par ses performances, sa facilité d’utilisation et sa robustesse.
La communauté open source a développé une extension appelée pgvector qui, une fois installée et activée, peut transformer une installation régulière de Postgres pour avoir la compatibilité nécessaire pour prendre en charge le développement d’applications d’IA générative en stockant et indexant des embeddings générés par tout LLM ayant n’importe quelles dimensions. La meilleure partie est que non seulement les données d’embeddings, mais aussi les données régulières peuvent être stockées et indexées dans la même base de données. Pgvector utilise les algorithmes des plus proches voisins exacts et approximatifs lors de la requête des données, ce qui lui permet parfois de surpasser les autres bases de données.
Voici le fichier Docker compose que j’ai utilisé pour lancer une version Docker de Postgres déjà intégrée à l’extension pgvector. Dans le Docker compose, j’ai également ajouté Pgadmin en tant que client de base de données afin que vous puissiez accéder à votre base de données.
Fig 1 : Commande Docker compose pour exécuter Postgres avec pgvector.
Fig 2 : Client PGAdmin (accessible via le port 5050)
Une fois le serveur Postgres en cours d’exécution ajouté, utilisez la commande SQL suivante pour activer l’extension vectorielle :
Conclusion
Dans cet article, nous avons exploré comment nous pouvons utiliser la puissance de la communauté open source pour lancer une base de données vectorielle évolutive et robuste, performante, basée sur un système de base de données relationnelle traditionnel. Si vous êtes un ingénieur en science des données ou un ingénieur en logiciel ou si vous concevez simplement ou explorez des solutions pour votre prochain projet basé sur l’IA, alors Postgres avec pgvector vous aidera certainement à résoudre certains cas d’utilisation tels que la recherche de similarité, le moteur de recommandation et la détection d’anomalies. Nous avons également démontré comment Postgres avec l’extension pgvector peut être installé et configuré de manière transparente à l’aide d’outils simples tels que Docker compose et intégré au framework de microservices existant.
We will continue to update IPGirl; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles
- Rencontrez DiffComplete Une méthode AI intéressante qui peut compléter des objets 3D à partir de formes incomplètes.
- Des chercheurs de l’Université de Pékin présentent ChatLaw un modèle de langage juridique à grande échelle en open-source avec des bases de connaissances externes intégrées.
- Débloquer l’opportunité propulsée par l’IA au Royaume-Uni
- 5 Langues les mieux rémunérées à apprendre cette année
- Guide du débutant pour construire vos propres modèles de langage de grande taille à partir de zéro
- Des chercheurs de Stanford présentent HyenaDNA Un modèle de base génomique à longue portée avec des longueurs de contexte allant jusqu’à 1 million de jetons à une résolution de nucléotide unique.
- Tout sur les bases de données vectorielles – Leur importance, les embeddings vectoriels et les principales bases de données vectorielles pour les grands modèles de langage (LLMs)