Embeddings et bases de données vectorielles : guide pratique
Découvrez comment les embeddings et les bases de données vectorielles permettent la recherche sémantique, leurs usages, leurs limites et les étapes concrètes pour créer votre premier projet de recherche.
Points clés à retenir
- Les embeddings transforment le contenu en nombres qui aident les logiciels à comparer le sens et la similarité.
- Les bases de données vectorielles stockent ces représentations et permettent d’y effectuer des recherches, afin de retrouver des données pertinentes même lorsque les formulations diffèrent.
- La qualité des résultats dépend de vos sources, du modèle d’embedding, des filtres et des tests, pas seulement de votre base de données.
Les embeddings sont des représentations numériques de textes, d’images ou d’autres données qui capturent des motifs et des relations utiles. Les bases de données vectorielles stockent ces représentations et retrouvent des éléments similaires, ce qui les rend utiles pour la recherche sémantique, les recommandations et les assistants IA.
Comment ça marche
La recherche traditionnelle par mots-clés cherche des mots correspondants, souvent avec des améliorations comme la correction orthographique et les synonymes. La recherche fondée sur les embeddings ajoute une autre approche : trouver du contenu dont le sens est similaire, même s’il utilise des mots différents.
Par exemple, une recherche sur « Comment récupérer mon compte ? » pourrait retrouver un article d’aide intitulé « Réinitialiser vos identifiants de connexion ».
Embeddings : le contenu représenté sous forme de nombres
Un modèle d’embedding convertit une entrée en une liste de nombres appelée vecteur. Cette entrée peut être une phrase, une section de document, une description de produit ou une image.
Vous pouvez imaginer chaque vecteur comme un point sur une carte à plusieurs dimensions. Les éléments dont le sens est similaire ont tendance à se situer près les uns des autres, selon le modèle et la mesure de similarité utilisés.
Ces nombres ne constituent pas un résumé lisible. Les dimensions individuelles ne correspondent généralement pas à des étiquettes simples comme « prix » ou « bonheur ». Ce sont les relations au sein du vecteur tout entier qui comptent.
Bases de données vectorielles : trouver des correspondances proches
Une base de données vectorielle stocke des vecteurs, généralement accompagnés d’identifiants et de métadonnées comme les titres des documents, les dates, les catégories ou les autorisations d’accès. Elle utilise des index pour retrouver efficacement des vecteurs similaires.
Certains systèmes utilisent la recherche approximative des plus proches voisins : ils privilégient la découverte rapide de bonnes correspondances plutôt que la vérification exhaustive de tous les résultats possibles. Cela crée un compromis entre la vitesse de recherche et la fiabilité avec laquelle celle-ci trouve les correspondances les plus proches.
Un processus type se présente ainsi :
- Préparer les données. Rassemblez les documents et supprimez les contenus en double, obsolètes ou non pertinents.
- Découper les contenus longs. Divisez les documents en sections cohérentes, souvent appelées segments.
- Créer les embeddings. Envoyez chaque segment à un modèle d’embedding.
- Stocker les résultats. Enregistrez les vecteurs avec le texte source ou une référence vers celui-ci, ainsi que des métadonnées utiles.
- Créer l’embedding de la requête. Convertissez la question de l’utilisateur à l’aide d’un modèle d’embedding compatible.
- Retrouver les correspondances. Recherchez les vecteurs proches et appliquez des filtres ou un classement supplémentaire.
Si un assistant IA utilise ensuite les passages retrouvés pour rédiger une réponse, ce processus est généralement appelé génération augmentée par la recherche, ou RAG. La recherche trouve les éléments probants ; la génération produit la réponse.
Exemples concrets
Rechercher dans les connaissances de l’entreprise
Un employé demande : « Puis-je travailler depuis un autre pays pendant un mois ? » Les consignes pertinentes peuvent se trouver dans un document intitulé « Politique de télétravail à l’international ».
Les embeddings peuvent relier la question à cette politique sans exiger une formulation identique. Les filtres de métadonnées peuvent limiter les résultats à la région de l’employé, tandis que les contrôles d’autorisation empêchent l’accès aux documents à accès restreint.
Trouver des produits et des contenus associés
Un acheteur recherche « un sac léger pour partir en week-end ». La recherche fondée sur les embeddings peut faire ressortir des descriptions mentionnant des sacs de voyage compacts, même si elles ne contiennent pas l’expression exacte.
Des techniques similaires peuvent recommander des articles ou des produits associés. Toutefois, la similarité seule ne tient pas compte de la disponibilité, du budget ou des règles métier. Ces contraintes nécessitent des filtres ou une logique de classement distincts.
Aider un développeur à s’orienter dans la documentation
Un développeur pourrait rechercher dans la documentation interne « réessayer les requêtes échouées en toute sécurité ». Les pages pertinentes pourraient traiter du délai exponentiel entre les tentatives, de l’idempotence et de la gestion des délais d’expiration.
La recherche sémantique peut aider à relier ces concepts. La correspondance exacte des mots-clés reste importante pour les noms de fonctions, les codes d’erreur et les numéros de version ; il est donc souvent utile de combiner les deux approches.
Explorer des collections de publications scientifiques
Les chercheurs peuvent utiliser les embeddings pour découvrir des publications qui abordent des concepts apparentés avec une terminologie différente.
Cela facilite la découverte, pas la vérification scientifique. Une publication similaire peut étudier une population différente, employer une méthode moins rigoureuse ou aboutir à une conclusion contradictoire. Les chercheurs doivent toujours examiner les sources.
Avantages et limites
Le principal avantage est une recherche plus souple. Les utilisateurs peuvent poser des questions naturellement plutôt que de deviner la formulation exacte d’un document. Les embeddings peuvent aussi servir au regroupement, aux recommandations et à la détection de contenus quasi identiques.
La recherche hybride peut améliorer la couverture. Combiner la recherche par mots-clés et la recherche vectorielle aide à équilibrer la pertinence conceptuelle et les correspondances exactes, notamment pour les noms, les identifiants et les termes techniques.
Il existe toutefois des limites importantes :
- La similarité n’est pas la vérité. Un passage bien classé peut être inexact, obsolète ou seulement vaguement pertinent.
- Les modèles ont des points forts différents. Un modèle d’embedding généraliste peut avoir du mal avec une terminologie spécialisée ou certaines langues.
- Le découpage influe sur les résultats. Des segments trop petits peuvent perdre leur contexte ; des segments trop grands peuvent diluer l’information utile.
- Les changements de contenu nécessitent une maintenance. Les documents mis à jour nécessitent généralement de nouveaux embeddings, tandis que les contenus supprimés doivent être retirés des éléments accessibles à la recherche.
- La confidentialité exige des contrôles explicites. Traitez les embeddings et le texte associé comme des données potentiellement sensibles. La recherche doit faire respecter les règles d’accès.
- Les coûts ne se limitent pas au stockage. La génération des embeddings, l’indexation, les requêtes et le reclassement éventuel consomment tous des ressources.
Une base de données vectorielle ne remplace pas non plus toutes les autres bases de données. Les totaux financiers, le traitement des transactions et les rapports précis nécessitent toujours des requêtes structurées et des systèmes de données adaptés.
Comment débuter
Commencez par une tâche bien délimitée, comme la recherche dans une base de connaissances d’assistance. Évitez d’essayer de créer d’emblée un assistant couvrant tous les documents de l’entreprise.
- Rassemblez des contenus et des questions représentatifs. Incluez des questions simples, des identifiants exacts, des demandes ambiguës et des questions auxquelles vos documents ne peuvent pas répondre.
- Établissez une référence avec la recherche par mots-clés. Cela permet de voir si les embeddings améliorent réellement votre cas d’usage.
- Choisissez un modèle d’embedding. Vérifiez les langues prises en charge, les limites d’entrée, les exigences de confidentialité et l’adéquation à votre contenu.
- Choisissez une solution de stockage. Pinecone est une base de données vectorielle conçue pour la recherche par similarité. Vous pouvez aussi envisager les capacités de recherche vectorielle d’une base de données existante plutôt que d’ajouter immédiatement un autre système.
- Ajoutez des métadonnées utiles. Incluez les références des sources, les dates de mise à jour, les catégories et les informations d’accès. Configurez la recherche pour faire respecter les autorisations.
- Évaluez et affinez. Vérifiez si le bon passage apparaît parmi les premiers résultats. Ajustez le découpage, les filtres, la recherche hybride ou le classement en fonction des échecs constatés.
ChatGPT peut aider à rédiger du code pour un prototype ou à trouver des idées de questions d’évaluation. Un développeur peut aussi utiliser Phind, un moteur de recherche et de réponses destiné aux développeurs, pour se renseigner sur des questions de mise en œuvre. Vérifiez les conseils générés à l’aide de la documentation actuelle et évitez de partager des données confidentielles sans mesures de protection approuvées.
FAQ
Les embeddings sont-ils la même chose qu’un modèle d’IA ?
Non. Un modèle d’embedding produit des embeddings ; les embeddings sont ses sorties numériques. Une base de données vectorielle stocke ces sorties et permet d’y effectuer des recherches, plutôt que de jouer elle-même le rôle du modèle.
Ai-je besoin d’une base de données vectorielle dédiée ?
Pas toujours. Un petit prototype peut fonctionner avec des calculs de similarité locaux, et certaines bases de données existantes prennent en charge la recherche vectorielle. Faites votre choix en fonction du volume de données, de la vitesse des requêtes, du filtrage, des autorisations et des besoins opérationnels.
Puis-je mélanger des embeddings issus de modèles différents ?
Généralement pas directement. Les différents modèles produisent en général des espaces vectoriels incompatibles, même si leurs vecteurs ont la même longueur. Utilisez un modèle compatible pour le contenu stocké et les requêtes ; changer de modèle implique généralement de recalculer les embeddings de votre contenu.