Qu’est-ce qu’un plongement vectoriel ? ?

Deux femmes d’affaires travaillant ensemble sur une tablette numérique dans un bureau moderne.

Auteurs

Dave Bergmann

Senior Staff Writer, AI Models

IBM Think

Cole Stryker

Staff Editor, AI Models

IBM Think

Qu’est-ce qu’un plongement vectoriel ? ?

Les plongements vectoriels sont des représentations numériques qui traduisent différents types de données, y compris des données non mathématiques telles que des mots ou des images, sous forme de tableaux de nombres que les modèles de machine learning (ML) peuvent interpréter.

Les modèles d’intelligence artificielle (IA), des simples algorithmes de régression jusqu’aux réseaux neuronaux complexes utilisés dans l’apprentissage profond, fonctionnent grâce à une logique mathématique.

Toutes les données utilisées par un modèle d’intelligence artificielle, y compris les données non structurées comme le texte, l’audio ou les images, doivent être exprimées sous forme numérique. Le plongement vectoriel, ou représentation vectorielle, est une méthode qui permet de convertir un point de données non structuré en un tableau de nombres, tout en conservant la signification originale des données.

En entraînant des modèles à produire des représentations vectorielles de points de données qui correspondent de manière significative à leurs caractéristiques réelles, nous pouvons formuler des hypothèses utiles sur les relations entre différents plongements vectoriels.

Intuitivement, plus deux points de données du monde réel sont similaires, plus leurs plongements vectoriels respectifs devraient l’être. Les caractéristiques ou qualités partagées par deux points de données devraient se refléter dans leurs plongements vectoriels respectifs, tandis que des points de données dissemblables devraient avoir des plongements vectoriels différents.

Fort de ces hypothèses logiques, les plongements vectoriels peuvent être utilisés comme entrées dans des modèles exécutant des tâches utiles dans le monde réel par le biais d’opérations mathématiques permettant de comparer, transformer, combiner, trier ou manipuler ces représentations numériques.

L’utilisation de vecteurs pour représenter des points de données permet également l'interopérabilité entre différents types de données, agissant comme une sorte de langage comun entre les divers formats de données en les représentant dans le même espace de plongement vectoriel. Par exemple, les assistants vocaux des smartphones « traduisent » les entrées audio de l’utilisateur en plongements vectoriels, qui sont ensuite utilisés pour le traitement automatique du langage naturel (NLP) de ces entrées.

Les plongements vectoriels sont donc au cœur de la quasi-totalité du machine learning moderne, alimentant les modèles utilisés dans des domaines comme le NLP et la vision par ordinateur, et servant d’éléments fondamentaux pour l’intelligence artificielle générative.

Design 3D de balles roulant sur une piste

Les dernières actualités et informations en matière d’IA 


La newsletter hebdomadaire Think vous apporte toute l’actualité sur l’IA, le cloud et bien d’autres sujets. 

Qu’est-ce qu’un vecteur ?

Les vecteurs appartiennent à la catégorie plus large des tenseurs. En machine learning (ML), le terme « tenseur » est utilisé comme terme générique pour désigner un tableau de nombres – ou un tableau de tableaux de nombres – dans un espace à n dimensions, servant de dispositif de comptabilité mathématique pour les données.

Il est utile de noter que certains termes sont utilisés différemment dans le contexte du ML par rapport au langage courant ou à d’autres contextes mathématiques. Par exemple, le mot « vecteur » a une connotation plus spécifique en physique, où il fait généralement référence à une quantité ayant à la fois une magnitude et une direction, tandis qu’en ML, son sens est plus large.

