Connect with us

AGI

Le rôle des bases de données vectorielles dans les applications d’IA générative modernes

mm
Vector Database embedding space

Pour que les applications d’IA générative à grande échelle fonctionnent efficacement, elles ont besoin d’un bon système pour gérer une grande quantité de données. L’un de ces systèmes importants est la base de données vectorielle. Ce qui distingue cette base de données, c’est sa capacité à traiter de nombreux types de données comme du texte, du son, des images et des vidéos sous forme de nombres/vecteurs.

Qu’est-ce qu’une base de données vectorielle ?

Une base de données vectorielle est un système de stockage spécialisé conçu pour gérer efficacement des vecteurs à haute dimension. Ces vecteurs, qui peuvent être considérés comme des points dans un espace multi-dimensionnel, représentent souvent des embeddings ou des représentations compressées de données plus complexes comme des images, du texte ou du son.

Les bases de données vectorielles permettent des recherches de similarité rapides parmi ces vecteurs, permettant une récupération rapide des éléments les plus similaires à partir d’un vaste ensemble de données.

Base de données traditionnelle vs Base de données vectorielle

Base de données vectorielle :

  • Gère les données à haute dimension : Les bases de données vectorielles sont conçues pour gérer et stocker des données dans des espaces à haute dimension. C’est particulièrement utile pour les applications comme l’apprentissage automatique, où les points de données (tels que des images ou du texte) peuvent être représentés comme des vecteurs dans des espaces multi-dimensionnels.
  • Optimisée pour la recherche de similarité : L’une des fonctionnalités remarquables des bases de données vectorielles est leur capacité à effectuer des recherches de similarité. Au lieu de requêter des données en fonction de correspondances exactes, ces bases de données permettent aux utilisateurs de récupérer des données qui sont “similaires” à une requête donnée, les rendant inestimables pour des tâches comme la récupération d’images ou de texte.
  • Évolutivité pour les grands ensembles de données : À mesure que les applications d’IA et d’apprentissage automatique continuent de croître, la quantité de données qu’elles traitent augmente également. Les bases de données vectorielles sont conçues pour être évolutives, garantissant qu’elles peuvent gérer de vastes quantités de données sans compromettre les performances.

Base de données traditionnelle :

  • Stockage de données structurées : Les bases de données traditionnelles, comme les bases de données relationnelles, sont conçues pour stocker des données structurées. Cela signifie que les données sont organisées dans des tables, des lignes et des colonnes prédéfinies, garantissant l’intégrité et la cohérence des données.
  • Optimisée pour les opérations CRUD : Les bases de données traditionnelles sont principalement optimisées pour les opérations CRUD (créer, lire, mettre à jour, supprimer). Cela signifie qu’elles sont conçues pour créer, lire, mettre à jour et supprimer efficacement des entrées de données, les rendant adaptées à une large gamme d’applications, des services Web aux logiciels d’entreprise.
  • Schéma fixe : L’une des caractéristiques définissantes de nombreuses bases de données traditionnelles est leur schéma fixe. Une fois que la structure de la base de données est définie, apporter des modifications peut être complexe et chronophage. Cette rigidité garantit la cohérence des données, mais peut être moins flexible que la nature sans schéma ou à schéma dynamique de certaines bases de données modernes.

Les bases de données traditionnelles ont souvent du mal avec la complexité des embeddings, un défi résolu avec facilité par les bases de données vectorielles.

Représentations vectorielles

Au cœur du fonctionnement des bases de données vectorielles se trouve le concept fondamental de représentation de diverses formes de données à l’aide de vecteurs numériques. Prenons une image comme exemple. Lorsque vous voyez une photo d’un chat, alors que cela peut être juste une image de félins adorables pour nous, pour une machine, cela peut être transformé en un vecteur unique de 512 dimensions tel que :

[0,23, 0,54, 0,32, …, 0,12, 0,45, 0,90]

Avec les bases de données vectorielles, les applications d’IA générative peuvent faire plus de choses. Elles peuvent trouver des informations en fonction du sens et se souvenir de choses pendant longtemps. Étonnamment, cette méthode n’est pas limitée aux images seules. Les données textuelles remplies de significations contextuelles et sémantiques peuvent également être mises en forme vectorielle.

IA générative et le besoin de bases de données vectorielles

L’IA générative implique souvent des embeddings. Prenons, par exemple, les embeddings de mots dans le traitement automatique des langues (TAL). Les mots ou les phrases sont transformés en vecteurs qui capturent la signification sémantique. Lors de la génération de texte ressemblant à celui des humains, les modèles doivent comparer rapidement et récupérer des embeddings pertinents, garantissant que le texte généré maintient des significations contextuelles.

