À retenir
- Si vous devez comprendre le sens et le contexte, choisissez la recherche par embeddings.
- Plutôt que de simplement pénaliser le document, BM42 considère d’autres facteurs, comme le contexte général ou les termes liés, pour mieux évaluer sa pertinence.
- Pour nous assurer de parler de la même chose, un graphe de connaissances est simplement une représentation structurée de données qui saisit les entités et leurs relations.
Avant de commencer, voici la vidéo 5/10 du cours « From Beginner to Advanced LLM Developer » de Towards AI. Rejoignez maintenant notre cohorte du Cyber Monday avant le 8 décembre et obtenez un rabais de 15 % ici !
Aujourd’hui, nous explorons comment améliorer la recherche d’information dans vos applications RAG. Nous couvrirons tout, des méthodes traditionnelles par mots-clés aux approches plus récentes comme GraphRAG. À la fin, vous saurez exactement comment mettre vos données à votre service.
La recherche traditionnelle par mots-clés
Commençons simplement par la recherche par mots-clés.
La recherche par mots-clés trouve des correspondances exactes ou proches de vos termes. Elle est parfaite lorsque vous savez exactement ce que vous voulez. Si l’information s’y trouve, vous la trouverez.
Si vous cherchez par exemple les politiques d’une entreprise sur « l’éthique de l’IA », la recherche par mots-clés trouvera les documents qui contiennent exactement ces mots.
BM25 et BM42 sont deux algorithmes populaires de recherche par mots-clés :
BM25, ou « Best Matching 25 », est une fonction de classement utilisée dans la recherche d’information. Imaginez un système de pointage sophistiqué pour la recherche par mots-clés.
D’abord, cette fonction examine le nombre d’apparitions d’un mot dans un document, ce qu’on appelle la fréquence du terme (TF). Elle attribue ensuite un poids supplémentaire aux mots plus rares dans l’ensemble des documents, soit la fréquence inverse des documents (IDF). Elle évite aussi d’accorder automatiquement un score plus élevé aux longs documents simplement parce qu’ils contiennent plus de mots. Enfin, une fonction de saturation intelligente reconnaît qu’un grand nombre d’apparitions ne rend pas soudainement un mot beaucoup plus important. Après un certain seuil, comme 100 répétitions du même mot, chaque nouvelle occurrence ajoute de moins en moins de poids à son score de pertinence. Cette fonction équilibre l’influence des mots fréquents et les empêche de dominer injustement le pointage, puisqu’un mot qui apparaît 100 fois n’est pas nécessairement 10 fois plus pertinent que s’il apparaît 10 fois.
BM25 équilibre tous ces facteurs pour fournir des résultats pertinents sans se laisser tromper par le bourrage de mots-clés ou la longueur des documents.
Il existe aussi BM42, une évolution de BM25 spécialement conçue pour gérer des documents plus longs et des requêtes plus complexes. Elle introduit plusieurs améliorations importantes. D’abord, elle utilise une fonction de saturation différente qui convient mieux aux très longs documents. Elle gère aussi plus efficacement les termes de la requête qui n’apparaissent pas dans un document. Plutôt que de simplement pénaliser le document, BM42 considère d’autres facteurs, comme le contexte général ou les termes liés, pour mieux évaluer sa pertinence. Enfin, elle introduit un composant de normalisation de la longueur qui s’adapte mieux à différents types de contenu.
BM42 cherche donc essentiellement à préserver les forces de BM25 tout en corrigeant ses faiblesses, particulièrement pour les collections modernes de documents à l’échelle du Web, dont les longueurs peuvent varier énormément.
Ces deux méthodes rendent la recherche par mots-clés plus nuancée et plus efficace. Elles dépassent le simple comptage des mots pour fournir des résultats plus pertinents.
En général, la recherche par mots-clés fonctionne mieux lorsque vous avez besoin de résultats rapides et exacts. Elle excelle avec les données bien organisées et les termes précis. Mais elle a ses limites. Si les mots ne correspondent pas exactement, elle peut rater des idées liées. Revenons à notre exemple de « l’éthique de l’IA ». Une recherche par mots-clés ne trouvera pas nécessairement un texte qui parle de la même idée avec l’expression « considérations éthiques en apprentissage automatique ». Il nous faut alors une méthode plus intelligente.
La recherche par embeddings
Idéalement, nous aimerions utiliser une recherche qui comprend ce que nous voulons dire, pas seulement les mots exacts que nous prononçons.
C’est ce que fait la recherche par embeddings.
La recherche par embeddings, aussi appelée recherche sémantique ou recherche vectorielle, transforme la requête, comme notre exemple précédent sur « l’éthique de l’IA », et les documents en vecteurs de haute dimension appelés embeddings. Grâce à l’entraînement du modèle, ces embeddings représentent plus que les mots. Ils ont appris à saisir le sens sémantique du texte. Vous pouvez simplement les voir comme une immense liste de caractéristiques, chacune accompagnée d’une valeur qui indique par exemple s’il s’agit d’un objet, sa couleur, sa forme et ainsi de suite. Le système peut ensuite comparer mathématiquement ces nouvelles représentations des mots.
Le processus calcule la similarité entre l’embedding de la requête, donc la question de notre utilisateur ou le terme à chercher, et les embeddings des documents, soit notre dataset transformé dans ce format. Il calcule généralement cette similarité avec une métrique appelée similarité cosinus. Cela signifie simplement qu’il compare chaque valeur du vecteur d’embedding de notre requête aux valeurs d’un vecteur d’embedding de la base de données. Il répète ensuite ce processus pour tous les embeddings des données afin de trouver les correspondances les plus pertinentes. Cette approche permet au système de trouver des documents selon leur similarité conceptuelle, même lorsque les mots-clés exacts ne correspondent pas. Elle excelle dans la compréhension du contexte, des synonymes et des concepts liés, mais exige davantage de ressources de calcul et des modèles plus sophistiqués.
Nous utilisons la recherche par embeddings lorsque nous devons trouver des idées semblables exprimées avec des mots différents. Elle convient parfaitement aux outils de recherche dans lesquels les gens peuvent décrire la même chose de plusieurs façons. Elle pourrait par exemple trouver des articles sur « AI ethics » même si un utilisateur écrit plutôt « éthique de l’intelligence artificielle » en français. Elle comprend que les deux expressions veulent essentiellement dire la même chose, même si elles n’utilisent pas les mêmes mots ni même la même langue.
La recherche hybride : le meilleur des deux approches
Elle peut exploiter à la fois ce que vous dites et ce que vous voulez dire.
La recherche hybride est parfaite lorsque vous avez besoin de correspondances exactes et de contenu lié. Elle excelle avec les données mixtes et dans les situations où vous voulez équilibrer la récupération de tout le contenu pertinent, qui peut représenter beaucoup d’information, et celle des éléments les plus pertinents, comme les 3 meilleurs.
Dans une boutique en ligne, par exemple, la recherche hybride peut aider les clients à trouver des produits même s’ils ne connaissent pas leur nom exact. Elle peut en même temps trouver les correspondances exactes des codes de produits. De même, dans notre exemple de « l’éthique de l’IA », si l’utilisateur écrit « considérations éthiques des véhicules autonomes », vous trouverez précisément l’information sur les véhicules autonomes, mais pourrez aussi repérer des préoccupations plus générales et potentiellement pertinentes sur l’IA et les véhicules. Avec un bon équilibre, cette méthode offre le meilleur des deux mondes.
GraphRAG : connecter les idées
Passons au niveau supérieur avec GraphRAG, une nouvelle méthode popularisée par Microsoft. Il ne s’agit plus seulement de trouver l’information, mais de comprendre comment tous ses éléments sont liés.
GraphRAG utilise les relations entre les objets ou les personnes, que nous appelons des graphes de connaissances, plutôt que de seulement trouver des documents pertinents. Il détermine leurs relations, extrait les entités et les liens et crée une représentation structurée qui saisit les connexions sémantiques dans les données.
Pour nous assurer de parler de la même chose, un graphe de connaissances est simplement une représentation structurée de données qui saisit les entités et leurs relations afin de mieux comprendre et récupérer l’information.
Nous utilisons GraphRAG lorsque les données possèdent des connexions complexes. Cette méthode excelle pour répondre aux questions difficiles qui font intervenir plusieurs éléments d’information. Pensez à la recherche juridique, où vous devez comprendre les liens entre différents jugements et différentes lois.
Mais soyez prudent : GraphRAG est puissant, mais lent. À l’heure actuelle, il peut prendre jusqu’à 10 fois plus de temps que des méthodes plus simples, selon un récent article de blogue de Microsoft. Assurez-vous d’en avoir réellement besoin avant de l’utiliser !

