Utiliser RAG dans une application d'assistant virtuel
Comment la génération augmentée par la recherche ancre les réponses d'un assistant dans vos documents plutôt que dans la mémoire du modèle.
INSIGHTS ADSERVIO · GENAI

EN BREF
- RAG (génération augmentée par la récupération) combine recherche vectorielle et LLM pour répondre aux requêtes d'un assistant virtuel avec des informations issues d'un catalogue de documents.
- La préparation du catalogue passe par la segmentation des documents, leur conversion en intégrations vectorielles (Sentence Transformer, Titan Embeddings) puis leur indexation dans une base vectorielle comme Chroma DB ou FAISS.
- La Pertinence Marginale Maximale (MMR) permet de diversifier les recommandations en équilibrant pertinence à la requête et dissimilarité entre documents déjà sélectionnés.
- Contrairement aux systèmes de recommandation classiques (mots-clés, similarité sémantique, filtrage collaboratif), RAG synthétise l'information et permet à l'utilisateur d'affiner sa demande par des questions de suivi.
- Qualité et quantité des données, hallucinations et mesure de la précision/rappel restent les principaux défis à maîtriser pour un assistant virtuel basé sur RAG.
SECTION 1
Introduction
Les assistants virtuels utilisent le traitement du langage naturel (NLP) et des algorithmes d'apprentissage automatique pour comprendre et répondre aux requêtes des utilisateurs. Un élément crucial des assistants virtuels modernes, qui exploitent les grands modèles de langage, est la génération augmentée par la récupération, ou RAG.
Dans cet article de blog, j'expliquerai comment RAG peut être utilisé dans les assistants virtuels pour améliorer l'expérience utilisateur. Les avantages d'une telle technique devraient être évidents, et démontrer l'importance du RAG dans la réussite de l'intelligence artificielle générative.
Pour commencer, réfléchissons aux étapes que l'assistant virtuel doit effectuer lorsqu'un utilisateur saisit une requête :
Il doit analyser la requête. Ensuite, rechercher le catalogue et extraire les informations pertinentes. Rechercher ensuite un catalogue de produits pour récupérer les produits pertinents avec leurs détails. Puis poser des questions de suivi pertinentes à l'utilisateur. Modifier les invites pour récupérer les produits connexes du catalogue. Affiner la requête initiale de l'utilisateur pour mieux comprendre son intention. Identifier les produits pertinents en fonction de l'entrée utilisateur. Poursuivre le flux d'expérience d'achat pour ajouter des produits ou finaliser la vente.
Examinons maintenant comment ce processus se déploie plus en détail.
SECTION 2
Préparer un catalogue
Tout d'abord, nous devons préparer un catalogue dans lequel l'assistant virtuel effectuera des recherches pour fournir une réponse à la requête d'un utilisateur.
### De la segmentation à l'indexation vectorielle
En règle générale, le catalogue sera constitué d'une collection de documents, qui peuvent inclure des informations sur les produits, des produits, des matériaux marketing et d'autres contenus. Ce texte peut ensuite être divisé en petits segments : c'est un processus connu sous le nom de segmentation. Ces documents segmentés peuvent ensuite être convertis en intégrations vectorielles à l'aide d'un modèle de transformateur, comme Sentence Transformer ou Titan Text Embeddings V2.. Ces intégrations vectorielles sont stockées dans une base de données vectorielle, pour un prototype, Chroma DB ou FAISS restent adaptés ; en production, on se tourne plutôt vers pgvector (si l'on reste sur PostgreSQL), Qdrant, ou un moteur de recherche hybride comme OpenSearch, qui combine recherche vectorielle et filtrage par mots-clés. Le stockage des vecteurs dans une base de données vectorielle facilite le processus de récupération. Nous pouvons ensuite créer un index à partir des segments et des intégrations vectorielles correspondantes.
@cite:recherche-semantique-et-recuperation-d-informations
SECTION 3
Rédiger des invites pertinentes
Ensuite, nous devons rédiger des invites qui acceptent une requête utilisateur comme entrée et, utilisant le contexte fourni par les intégrations vectorielles stockées dans une base de données vectorielle, aident le modèle LLM à répondre efficacement. Une fois que nous avons fait cela, nous sommes prêts à mener une session de questions-réponses avec l'assistant virtuel.
Une fois que nous entrons la question initiale, les étapes suivantes seront exécutées :
Un intégration vectorielle de la question d'entrée est créée. L'intégration vectorielle de la question est ensuite comparée avec d'autres intégrations vectorielles dans l'index. Les segments de document pertinents (top-N) sont ensuite récupérés. Ces segments sont ajoutés comme contexte pertinent dans l'invite. Ces documents top-N récupérés sont des candidats pour la réponse. Envoyer l'invite au LLM que vous utilisez ; il génère ensuite le texte de réponse basé sur les documents récupérés. La réponse contextuelle finale est ensuite donnée en fonction des documents récupérés.
SECTION 4
Exemple de pile technologique
Il existe de nombreuses piles technologiques différentes que vous pourriez utiliser pour ce type de projet, mais voici ce que j'ai employé lors de l'exécution de ce type de tâche.
Amazon Bedrock. C'est utile ici car il fournit un accès aux modèles fondamentaux des fournisseurs tiers et d'Amazon. Claude. C'est un puissant grand modèle de langage qui fournit une bonne base pour les applications conversationnelles. Langchain. C'est un cadre qui aide les développeurs à intégrer les LLM dans les applications. Il peut vous aider à mettre en œuvre les composants requis pour que l'assistant virtuel fonctionne.
SECTION 5
Augmenter la diversité des recommandations de l'assistant virtuel
Parfois, les utilisateurs peuvent vouloir quelque chose de différent ou d'additionnel par rapport à ce que l'assistant virtuel leur a délivré. En d'autres termes, il est parfois nécessaire que l'assistant virtuel fournisse des résultats qui vont au-delà de ce qui est strictement pertinent.
Une façon de procéder est d'utiliser une technique appelée Pertinence Marginale Maximale (MMR).
MMR peut être exprimée par l'équation suivante :
MMR=argmaxDi∈R∖S[λSim1(Di,Q)−(1−λ)maxDj∈SSim2(Di,Dj)]
Elle décrit la somme pondérée des similarités entre :
La façon dont le Document Di et la Requête Q sont similaires. ; La façon dont le Document Di et le Document Dj sont dissimilaires.
C'est cette combinaison linéaire qui constitue la « pertinence marginale ». En d'autres termes, un document a une pertinence marginale élevée s'il est à la fois pertinent pour la requête et contient une similarité minimale avec les documents précédemment sélectionnés.
SECTION 6
RAG par rapport aux systèmes de recommandation
Il convient de noter que les assistants virtuels peuvent utiliser des systèmes de recommandation. En effet, de nombreux premiers assistants virtuels auraient utilisé cette technique. La distinction principale entre RAG et les systèmes de recommandation réside dans leur fonction fondamentale.
RAG est fondamentalement un paradigme de réponse à des questions. Il excelle dans la récupération d'informations factuelles à partir d'une base de connaissances et l'utilisation de ces informations pour générer une réponse cohérente et contextuellement pertinente à une question directe. Pensez-y comme un moteur de recherche hautement avancé qui ne se contente pas de vous pointer vers un document, mais qui synthétise l'information pour vous.
Les systèmes de recommandation analysent le comportement passé, les préférences et les similarités d'un utilisateur avec d'autres utilisateurs pour suggérer proactivement des éléments d'intérêt potentiel. Ces éléments pourraient être des produits sur un site de commerce électronique, des films sur un service de streaming ou des articles sur une plateforme d'actualités. L'objectif est d'anticiper les besoins et les préférences des utilisateurs, souvent avant qu'ils ne les aient explicitement articulés.
Cependant, l'introduction de RAG parallèlement à la croissance de l'intelligence artificielle générative a un certain nombre d'avantages distincts, qui contribuent sans doute à l'industrie pour développer une nouvelle génération améliorée d'assistants virtuels.
### Les limites des approches classiques
Correspondance de mots-clés. La correspondance mot-clé par mot-clé est le moyen le plus simple de recommander des documents similaires. Cependant, elle ne capture pas le sens sémantique des documents. Imaginez que quelqu'un recherche des produits d'une marque européenne, avec un système de recommandation simple, l'assistant peut manquer les marques italiennes bien qu'elles soient bien sûr pertinentes. Recommandations par similarité sémantique. La requête et les documents peuvent être intégrés dans un espace vectoriel et nous pouvons ensuite récupérer les documents pertinents en utilisant la similarité cosinus. La similarité sémantique peut également bien fonctionner avec les synonymes, les abréviations et les fautes de frappe, contrairement aux recherches par mots-clés qui ne peuvent trouver des documents que sur la base de correspondances lexicales. Cependant, cela dépend de la façon dont l'utilisateur formule sa requête. La récupération par similarité sémantique peut donc produire des résultats différents avec des changements subtils dans la façon dont la requête est rédigée. L'intention sous-jacente de l'acheteur peut ne pas être révélée dans la première requête. Il est également à noter que cette méthodologie ne sauvegarde aucun historique.
Recommandations basées sur la collaboration. Nous avons besoin de données de notation, ce n'est pas toujours quelque chose que nous avons, du moins pas de données de notation fiables. De plus, la perception des acheteurs change avec le temps, ce que vous avez évalué 5/5 peut ne pas être d'une quelconque utilité importante aujourd'hui. Si un utilisateur n'a pas d'historique de notation, trouver des modèles dans le comportement d'achat est inévitablement presque impossible. De plus, et si les notations ne sont pas fiables ou les données manquent ? Parfois, les notations sont telles qu'elles ne fonctionnent pas bien avec l'implémentation spécifique de la technologie. Parfois, il n'y a pas du tout d'historique de notation des utilisateurs, ce qui rend la recherche de modèles dans le comportement d'achat des utilisateurs presque impossible.
### L'apport du dialogue conversationnel
Lorsqu'un LLM génère des recommandations, un utilisateur peut poser de meilleures questions pour comprendre pourquoi un produit a été recommandé. Il pourrait également y avoir d'autres questions de suivi par lesquelles l'intention d'un utilisateur pourrait être affinée. Cela ne peut pas être fait avec un système de recommandation.
SECTION 7
Défis techniques et d'évaluation
Il y a de nombreux avantages à utiliser RAG pour aider à construire des assistants virtuels. Cependant, il y a encore quelques défis dont il est important d'être conscient.
### Qualité et quantité des données
Qualité des données. Le développement de systèmes de recommandation basés sur RAG nécessite le développement d'intégrations vectorielles de données. Il est important d'avoir un texte de bonne qualité qui soit spécifique à certains produits et marques. Si les données sont génériques, les recommandations le seront aussi. Quantité de données. Pour développer des intégrations vectorielles de données, nous avons également besoin d'un corpus textuel suffisamment important. Si ce n'est pas le cas, il peut être nécessaire de l'augmenter.
### Hallucinations et mesure de la performance
Hallucinations. Lors du développement d'applications d'intelligence artificielle générative, les hallucinations sont toujours une possibilité. Pour réduire leur probabilité, vous pouvez utiliser des paramètres d'échantillonnage comme la température, top_k et top_p, la température contrôle la quantité d'aléatoire dans les réponses du LLM. Donc, plus la température est élevée, plus la réponse est créative et imprévisible. Évaluation, précision, rappel et vérité de base. Une fois que nous avons développé l'assistant virtuel, il est également important de mesurer la qualité réelle de ses recommandations. Une façon de procéder est de trouver un chevauchement entre les produits recommandés et ceux finalement sélectionnés par l'utilisateur. Par exemple, supposons que nos recommandations soient « ordinateur portable », « clavier » et « souris » et que l'utilisateur sélectionne « ordinateur portable » et « clavier »,il y a un chevauchement de deux recommandations sur trois. L'enregistrement des recommandations de l'assistant virtuel et des sélections de l'utilisateur est essentiel si nous voulons calculer avec succès des métriques d'évaluation comme la précision, le rappel et le score F1.
@cite:comment-evaluer-un-systeme-llm
SECTION 8
La valeur pratique de RAG
RAG est une technique précieuse si vous essayez de construire un assistant virtuel. Elle ajoute du contexte et des détails aux résultats qui amélioreront l'expérience utilisateur. Bien que les systèmes de recommandation aient leur place, l'introduction de RAG est une étape importante en avant.
Il existe potentiellement de nombreuses façons différentes de l'implémenter, mais les étapes décrites dans cet article de blog devraient vous fournir les bases pour commencer et vous familiariser davantage avec RAG.
Cet article de blog est basé sur un article qui a été publié à l'origine sur Medium.
Clause de non-responsabilité : Les déclarations et opinions exprimées dans cet article sont celles du (des) auteur(s) et ne reflètent pas nécessairement les positions d'Adservio.
FAQ
Questions fréquentes
Quelle est la différence entre RAG et un système de recommandation classique ?
RAG est fondamentalement un paradigme de réponse à des questions : il récupère des informations factuelles dans une base de connaissances et synthétise une réponse cohérente à une requête directe. Un système de recommandation analyse plutôt le comportement passé et les similarités entre utilisateurs pour suggérer proactivement des éléments, souvent sans expliquer pourquoi ni permettre d'affiner la demande par des questions de suivi.
Comment diversifier les résultats d'un assistant virtuel basé sur RAG ?
La technique de Pertinence Marginale Maximale (MMR) permet d'aller au-delà de la seule pertinence stricte : elle sélectionne des documents qui restent pertinents par rapport à la requête tout en étant dissimilaires des documents déjà retenus, ce qui évite des recommandations redondantes.
Quels sont les principaux défis d'un assistant virtuel basé sur RAG ?
La qualité et la quantité des données du catalogue conditionnent directement la pertinence des recommandations. Les hallucinations du LLM restent un risque, atténuable en ajustant des paramètres comme la température. Enfin, il faut évaluer la performance réelle via des métriques comme la précision, le rappel et le score F1, en comparant les recommandations aux sélections effectives des utilisateurs.
À PROPOS D'ADSERVIO
Adservio est un partenaire de transformation digitale AI-native : DSI augmentée par l'IA, ingénierie logicielle, DevOps, MLOps, cybersécurité et gouvernance IA.
Discutons de votre projet : hello@adservio.fr · adservio.fr/contact