← Retourner à la liste des articles
Image blog
Auteur

Par Maxime Jumelle

CTO & Co-Founder

Publié le 11 janv. 2024

Catégorie IA Générative

Pinecone : la base de données vectorielle managée

Avec l'explosion des cas d'usages d'IA Générative qui est survenue notamment avec la mise à disposition au grand public de ChatGPT, de plus en plus d'entreprises ont souhaité tirer partie de cette innovation. En particulier, elles sont nombreuses à vouloir développeur leurs propres LLM fait maison, afin de pouvoir bénéficier de la puissance des modèles de langage récents tout en les spécialisant sur leurs propres données.

Mais lorsque l'on parle de LLM, vient la question de l'embedding, et plus spécifiquement de la représentation vectorielle des mots. En effet, il s'agit d'une pièce maîtresse dans la conception des modèles de langage, car les mots sont dorénavant représentés par des vecteurs. Il est donc nécessaire de stocker efficacement ces vecteurs pour pouvoir lancer des requêtes optimisées et adaptées. Rien de mieux que d'utiliser une base de données spécialisée dans le stockage de vecteurs, et qui dispose de toutes les fonctionnalités de recherches associées.

Dans cet article, nous allons présenter les grands principes de fonctionnement des bases de données vectorielles, et notamment détailler le fonctionnement de Pinecone, qui est l'une des bases vectorielles les plus populaires.

C'est quoi une base de données vectorielle ?

Une base de données vectorielle est une plateforme de gestion de données novatrice qui stocke les informations sous forme de vecteurs, également appelés plongements vectoriels. Cette approche utilise la puissance de ces représentations numériques pour indexer efficacement un vaste ensemble de données non structurées et semi-structurées telles que des images, du texte, ou des données de capteur, facilitant ainsi les opérations de recherche.

Conçue spécifiquement pour gérer les plongements vectoriels, ou embeddings, cette famille de base de données offre une solution complète pour la gestion des données non structurées et semi-structurées.

À la différence d'une bibliothèque de recherche vectorielle ou d'un index vectoriel, une base de données vectorielle va au-delà en permettant le stockage des métadonnées et l'application de filtres. Elle se distingue également par sa scalabilité, sa capacité à effectuer des changements dynamiques dans les données, la mise en place de sauvegardes régulières, ainsi que par ses fonctionnalités de sécurité avancées.

Le fonctionnement de cette base de données repose sur l'organisation des données selon des vecteurs à haute dimensionnalité. Ces vecteurs comportent des centaines de dimensions, chacune correspondant à une fonctionnalité ou à une propriété spécifique de l'objet de données qu'ils représentent. C'est à partir de la distance qui sépare deux plongements vectoriels qu'une base de données vectorielle, ou moteur de recherche vectoriel, peut déterminer la similarité entre deux vecteurs.

Qu'est-ce que Pinecone ?

Parmi les bases de données vectorielles les plus réputées et largement utilisées aujourd'hui, on y retrouve notamment Pinecone. Cette base fournit l'infrastructure essentielle aux applications de Machine Learning nécessitant une recherche et une classification des résultats fondées sur la similarité.

Grâce à Pinecone, les développeurs et les Data Scientists ont la possibilité de créer des applications basées sur des vecteurs qui sont à la fois précises, rapides et évolutives. Avec son API simple d'utilisation, elle possède le gros avantage pour les différentes équipes de ne pas avoir besoin de gérer elles-mêmes toute la configuration ou la maintenance de la base.

Comprenons donc bien que Pinecone est ainsi une base de données managées, à laquelle nous ne disposons pas du code source, et qui ne peut pas être déployée On-Premise. Cette dernière remarque peut avoir son importance si l'on souhaite par exemple utiliser des données confidentielles ou sensibles qui ne devraient pas sortir du SI d'une entreprise.

En revanche, si ce point n'est pas bloquant, les principales caractéristiques de Pinecone peuvent s'avérer être de gros avantages.

  • Pinecone se distingue par ses performances exceptionnelles en matière de recherches vectorielles, offrant des résultats rapides de l'ordre de quelques millisecondes.
  • Elle est conçue pour évoluer et traiter d'importants volumes de données tout en restant entièrement gérée et native du Cloud, libérant ainsi les utilisateurs des problématiques liées à l'infrastructure sous-jacente.
  • Elle prend en charge divers types de données vectorielles et mesures de similarité, offrant ainsi une polyvalence étendue.
  • En plus de cela, elle propose également une bibliothèque cliente Python pour une interaction fluide, optimisée spécifiquement pour des applications en temps réel, sachant que de nombreuses applications d'IA Générative sont développées en Python.

Un dernier point non négligeable est sa compatibilité avec une multitude d'outils et de services populaires, tels que OpenAI, LangChain, Elasticsearch, ou encore Databricks. Cela permet alors d'avoir à disposition une option extrêmement polyvalente pour diverses applications.

Les index et enregistrements de Pinecone

Pinecone utilise la notion d'index pour organiser des collections de vecteurs. Un index est semblable à une collection de tables dans une base de données traditionnelle. Il accepte et stocke des vecteurs, traite les requêtes sur les vecteurs qu'il contient et effectue d'autres opérations vectorielles sur son contenu. Chaque index est identifié par un nom unique et peut contenir de nombreux vecteurs.