De même, dans la génération d’images ou de sons, les embeddings jouent un rôle crucial dans le codage de modèles et de caractéristiques. Pour que ces modèles fonctionnent de manière optimale, ils nécessitent une base de données qui permet une récupération instantanée de vecteurs similaires, rendant les bases de données vectorielles un élément essentiel du puzzle de l’IA générative.

La création d’embeddings pour le langage naturel implique généralement l’utilisation de modèles pré-entraînés tels que :

  • GPT-3 et GPT-4 : OpenAI’s GPT-3 (Generative Pre-trained Transformer 3) a été un modèle monumental dans la communauté TAL avec 175 milliards de paramètres. Suivant cela, GPT-4, avec un nombre encore plus important de paramètres, continue de repousser les limites dans la génération de embeddings de haute qualité. Ces modèles sont formés sur des ensembles de données diversifiés, leur permettant de créer des embeddings qui capturent une large gamme de nuances linguistiques.
  • BERT et ses variantes : BERT (Bidirectional Encoder Representations from Transformers) de Google, est un autre modèle important qui a connu diverses mises à jour et itérations comme RoBERTa, et DistillBERT. La formation bidirectionnelle de BERT, qui lit le texte dans les deux sens, est particulièrement apte à comprendre le contexte entourant un mot.
  • ELECTRA : Un modèle plus récent qui est efficace et performe au niveau de modèles beaucoup plus grands comme GPT-3 et BERT tout en nécessitant moins de ressources informatiques. ELECTRA discerne entre les données réelles et fausses pendant la formation préalable, ce qui aide à générer des embeddings plus raffinés.

Comprendre le processus ci-dessus :

Initialement, un modèle d’embedding est utilisé pour transformer le contenu souhaité en embeddings vectoriels. Une fois générés, ces embeddings sont ensuite stockés dans une base de données vectorielle. Pour une traçabilité et une pertinence faciles, ces embeddings stockés maintiennent un lien ou une référence au contenu d’origine dont ils ont été dérivés.

Plus tard, lorsque l’utilisateur ou le système pose une question à l’application, le même modèle d’embedding entre en action. Il transforme cette requête en embeddings correspondants. Ces nouveaux embeddings formés recherchent ensuite la base de données vectorielle, cherchant des représentations vectorielles similaires. Les embeddings identifiés comme des correspondances ont une association directe avec leur contenu d’origine, garantissant que la requête de l’utilisateur est répondue avec des résultats pertinents et précis.

Financement croissant pour les nouveaux venus dans les bases de données vectorielles

Avec la popularité croissante de l’IA, de nombreuses entreprises investissent davantage dans les bases de données vectorielles pour améliorer et accélérer leurs algorithmes. Cela peut être vu avec les investissements récents dans les startups de bases de données vectorielles comme Pinecone, Chroma DB, et Weviate.

De grandes coopérations comme Microsoft ont également leurs propres outils. Par exemple, Azure Cognitive Search permet aux entreprises de créer des outils d’IA en utilisant des bases de données vectorielles.

Oracle a récemment annoncé de nouvelles fonctionnalités pour sa Database 23c, introduisant une base de données vectorielle intégrée. Nommé “AI Vector Search”, il disposera d’un nouveau type de données, d’index et d’outils de recherche pour stocker et rechercher des données comme des documents et des images à l’aide de vecteurs. Il prend en charge Retrieval Augmented Generation (RAG), qui combine les grands modèles de langage avec les données commerciales pour obtenir de meilleures réponses aux questions de langage sans partager de données privées.

Considérations principales des bases de données vectorielles

Métriques de distance

L’efficacité d’une recherche de similarité dépend de la métrique de distance choisie. Les métriques courantes incluent la distance euclidienne et la similarité cosinuse, chacune adaptée à différents types de distributions vectorielles.

Indexation

Étant donné la haute dimensionnalité des vecteurs, les méthodes d’indexation traditionnelles ne sont pas efficaces. Les bases de données vectorielles utilisent des techniques comme Hierarchical Navigable Small World (HNSW) graphs ou Annoy trees, permettant une partition efficace de l’espace vectoriel et des recherches rapides de plus proches voisins.

Annoy tree

Annoy tree (Source)

Annoy est une méthode qui utilise des arbres de recherche binaires. Il divise notre espace de données plusieurs fois et ne regarde qu’une partie de celui-ci pour trouver des voisins proches.

