Comment construire un système RAG agentique avec recherche hybride
⚡ Résumé en français par Brief IA
• L'article explique comment développer un système RAG agentique efficace en utilisant une approche de recherche hybride. • Le système RAG peut améliorer la récupération d'informations et la génération de réponses précises. • Cette méthode combine différentes techniques de recherche pour optimiser les performances des modèles d'IA. 💡 Pourquoi c'est important : l'innovation dans les systèmes RAG peut transformer la manière dont les entreprises exploitent les données pour des décisions éclairées.
📄 Article traduit en français
Comment construire un système RAG agentique avec recherche hybride
Qu'est-ce que le RAG ?
Le RAG, ou Retrieval-Augmented Generation, est une méthode puissante pour trouver des documents pertinents dans un corpus d'informations, que vous fournissez ensuite à un LLM (modèle de langage) pour répondre aux questions des utilisateurs.
Traditionnellement, le RAG utilise d'abord la similarité vectorielle pour identifier des morceaux de documents pertinents dans le corpus, puis alimente les morceaux les plus pertinents dans le LLM pour fournir une réponse.
Cette méthode fonctionne très bien dans de nombreux scénarios, car la similarité sémantique est un moyen efficace de trouver les morceaux les plus pertinents. Cependant, la similarité sémantique peut rencontrer des difficultés dans certains cas, par exemple lorsque l'utilisateur saisit des mots-clés ou des identifiants spécifiques qui doivent être localisés explicitement pour être utilisés comme morceaux pertinents. Dans ces situations, la similarité vectorielle n'est pas très efficace, et il faut adopter une meilleure approche pour trouver les morceaux les plus pertinents.
Pourquoi utiliser la recherche hybride
La similarité vectorielle est très puissante. Elle permet de trouver efficacement des morceaux pertinents dans un corpus de documents, même si la requête d'entrée contient des fautes de frappe ou utilise des synonymes, comme le mot "ascenseur" au lieu de "élévateur".
Cependant, la similarité vectorielle montre ses limites dans d'autres scénarios, notamment lors de la recherche de mots-clés ou de numéros d'identification spécifiques. La raison en est que la similarité vectorielle ne pèse pas les mots ou identifiants individuels de manière significative par rapport aux autres mots. Ainsi, les mots-clés ou identifiants clés sont généralement noyés parmi d'autres mots pertinents, ce qui rend difficile pour la similarité sémantique de trouver les morceaux les plus pertinents.
La recherche par mots-clés, en revanche, est extrêmement efficace pour les mots-clés et identifiants spécifiques, comme son nom l'indique. Avec BM25, par exemple, si vous avez un mot qui n'existe que dans un document et dans aucun autre, et que ce mot figure dans la requête de l'utilisateur, ce document sera fortement pondéré et très probablement inclus dans les résultats de recherche.
C'est la principale raison pour laquelle vous souhaitez utiliser une recherche hybride. Vous pouvez simplement trouver plus de documents pertinents si l'utilisateur saisit des mots-clés dans sa requête.
Comment mettre en œuvre la recherche hybride
Il existe de nombreuses façons de mettre en œuvre la recherche hybride. Si vous souhaitez le faire vous-même, voici les étapes à suivre :
-
Implémentez la récupération vectorielle via la similarité sémantique comme vous l'auriez fait normalement. Je ne couvrirai pas les détails exacts dans cet article, car cela sort du cadre, et le point principal de cet article est de traiter la partie recherche par mots-clés de la recherche hybride.
-
Implémentez BM25 ou un autre algorithme de recherche par mots-clés de votre choix. BM25 est un standard car il repose sur TF-IDF et possède une meilleure formule, ce qui en fait un meilleur choix. Cependant, l'algorithme de recherche par mots-clés exact que vous utilisez n'a pas vraiment d'importance, bien que je recommande d'utiliser BM25 comme standard.
-
Appliquez une pondération entre la similarité trouvée via la similarité sémantique et la similarité de recherche par mots-clés. Vous pouvez décider de cette pondération vous-même en fonction de ce que vous considérez comme le plus important. Si vous avez un agent effectuant une recherche hybride, vous pouvez également laisser l'agent décider de cette pondération, car les agents ont généralement une bonne intuition pour savoir quand utiliser ou privilégier l'une ou l'autre méthode.
Il existe également des packages que vous pouvez utiliser pour y parvenir, comme TurboPuffer pour le stockage vectoriel, qui dispose d'un package de recherche par mots-clés intégré. Cependant, pour comprendre comment le système fonctionne réellement, il est également recommandé de le mettre en œuvre vous-même pour tester le système et voir s'il fonctionne.
Dans l'ensemble, la recherche hybride n'est pas vraiment difficile à mettre en œuvre et peut offrir de nombreux avantages. Si vous envisagez une recherche hybride, vous savez généralement comment fonctionne la recherche vectorielle elle-même et il vous suffit d'ajouter l'élément de recherche par mots-clés. La recherche par mots-clés elle-même n'est pas non plus très compliquée, ce qui rend la recherche hybride relativement simple à mettre en œuvre, tout en offrant de nombreux bénéfices.
Recherche hybride agentique
Mettre en œuvre une recherche hybride est excellent, et cela améliorera probablement immédiatement le fonctionnement de votre système RAG. Cependant, je crois que si vous voulez vraiment tirer le meilleur parti d'un système RAG avec recherche hybride, vous devez le rendre agentique.
Par "agentique", je veux dire ce qui suit. Un système RAG typique récupère d'abord des morceaux pertinents, les morceaux de documents, les alimente dans un LLM, et lui fait répondre à une question utilisateur.
Cependant, un système RAG agentique fonctionne un peu différemment. Au lieu de faire la récupération des morceaux avant d'utiliser un LLM pour répondre, vous faites de la fonction de récupération des morceaux un outil auquel le LLM peut accéder. Cela rend bien sûr le LLM agentique, car il a accès à un outil et cela présente plusieurs avantages majeurs :
-
L'agent peut décider lui-même du prompt à utiliser pour la recherche vectorielle. Ainsi, au lieu d'utiliser uniquement le prompt exact de l'utilisateur, il peut reformuler le prompt pour obtenir de meilleurs résultats de recherche vectorielle. La reformulation de requête est une technique bien connue que vous pouvez utiliser pour améliorer les performances du RAG.
-
L'agent peut récupérer les informations de manière itérative, ce qui signifie qu'il peut d'abord effectuer un appel de recherche vectorielle, vérifier s'il a suffisamment d'informations pour répondre à une question, et si ce n'est pas le cas, il peut récupérer encore plus d'informations. Cela permet à l'agent de revoir les informations qu'il a récupérées et, si nécessaire, d'en obtenir encore plus, ce qui l'aidera à mieux répondre aux questions.
-
L'agent peut décider lui-même de la pondération entre la recherche par mots-clés et la similarité vectorielle. C'est incroyablement puissant, car l'agent sait généralement s'il recherche un mot-clé ou un contenu sémantiquement similaire. Par exemple, si l'utilisateur a inclus un mot-clé dans sa requête de recherche, l'agent aura probablement tendance à pondérer davantage l'élément de recherche par mots-clés de la recherche hybride, ce qui donnera de meilleurs résultats. Cela fonctionne beaucoup mieux que d'avoir un nombre statique pour la pondération entre la recherche par mots-clés et la similarité vectorielle.
Les LLM de pointe d'aujourd'hui sont incroyablement puissants et seront capables de faire tous ces jugements eux-mêmes. Il y a quelques mois, j'aurais douté de la nécessité de donner à l'agent autant de liberté que je l'ai décrit dans les points ci-dessus, en lui permettant de sélectionner l'utilisation du prompt, de récupérer les informations de manière itérative et de décider de la pondération entre la recherche par mots-clés et la similarité sémantique. Cependant, aujourd'hui, je sais que les derniers LLM de pointe sont devenus si puissants que cela est tout à fait réalisable et même quelque chose que je recommande de mettre en œuvre.
Ainsi, en mettant en œuvre à la fois la recherche hybride et en la rendant agentique, vous pouvez vraiment dynamiser votre système RAG et obtenir des résultats bien meilleurs que ceux que vous auriez obtenus avec un système RAG basé uniquement sur la similarité vectorielle.
Dans cet article, j'ai discuté de la manière d'implémenter la recherche hybride dans votre système RAG. De plus, j'ai décrit comment rendre votre système RAG agentique pour obtenir des résultats bien meilleurs. La combinaison de ces deux techniques entraînera une augmentation incroyable des performances de votre système de récupération d'informations, et cela peut en fait être mis en œuvre assez facilement en utilisant des agents de codage tels que Claude Code. Je crois que les systèmes agentiques sont l'avenir de la récupération d'informations, et je vous encourage à fournir des outils de récupération d'informations efficaces, tels qu'une recherche hybride, à vos agents et à leur faire accomplir le reste du travail.
Brief IA — Veille IA en français
Toutes les innovations mondiales en IA, traduites et résumées automatiquement. Recevoir les meilleures actus IA chaque jour.