Index Pinecone

La particularité est que chaque index peut être situé dans une région spécifique, tout comme il pourrait s'agir d'un serveur avec ses propres ressources. Lorsqu'un index est créé, la dimension qui correspond à la taille de chaque vecteur doit être spécifié. Une fois l'index créé, la dimension ne peut plus être modifiée.

Enregistrements

Les vecteurs stockés dans un index Pinecone s'appellent des enregistrements (records en anglais). Un enregistrement est bien plus qu'un simple vecteur : en plus de le contenir, un enregistrement dispose également d'une représente dite sparse de ce vecteur, mais aussi un identifiant unique ainsi que des métadonnées qui permettent d'ajouter un contexte particulier autour de ce vecteur.

Enregistrement Pinecone

Par exemple, Pinecone n'accepte que le format ASCII comme identifiant de vecteur : puisque les caractères français comme é ou encore à ne peuvent pas être encodés au format ASCII, il est d'usage d'inscrire le mot associé au vecteur dans les métadonnées. En effet, le format des métadonnées est en UTF-8, ce qui signifie que de très nombreux caractères peuvent être ajoutés dans les métadonnées.

Elles peuvent également être utilisées si par exemple on souhaite représenter des films ou des séries sous forme d'embedding. En ajoutant certaines informations dans les métadonnées comme le genre du film, il sera ensuite possible de filtrer sur les clés des métadonnées, pour obtenir les films similaires du même genre d'un autre film.

Avantages de Pinecone

En quelques mois, Pinecone s'est hissé comme l'une des bases vectorielles les plus populaires, et ce pour de nombreuses raisons.

  • Le principal intérêt d'utiliser une base vectorielle comme Pinecone est de délester la charge de travail liée au stockage et au calcul sur les embeddings. En effet, plutôt que d'alourdir les serveurs qui vont faire de l'inférence pour les LLM qui sont déjà très sollicités,
  • Ensuite, tout comme la plupart des bases de données, Pinecone dispose des opérations CRUD qui rendent facile l'accès et la gestion des vecteurs. De plus, elle est facile d'utilisation grâce à ses API disponibles dans plusieurs langages.
  • Enfin, étant donné qu'il s'agit d'une base entièrement managée dans le Cloud, elle dispose de fonctionnalités de sauvegardes, mais également une haute disponibilité et une scalabilité sans limite afin de s'adapter aux projets de toutes envergures.

En revanche, il y a tout de même quelques inconvénients qui peuvent être problématiques dans certaines situations.

  • Puisqu'elle ne peut pas être hébergée localement, la tarification peut rapidement devenir un sujet bloquant, puisque celle-ci est entièrement dépendante de l'entreprise qui édite et héberge la base de données.
  • Pinecone reste une base managée dans le Cloud sur laquelle les développeurs ne peuvent pas isoler dans leurs propres environnements. Même si Pinecone offre la possibilité d'exécuter une base dans un VPC unique, la base reste stockée sur un Cloud public, ce qui peut freiner des projets qui doivent centraliser toutes leurs données dans un SI interne.

Conclusion

De plus en plus de bases de données vectorielles apparaissent pour répondre à des besoins de stockage et de requêtes sur les embeddings, alimentés par la nécessité pour les LLM d'en disposer. Même si elles sont encore peu stables car assez récentes, certaines bases comme Pinecone se veulent déjà être des références dans le domaine.

Une chose est sûre : dans les prochains mois, de nouvelles bases de données vectorielles vont apparaître, et il est probable que la plupart des fournisseurs Cloud finissent eux-mêmes par proposer leur propre base de données vectorielle.

Articles similaires

Blog

13 févr. 2024

IA Générative

Avec l'explosion de l'IA Générative appliquée à la génération de texte ces dernières années, de nombreuses entreprises ont souhaité pouvoir déployer en interne leur propres LLM. Elles disposent ainsi de deux possibilités : utiliser directement des modèles disponibles en version SaaS comme ChatGPT ou Cohere, ou déployer dans leur propre SI un LLM open source adaptés à leurs propres besoins.
Maxime Jumelle

Maxime Jumelle

CTO & Co-Founder

Lire l'article

Blog

2 févr. 2024

IA Générative

Un des plus gros atouts des LLM concerne indéniablement leur grande connaissance sur de nombreux sujets, ainsi que leur forte capacité de généralisation. Pour de nombreuses entreprises, une des applications les plus importantes concerne la documentation interne.
Maxime Jumelle

Maxime Jumelle

CTO & Co-Founder

Lire l'article

Blog

30 janv. 2024

IA Générative

Le prompting est une discipline qui a vu le jour avec l'explosion des LLM. En effet, il y a de nombreuses manières de poser des questions à un modèle, et puisqu'ils sont aujourd'hui très généralistes, il est important d'être précis dans ses propositions.
Maxime Jumelle

Maxime Jumelle

CTO & Co-Founder

Lire l'article

© 2024 Blent.ai | Tous droits réservés