Hierarchical Navigable Small World (HNSW) graphs

Hierarchical Navigable Small World (HNSW) graphs (Source)

Les graphiques HNSW, d’un autre côté, sont comme des réseaux. Ils relient les points de données d’une manière spéciale pour rendre la recherche plus rapide. Ces graphiques aident à trouver rapidement des points proches dans les données.

Évolutivité

À mesure que les ensembles de données grandissent, le défi de maintenir des temps de récupération rapides augmente. Les systèmes distribués, l’accélération GPU et la gestion optimisée de la mémoire sont certaines des façons dont les bases de données vectorielles abordent l’évolutivité.

Rôle des bases de données vectorielles : implications et opportunités

1. Données de formation pour les modèles d’IA de pointe Generative AI : Les modèles d’IA générative, tels que DALL-E et GPT-3, sont formés à l’aide de vastes quantités de données. Ces données comprennent souvent des vecteurs extraits d’une myriade de sources, y compris des images, du texte, du code et d’autres domaines. Les bases de données vectorielles gèrent et analysent soigneusement ces ensembles de données, permettant aux modèles d’IA d’assimiler et d’analyser les connaissances du monde en identifiant des modèles et des relations au sein de ces vecteurs.

2. Amélioration de l’apprentissage à quelques exemples : L’apprentissage à quelques exemples est une technique d’entraînement d’IA où les modèles sont formés avec des données limitées. Les bases de données vectorielles amplifient cette approche en maintenant un index vectoriel robuste. Lorsqu’un modèle est exposé à seulement un petit nombre de vecteurs – disons, quelques images d’oiseaux – il peut rapidement extrapoler le concept plus large des oiseaux en reconnaissant des similarités et des relations entre ces vecteurs.

3. Amélioration des systèmes de recommandation : Les systèmes de recommandation utilisent les bases de données vectorielles pour suggérer du contenu étroitement aligné sur les préférences de l’utilisateur. En analysant le comportement, le profil et les requêtes de l’utilisateur, des vecteurs indicatifs de leurs intérêts sont extraits. Le système scanne ensuite la base de données vectorielle pour trouver des vecteurs de contenu qui ressemblent étroitement à ces vecteurs d’intérêt, garantissant des recommandations précises.

4. Recherche d’informations sémantiques Retrieval Augmented Generation : Les méthodes de recherche traditionnelles reposent sur des correspondances de mots exacts. Cependant, les bases de données vectorielles permettent aux systèmes de comprendre et de récupérer du contenu en fonction de la similarité sémantique. Cela signifie que les recherches deviennent plus intuitives, se concentrant sur la signification sous-jacente de la requête plutôt que juste sur les mots. Par exemple, lorsque les utilisateurs saisissent une requête, le vecteur correspondant est comparé avec les vecteurs de la base de données pour trouver du contenu qui correspond à l’intention de la requête, et non juste à sa formulation.

5. Recherche multimodale : La recherche multimodale est une technique émergente qui intègre des données de multiples sources, comme du texte, des images, de l’audio et de la vidéo. Les bases de données vectorielles servent de colonne vertébrale à cette approche en permettant l’analyse combinée de vecteurs de diverses modalités. Cela aboutit à une expérience de recherche holistique, où les utilisateurs peuvent récupérer des informations à partir d’une variété de sources en fonction d’une seule requête, conduisant à des insights plus riches et à des résultats plus complets.

Conclusion

Le monde de l’IA change rapidement. Il touche de nombreuses industries, apportant des avantages et de nouveaux défis. Les progrès rapides de l’IA générative soulignent le rôle vital des bases de données vectorielles dans la gestion et l’analyse de données multi-dimensionnelles.

Ces systèmes de stockage spécialisés, capables de gérer des vecteurs à haute dimension à partir de diverses formes de données comme des images, du texte ou du son, sont essentiels au fonctionnement efficace des applications d’IA modernes, en particulier dans le domaine des recherches de similarité.

Leur importance croissante est encore soulignée par les investissements qui affluent dans le secteur, avec des startups comme Pinecone et des géants comme Microsoft contribuant activement aux progrès.

J'ai passé les cinq dernières années à me plonger dans le monde fascinant de l'apprentissage automatique et de l'apprentissage profond. Ma passion et mon expertise m'ont conduit à contribuer à plus de 50 projets de génie logiciel divers, avec un accent particulier sur l'IA/ML. Ma curiosité permanente m'a également attiré vers le traitement automatique des langues, un domaine que je suis impatient d'explorer plus en détail.