Le filtrage des métadonnées : utiliser l’information supplémentaire
La clé pour trouver ce dont vous avez besoin ne se trouve parfois pas dans le texte principal, mais dans l’information supplémentaire qui le décrit. C’est ce qu’on appelle le filtrage des métadonnées.
Le filtrage des métadonnées vous permet de limiter la recherche avec des éléments comme les dates, les auteurs ou les types de fichiers. Il utilise essentiellement des labels pour organiser vos fichiers.
Utilisez le filtrage des métadonnées lorsque votre recherche doit respecter des limites précises. Il convient parfaitement aux données qui possèdent des labels clairs ou lorsque vous voulez donner plus de contrôle aux utilisateurs sur leurs recherches.
Supposons par exemple que nous possédons un grand dataset sur l’IA en général et de nombreux tags pour chaque texte, comme RAG, LLMs, véhicules autonomes ou éthique. Nous pourrions récupérer directement tous les textes liés à l’éthique sans aucune recherche coûteuse. Il suffit d’appliquer un filtre. C’est tout. Nous pouvons ensuite lancer une recherche par embeddings dans une partie beaucoup plus petite de nos données afin de trouver l’information la plus pertinente dans ce sous-ensemble filtré.
Le routeur : votre aiguilleur de la recherche
Mais avec toutes ces techniques de recherche, comment savoir laquelle utiliser ? Pouvez-vous en choisir une seule ? Ou devriez-vous toutes les utiliser ? C’est ici qu’intervient le routeur.
Un routeur choisit la meilleure méthode de recherche selon votre question et le type de données dont vous disposez. Il s’agit généralement d’un puissant modèle de langage qui comprend votre requête et vos options de recherche, puis détermine les techniques qui correspondent le mieux à vos besoins. Il fera simplement ce que vous pourrez faire après la lecture de cet article, lorsque vous comprendrez bien pourquoi choisir la recherche par mots-clés, la recherche par embeddings ou les graphes !
Les routeurs rendent vos recherches plus rapides et plus exactes. Ils peuvent appliquer différentes techniques à différentes questions dans un seul système.
Dans un système de soutien à la clientèle, par exemple, un routeur pourrait utiliser la recherche par mots-clés pour les codes de produits, la recherche par embeddings pour les questions générales et GraphRAG pour résoudre les problèmes complexes.