De même, le terme « dimension » prend un sens différent en ML, selon son contexte. Lorsqu’il décrit un tenseur, il fait référence au nombre de tableaux que ce tenseur contient. Lorsqu’il décrit un vecteur, il désigne le nombre de composantes et de nombres individuels que ce vecteur contient. Des termes analogues, tels que « ordre » ou « degré », peuvent aider à réduire l’ambiguïté.

  • Un scalaire est un tenseur d’ordre zéro, contenant un seul nombre. Par exemple, un système de modélisation des données météorologiques peut représenter la température maximale d’une journée (en celsius) sous forme de scalaire : 33.

  • Un vecteur est un tenseur unidimensionnel (de premier ordre ou d’ordre 1), qui contient plusieurs scalaires du même type de données. Par exemple, le modèle météorologique peut représenter les températures minimale, moyenne et maximale d'une journée sous forme de vecteur : (25, 30, 33). Chaque composante scalaire est une caractéristique, ou dimension du vecteur, correspondant à une caractéristique de la météo de cette journée.

  • Un tuple est un tenseur du premier ordre contenant des scalaires de différents types de données. Par exemple, le nom, l’âge et la taille (en pouces) d’une personne peuvent être représentés sous forme de tuple : (Jane, Smith, 31, 65).

  • Une matrice est un tenseur bidimensionnel (ou d'ordre 2), contenant plusieurs vecteurs du même type de données. Elle peut être facilement visualisée comme une grille bidimensionnelle de scalaires, dans laquelle chaque ligne ou colonne est un vecteur. Par exemple, ce modèle météorologique peut représenter l’ensemble du mois de juin sous forme d’une matrice 3x30, dans laquelle chaque ligne est un vecteur de caractéristiques décrivant les températures minimale, moyenne et maximale d’un jour donné.

  • Les tenseurs à trois dimensions ou plus, comme les tenseurs à 3 dimensions utilisés pour représenter les images en couleurs dans les algorithmes de vision par ordinateur, sont appelés tableaux à dimensions multiples ou tenseurs de dimension N.

Des transformations simples peuvent également être appliquées aux matrices ou à d’autres tenseurs à n dimensions pour représenter les données qu’ils contiennent sous forme de vecteurs. Par exemple, une matrice 4x4 peut être aplatie en un vecteur de 16 dimensions ; un tenseur tridimensionnel d’une image de 4x4 pixels peut être aplati en un vecteur de 48 dimensions. Les plongements se présentent principalement sous la forme de vecteurs dans les systèmes de machine learning modernes.

Inversement, les vecteurs dans d’autres contextes, comme la physique, ne sont pas nécessairement des plongements. Mais en ML, les vecteurs sont généralement des plongements vectoriels, et les plongements vectoriels sont généralement des vecteurs.

Différence entre vecteur et plongement :

Bien que les deux termes soient souvent utilisés de manière interchangeable dans le domaine du machine learning, « vecteur » et « plongement » ne désignent pas tout à fait la même chose.

Un plongement est une représentation numérique des données qui reflète leurs caractéristiques pertinentes d’une manière exploitable par les algorithmes de machine learning. Les données sont intégrées dans un espace à n dimensions.

En théorie, les données n’ont pas besoin d’être représentées sous forme de plongement vectoriel. Par exemple, certains types de données peuvent être représentés sous forme de tuple1. Cependant, dans la pratique, les plongements se présentent principalement sous la forme de vecteurs dans les systèmes de machine learning modernes.

Inversement, les vecteurs dans d’autres contextes, comme la physique, ne sont pas nécessairement des plongements. Mais en ML, les vecteurs sont généralement des plongements vectoriels, et les plongements vectoriels sont généralement des vecteurs.

Mixture of Experts | 28 août, épisode 70

Décryptage de l’IA : Tour d’horizon hebdomadaire

Rejoignez notre panel d’ingénieurs, de chercheurs, de chefs de produits et autres spécialistes de premier plan pour connaître l’essentiel de l’actualité et des dernières tendances dans le domaine de l’IA.

Comment fonctionne le plongement vectoriel ?

Un plongement vectoriel transforme un point de données, tel qu’un mot, une phrase ou une image, en un tableau à n dimensions de nombres représentant les attributs distinctifs de ce point de données — ses caractéristiques principales. Cela se fait en entraînant un modèle de plongement sur un vaste ensemble de données correspondant à la tâche à accomplir ou en utilisant un modèle pré-entraîné.

Pour comprendre les plongements vectoriels, il est nécessaire d’expliquer quelques concepts clés :

  • Comment les plongements vectoriels représentent les données.

  • Comment les plongements vectoriels peuvent être comparés.

  • Comment les modèles peuvent être utilisés pour générer des plongements vectoriels.

Comment les plongements vectoriels représentent-ils les données ?

En machine learning, les « dimensions » des données ne se réfèrent pas aux dimensions familières et intuitives de l’espace physique. Dans l’espace vectoriel, chaque dimension correspond à une caractéristique individuelle des données, de la même manière que la longueur, la largeur et la profondeur sont des caractéristiques d’un objet dans l’espace physique.

Les plongements vectoriels concernent généralement des données à haute dimensionnalité. Dans la pratique, la plupart des informations non numériques sont de grande dimension. Par exemple, même une simple petite image en noir et blanc de 28x28 pixels d'un chiffre manuscrit du jeu de données MNIST peut être représentée comme un vecteur à 784 dimensions, dans lequel chaque dimension correspond à un pixel individuel dont la valeur en niveaux de gris est comprise entre 0 (pour le noir) et 1 (pour le blanc).

Cependant, toutes ces dimensions ne renferment pas nécessairement des informations utiles. Dans l’exemple de MNIST, le chiffre lui-même ne représente qu’une petite portion de l’image, tandis que le reste n’est qu’un fond vide ou du « bruit ». Il est donc plus exact de dire que nous « intégrons une représentation de l’image dans un espace à 784 dimensions » plutôt que de dire que nous « représentons 784 caractéristiques différentes de l’image ».

Les plongements vectoriels efficaces pour des données à haute dimensionnalité impliquent souvent une certaine réduction de la dimensionnalité : la compression des données dans un espace à dimensions inférieures, en éliminant les informations non pertinentes ou redondantes.

La réduction de la dimensionnalité améliore la vitesse et l'efficacité des modèles, bien qu’au prix de possibles pertes de précision ou d’exactitude, car les vecteurs plus petits nécessitent moins de ressources pour les calculs. Elle permet également de réduire le risque de surajustement des données d'entraînement. Différentes méthodes de réduction dimensionnelle, telles que les autoencodeurs, les convolutions, l’analyse en composantes principales (PCA) ou l’intégration stochastique des voisins distribués en T (t-SNE), sont adaptées à différents types de données et de tâches.

Alors que les dimensions des vecteurs pour les données d’image sont relativement objectives et intuitives, la détermination des caractéristiques pertinentes pour d’autres modalités, comme les significations sémantiques et les relations contextuelles dans le langage, est plus abstraite ou subjective. Dans ces cas, les caractéristiques spécifiques représentées par les dimensions des plongements vectoriels peuvent être définies soit manuellement, par une ingénierie des caractéristiques, soit, plus couramment à l'ère de l'apprentissage profond, déterminées implicitement lors de l'entraînement d’un modèle à prédire avec précision.

Comment comparer les plongements vectoriels ?

La logique fondamentale des plongements vectoriels repose sur l’idée que des plongements de points de données similaires, en n-dimensions, doivent être regroupés dans un espace n-dimensionnel. Cependant, ces plongements peuvent avoir des dizaines, des centaines, voire des milliers de dimensions, bien au-delà des espaces à 2 ou 3 dimensions que notre esprit peut intuitivement visualiser.

C'est pourquoi plusieurs mesures sont utilisées pour évaluer la similarité relative entre différents plongements vectoriels. Le choix de la meilleure mesure dépend essentiellement de la nature des données et de l'objectif des comparaisons.

  • La distance euclidienne mesure la distance moyenne en ligne droite entre les points correspondants de différents vecteurs. La différence entre deux vecteurs à n dimensions, notés a et b, est calculée en additionnant les carrés des écarts entre leurs composantes respectives, par exemple : (a1–b1)2 + (a2–b2)2 + ... (an–bn)2. Ensuite, on prend la racine carrée de cette somme. La distance euclidienne, étant sensible à la grandeur, est utile pour comparer des données reflétant des quantités ou des tailles. Les valeurs varient de 0 (vecteurs identiques) à l'infini. Les valeurs varient de 0 (vecteurs identiques) à l'infini (∞).
     

  • La distance cosinus, également appelée similarité cosinus, est une mesure normalisée du cosinus de l'angle entre deux vecteurs. Elle varie entre -1 et 1 : 1 représente des vecteurs identiques, 0 des vecteurs orthogonaux (non liés), et -1 des vecteurs totalement opposés. La similarité cosinus est largement utilisée dans les tâches de traitement automatique du langage naturel (NLP), car elle normalise naturellement l'ampleur des vecteurs et est moins sensible à la fréquence relative des mots dans les données d'entraînement par rapport à la distance euclidienne.
     

  • Le produit scalaire correspond, algébriquement, à la somme du produit des composantes correspondantes de chaque vecteur. D'un point de vue géométrique, c'est une version non normalisée de la distance cosinus, qui prend également en compte la fréquence ou l'amplitude des données.

Modèles de plongement

Les modèles de plongement indépendants peuvent être préentraînés ou entraînés à partir de zéro pour des tâches spécifiques ou des ensembles de données particuliers. Chaque type de données bénéficie généralement d’une architecture de réseaux neuronaux adaptée, bien que cela relève plus des bonnes pratiques que de règles strictes.

Parfois, le processus de plongement fait partie d’un réseau neuronal plus vaste. Par exemple, dans les réseaux neuronaux convolutifs (CNN) de type codeur-décodeur, utilisés pour des tâches telles que la segmentation d’images, l’optimisation du réseau pour des prédictions précises passe par l’entraînement des couches d’encodage afin de produire des plongements vectoriels efficaces des images en entrée.

Modèles préentraînés
Pour de nombreux cas d’utilisation et domaines d’étude, les modèles préentraînés peuvent fournir des plongements utiles qu’il est ensuite possible d’utiliser comme entrées dans des modèles personnalisés ou dans des bases de données vectorielles. Ces modèles open source sont généralement entraînés sur des ensembles de données très vastes pour apprendre des représentations utiles à de nombreuses tâches en aval, telles que l’apprentissage few-shot ou zero-shot.

Pour les données textuelles, des modèles de plongement lexical open source tels que Word2Vec de Google ou Global Vectors (GloVe) de l’université de Stanford peuvent être entraînés à partir de zéro, mais ils existent aussi sous forme de versions préentraînées sur des corpus publics tels que Wikipédia et Common Crawl. De même, les grands modèles de langage (LLM) de type codeur-décodeur, tels que BERT et ses nombreuses variantes, sont préentraînés sur de grandes quantités de données textuelles.

Pour les tâches de vision par ordinateur, les modèles de classification d'images pré-entraînés tels qu'ImageNet, ResNet ou VGG peuvent être adaptés pour produire des plongements vectoriels en supprimant simplement leur dernière couche de prédiction entièrement connectée.

Modèles de plongement personnalisés
Certains cas d’utilisation, notamment ceux impliquant des concepts complexes ou de nouvelles classes de données, peuvent bénéficier d’un ajustement personnalisé de modèles préentraînés ou de la création de modèles de plongement entièrement sur mesure.

Les domaines juridique et médical sont des exemples typiques de secteurs reposant sur un vocabulaire ésotérique et hautement spécialisé, ainsi que sur des bases de connaissances ou des images rarement incluses dans les ensembles de données d'entraînement des modèles généralistes. Compléter les connaissances de base des modèles pré-entraînés en les affinant avec des exemples spécifiques au domaine peut améliorer la qualité des plongements produits.

Bien qu’il soit possible de concevoir une architecture de réseau neuronal entièrement personnalisée ou d’entraîner une architecture déjà existante à partir de zéro, cela requiert des ressources et des compétences techniques souvent inaccessibles pour la plupart des organisations ou amateurs.

Plongement vectoriel pour les images

Les plongements vectoriels pour images convertissent les informations visuelles en vecteurs numériques en utilisant les valeurs des pixels d'une image pour correspondre aux composantes du vecteur. Ils s'appuient généralement sur des CNN, bien que ces dernières années, les modèles de vision par ordinateur utilisent de plus en plus des réseaux neuronaux basés sur des transformateurs.2

Les images utilisant une palette de couleurs RGB typique sont représentées numériquement sous la forme d'une matrice tridimensionnelle, dans laquelle ces trois matrices correspondent respectivement aux valeurs rouge, vert et bleu de chaque pixel. Les images RVB sont généralement de 8 bits, ce qui signifie que chaque valeur de couleur pour un pixel peut aller de 0 à 256 (ou 28). Comme décrit précédemment, les images en noir et blanc sont représentées numériquement sous la forme d'une matrice bidimensionnelle de pixels, chaque pixel ayant une valeur comprise entre 0 et 1.

Les convolutions utilisent des filtres numériques bidimensionnels, appelés noyaux, pour extraire les caractéristiques de l'image. Les poids des noyaux les plus adaptés à l'extraction des caractéristiques pertinentes sont eux-mêmes des paramètres pouvant être ajustés au cours de l'apprentissage du modèle. Ces convolutions produisent une carte des caractéristiques de l'image.

Si nécessaire, un remplissage est utilisé pour maintenir la taille originale de l'image en ajoutant des couches supplémentaires de zéros aux lignes et colonnes extérieures de la matrice. À l'inverse, le pooling, qui consiste à résumer les caractéristiques visuelles en ne prenant que les valeurs minimales, maximales ou moyennes, peut être utilisé pour réduire davantage la dimensionnalité.

Enfin, la représentation compressée est aplatie en un vecteur.

Recherche d'images

Une application intuitive du plongement vectoriel est la recherche d'images : un système qui prend des images en entrée et renvoie d'autres images avec des plongements vectoriels similaires, comme une application pour smartphone capable d'identifier une espèce végétale à partir d'une photographie.

Une exécution plus complexe est la recherche d'images multimodale, qui prend un texte en entrée et renvoie des images liées à ce texte. Il n'est pas possible d'y parvenir en prenant simplement un plongement de texte dans un modèle linguistique et en l'utilisant comme entrée d'un modèle de vision par ordinateur distinct. Les deux modèles de plongement doivent être explicitement entraînés pour être corrélés l'un à l'autre.

L'un des principaux algorithmes utilisés pour l'intégration d'images et de textes est le CLIP (Contrastive Language-Image Pre-training), développé à l'origine par OpenAI. Le CLIP a été entraîné sur un énorme ensemble de données non étiquetées comprenant plus de 400 millions de paires d'images et de légendes provenant d’Internet. Ces paires ont permis d’entraîner conjointement un encodeur d’image et un encodeur de texte à partir de zéro, en utilisant la perte contrastive pour maximiser la similarité cosinus entre les représentations vectorielles d’images et les représentations vectorielles de leurs sous-titres correspondants.

Génération d’images

La génération d'images, c'est-à-dire la création de nouvelles images, est une autre application importante des plongements vectoriels pour les images.

Les autoencodeurs variationnels (VAE) constituent l'une des méthodes permettant de générer de nouvelles images à partir de plongements vectoriels. Les VAE encodent deux plongements vectoriels différents des données d'entrée : un vecteur de moyennes et un vecteur d'écarts types. En échantillonnant de manière aléatoire la distribution de probabilité que ces plongements vectoriels représentent, les VAE peuvent utiliser leur réseau de décodeurs pour générer des variations des données d'entrée.

L'une des principales méthodes de génération d'images basées sur les plongements vectoriels, particulièrement ces dernières années, utilise l'algorithme CLIP mentionné plus haut. Les modèles de synthèse d'images tels que DALL-E, Midjourney et Stable Diffusion prennent des textes en entrée et utilisent CLIP pour créer une représentation vectorielle du texte. Cette représentation vectorielle est ensuite utilisée pour reconstruire une nouvelle image.

Plongement vectoriel pour le NLP

Le plongement textuel est moins simple que celui des images. Il doit représenter numériquement des concepts abstraits tels que la signification sémantique, les connotations variables et les relations contextuelles entre les mots et les phrases.

Représenter simplement les mots en fonction de leurs lettres, à l'instar des plongements d'images basés sur les valeurs de pixels, ne produirait pas de représentations significatives.

Alors que la plupart des modèles de vision par ordinateur sont entraînés à l’aide de l’apprentissage supervisé classique, les modèles de plongement pour le NLP nécessitent un apprentissage autosupervisé sur une quantité réellement massive de données afin de capturer adéquatement les nombreuses significations potentielles du langage dans différents contextes.

Les plongements vectoriels ainsi obtenus alimentent de nombreuses tâches généralement associées à l'IA générative, telles que la traduction linguistique, les chatbots conversationnels, le résumé de documents et les services de réponse aux questions.

Modèles de plongement textuel

Les modèles utilisés pour générer des plongements vectoriels à partir de données textuelles ne sont souvent pas les mêmes que ceux utilisés pour générer du texte.

Les LLM couramment utilisés pour la génération de texte et d’autres tâches d’IA générative, tels que ChatGPT ou LLaMA, sont des modèles autorégressifs à décodeur seul, également appelés modèles de langage causaux. Lors de l’entraînement, on leur présente le début d’un échantillon de texte et on leur demande de prédire le mot suivant jusqu’à la fin de la séquence. Si cette méthode est bien adaptée à l’entraînement pour la génération de texte cohérent, elle n’est pas optimale pour l’entraînement de plongements vectoriels autonomes.

Au lieu de ça, les plongements textuels s'appuient généralement sur des modèles de langage masqués, comme BERT (Bidirectional Encoder Representations from Transformers), publié pour la première fois en 2018. Lors de l'entraînement, ces modèles codeur-décodeur reçoivent des séquences de texte où certains mots sont masqués, et ils doivent compléter ces séquences.

Cet exercice permet de mieux capturer les informations sur un mot ou une phrase, ainsi que leur relation avec le contexte qui les entoure. Word2vec poursuit une tâche d’entraînement similaire, bien que son architecture de réseau neuronal soit plus simple, avec seulement deux couches.

En juin 2024, BERT demeure le modèle linguistique le plus populaire sur Hugging Face, avec plus de 60 millions de téléchargements le mois précédent3. Plusieurs variantes notables de BERT ont été adaptées à des types spécifiques de plongements linguistiques et à divers scénarios :

  • SBERT : également connu sous le nom de Sentence-BERT, est une variante de BERT qui dispose d’une structure de réseau neuronal siamois, affinée sur des paires de phrases afin d’améliorer sa capacité à encoder les plongements de phrases.

  • DistilBERT : une version allégée de BERT, créée par un processus de distillation des connaissances à partir du modèle BERT de base, fonctionnant 60 % plus vite tout en conservant plus de 95 % des performances, selon certains indicateurs.4

  • RoBERTa (Robustly optimized BERT pretraining approach) : a affiné la procédure d'entraînement de BERT afin d'optimiser ses performances.

Types de plongements textuels

Les plongements vectoriels peuvent être utilisés pour représenter diverses données en langage naturel.

Plongements lexicaux
Les plongements lexicaux visent à capturer non seulement la signification sémantique des mots individuels, mais aussi leur relation contextuelle avec d'autres mots avec lesquels ils cooccurrent souvent. Ce faisant, les plongements lexicaux peuvent s'adapter à de nouveaux contextes et même à des mots rares ou inédits.

GloVe, un modèle populaire de plongement lexical, a été entraîné sur une « matrice globale de cooccurrence mot-mot », permettant de déduire le sens sémantique et les relations sémantiques à partir de la fréquence d'utilisation de mots spécifiques proches les uns des autres. Par exemple, on peut déduire le sens de mots comme « glace » et « vapeur », qui coïncident fréquemment avec « eau », mais diffèrent nettement dans leurs associations avec « solide » et « gaz ».5

La manière dont les dimensions d'un vecteur de plongement capturent implicitement ces relations permet de manipuler ces vecteurs de façon mathématique, de manière utile et intuitive. Par exemple, dans un système de plongement vectoriel bien configuré, soustraire le vecteur « homme » du vecteur « roi » et ajouter le vecteur « femme » devrait aboutir à un vecteur proche de « reine ».

Plongements de phrases
Les plongements de phrases intègrent le sens sémantique d’expressions ou de phrases entières, plutôt que de mots isolés. Ils sont généralement générés par SBERT ou d’autres variantes de transformateurs de phrases.

  • Les plongements de phrases peuvent représenter des requêtes d'utilisateurs, notamment pour les moteurs de recherche ou les applications de réponse aux questions.

  • En traduction automatique, le plongement vectoriel d'une phrase dans une langue peut être utilisé pour produire une phrase dans une autre langue avec un plongement vectoriel similaire.

  • Les plongements de phrases sont également souvent utilisés dans l’analyse des sentiments. Les classificateurs peuvent être entraînés sur des exemples étiquetés pour chaque catégorie de sentiment via l’entraînement supervisé, puis classer de nouveaux échantillons en comparant leur plongement vectoriel à celui appris pour chaque catégorie. L’analyse des sentiments est également possible grâce à l’apprentissage zero-shot, où le plongement d’une phrase est comparé à celui de mots associés à une catégorisation particulière.

Plongements de documents
Les plongements de documents sont souvent utilisés pour classer des documents ou des pages web en vue de leur indexation dans des moteurs de recherche ou des bases de données vectorielles. Les modèles typiques pour ce type de plongement incluent des variantes de BERT, Doc2vec (une extension du modèle Word2vec), ou d'autres modèles de plongement open source tels que Instructor.

Autres types de plongements vectoriels

Bien que les données d'image et de texte aient tendance à recevoir le plus d'attention, en particulier pour les cas d'utilisation de l'IA générative, une grande variété de modalités de données peut bénéficier des plongements vectoriels.

  • Les plongements audio sont utilisés dans diverses applications, allant des assistants vocaux aux systèmes de recommandation musicale, en passant par les systèmes de reconnaissance sonore tels que Shazam. Ils représentent le son à travers les propriétés numériques de ses formes d’onde. L’audio peut être intégré à l’aide de réseaux neuronaux récurrents (RNN), de CNN ou d’architectures basées sur des transformateurs.

  • Les plongements de produits sont souvent utilisés pour alimenter les systèmes de recommandation des plateformes de commerce électronique. Ils sont généralement générés par des algorithmes d’apprentissage non supervisé.

  • Les plongements de graphes peuvent être utilisés pour modéliser et représenter des structures relationnelles complexes, telles que les réseaux sociaux ou les systèmes biologiques. Les dimensions d’un vecteur de plongement de graphe représentent la manière dont les différents nœuds et liaisons d’un système sont connectés.

Bases de données vectorielles

Les bases de données traditionnelles sont rarement optimisées pour traiter les données à haute dimension qui sont communes aux plongements vectoriels. Les bases de données vectorielles telles qu’IBM watsonx.data sont des solutions avancées conçues pour organiser et récupérer des objets de données dans un espace vectoriel à haute dimension.

Recherche vectorielle

L'un des principaux avantages d'une base de données vectorielle efficace est d'optimiser l'efficacité et la précision des opérations de recherche vectorielle : trouver, trier et récupérer des données et documents pertinents grâce à la similarité sémantique de leurs plongements vectoriels respectifs avec ceux de vos termes de recherche.

Ce type de recherche de similarité s’effectue généralement au moyen d’algorithmes simples de type « plus proches voisins », qui déduisent les connexions entre les points de données sur la base de leur proximité dans un espace vectoriel à haute dimension.

Recherche sémantique
La recherche sémantique utilise les plongements vectoriels pour effectuer des recherches qui vont au-delà de la simple correspondance de mots-clés. Par exemple, elle peut renvoyer des résultats pour « pommes » et « oranges », même si la requête initiale portait sur « fruits ».

Génération augmentée par récupération (RAG)

Ce type de recherche sémantique est également utilisé pour permettre la génération augmentée par récupération (RAG), un cadre utilisé pour compléter la base de connaissances des LLM sans avoir besoin d'un réglage plus fin.

Dans la RAG, la recherche vectorielle est employée pour explorer des sources de données externes, c'est-à-dire des sources qui ne faisaient pas partie des données d'entraînement d'un modèle de fondation et dont les informations ne pouvaient donc pas être autrement reflétées dans les réponses du LLM. Cette recherche permet de récupérer des informations pertinentes, puis d'utiliser ces informations pour enrichir les réponses générées par le LLM.

Solutions connexes
IBM watsonx.ai

Entraînez, validez, réglez et déployez une IA générative, des modèles de fondation et des capacités de machine learning avec IBM watsonx.ai, un studio d’entreprise nouvelle génération pour les générateurs d’IA. Créez des applications d’IA en peu de temps et avec moins de données.

Découvrir watsonx.ai
Solutions d’intelligence artificielle

Mettez l’IA au service de votre entreprise grâce à l’expertise de pointe d’IBM en matière d’IA et à son portefeuille de solutions.

Découvrir les solutions d’IA
Conseil et services en Intelligence Artificielle (IA)

IBM Consulting et ses services d'IA accompagnent les entreprises dans la redéfinition de leurs activités avec l'intelligence artificielle pour mener leur transformation.

Découvrir les services d’IA
Passer à l’étape suivante

Bénéficiez d’un accès centralisé aux fonctionnalités couvrant le cycle de développement de l’IA. Produisez des solutions IA puissantes offrant des interfaces conviviales, des workflows et un accès à des API et SDK conformes aux normes du secteur.

Découvrir watsonx.ai Réserver une démo en direct
Notes de bas de page

Tous les liens sont externes au site ibm.com.

« Stable Tuple Embeddings for Dynamic Databases », arXiv, 11 mars 2021.
« Leaderboard: Image Classification on ImageNet », Papers With Code, consulté le 5 juin 2024.
"Models" (sorted by "Most downloads"), Hugging Face, consulté le 5 juin 2024.
« DistilBERT, a distilled version of BERT: smaller, faster, cheaper and lighter », arXiv, 2 octobre 2019.
« GloVe: Global Vectors for Word Representation », Stanford University, août 2014.