Conclusion : choisir votre stratégie de recherche
Alors, quelle technique de recherche devriez-vous utiliser ? Tout dépend de vos besoins.
Pour des données simples et organisées, conservez la recherche par mots-clés ou une base de données SQL existante. Si vous devez comprendre le sens et le contexte, choisissez la recherche par embeddings. Vous voulez un peu des deux ? Essayez la recherche hybride. Vous traitez de l’information complexe et connectée ? Envisagez GraphRAG. Vous devez filtrer les résultats ? Utilisez le filtrage des métadonnées. Et si vous voulez un système capable de tout faire, configurez un routeur.
Rappelez-vous que la meilleure stratégie de recherche correspond à vos données, à vos utilisateurs et à ce que votre système peut gérer. N’ayez pas peur de combiner les méthodes pour créer la meilleure recherche possible pour votre cas d’utilisation.
Pendant la construction de votre prochain projet fondé sur les données, pensez à la façon dont les gens chercheront l’information. La bonne technique de recherche peut transformer une expérience frustrante en système véritablement intelligent.
Si cet article vous a été utile, pensez à consulter notre cours. Nous y explorons le RAG de zéro à héros avec toutes ces techniques de filtrage et de recherche, ainsi que des approches plus avancées pour améliorer les LLMs dans des applications concrètes.
FAQ
Quand devrais-je utiliser la recherche par mots-clés dans un système RAG ?
Utilisez-la pour les termes exacts, les identifiants et les données organisées lorsque la correspondance entre les mots eux-mêmes compte davantage que l’interprétation de leur sens général.
Qu’est-ce que la recherche par embeddings ajoute ?
Elle récupère le texte selon sa similarité sémantique, ce qui aide à gérer le contexte, les synonymes et les concepts liés qui n’utilisent pas les mêmes mots-clés.
Pourquoi combiner la recherche par mots-clés et par embeddings ?
La recherche hybride préserve les correspondances lexicales précises tout en ajoutant le rappel sémantique, ce qui offre au système de recherche plus de façons de trouver un passage réellement pertinent.
Qu’est-ce que GraphRAG apporte à la recherche d’information ?
GraphRAG représente explicitement les entités et leurs relations, ce qui facilite la récupération d’information liée, mais répartie dans des documents distincts.
Comment un système RAG devrait-il choisir entre ces méthodes de recherche ?
Un routeur peut examiner la requête et l’envoyer vers la stratégie de recherche qui correspond aux données et aux exigences de la requête, de la latence et du contexte.
Qu’est-ce que le filtrage des métadonnées ajoute à la recherche RAG ?
Il réduit le nombre de candidats selon des champs comme la date, la source, l’auteur ou la catégorie avant le classement sémantique ou en parallèle avec celui-ci.

