Cursus
Génération augmentée par la recherche (RAG) combine les grands modèles linguistiques (LLM) avec des systèmes de recherche afin d'intégrer des informations externes pertinentes au cours du processus de génération de texte.
Au cours des dernières années, le RAG a pris une importance considérable et est devenu un sujet récurrent dans les questions d'entretien pour des postes tels que ceux d'ingénieur en intelligence artificielle. ingénieur en intelligence artificielle, ingénieur en apprentissage automatique, ingénieur promptet scientifique de données.
Cet article vise à vous préparer aux questions d'entretien liées au RAG en vous fournissant un aperçu complet de 30 questions clés, allant des concepts fondamentaux aux sujets plus avancés.
Même si vous ne vous préparez pas à un entretien dans l'immédiat, cet article pourrait être une bonne occasion de tester vos connaissances en matière de RAG.
Devenez un scientifique ML
Questions d'entretien RAG de base
Commençons par une série de questions fondamentales concernant le RAG.
Veuillez expliquer les principaux composants d'un système RAG et leur fonctionnement.
Un système RAG (génération augmentée par la recherche) comporte deux composants principaux : le récupérateur et le générateur.
Le récupérateur recherche et collecte des informations pertinentes à partir de sources externes, telles que des bases de données. bases de données, des documents ou des sites web.
Le générateur, généralement un modèle linguistique avancé, utilise ces informations pour créer un texte clair et précis.
Le récupérateur s'assure que le système obtient les informations les plus récentes, tandis que le générateur les combine avec ses propres connaissances pour produire de meilleures réponses.
Ensemble, ils fournissent des réponses plus précises que celles que le générateur pourrait fournir seul.
Quels sont les principaux avantages d'utiliser RAG plutôt que de se fier uniquement aux connaissances internes d'un LLM ?
Si vous vous fiez uniquement aux connaissances intégrées d'un LLM, le système est limité à ce sur quoi il a été formé, ce qui peut être obsolète ou manquer de détails.
Les systèmes RAG offrent un avantage considérable en recueillant des informations récentes provenant de sources externes, ce qui permet d'obtenir des réponses plus précises et plus rapides.
Cette approche réduit également les « hallucinations » — erreurs dans lesquelles le modèle invente des faits — car les réponses sont basées sur des données réelles. Le RAG est particulièrement utile dans des domaines spécifiques tels que le droit, la médecine, etc. médecineou la technologie, où des connaissances spécialisées et actualisées sont nécessaires.
Quelles sont les applications courantes du RAG ?
Le RAG est utilisé dans diverses applications concrètes de l'IA dans différents domaines :
-
Systèmes de réponse aux questions et d'assistance : RAG alimente les chatbots d'assistance à la clientèle et les assistants de base de connaissances en récupérant de la documentation ou des FAQ à jour et en générant des réponses précises pour les utilisateurs. Cela garantit que les demandes des clients sont traitées à l'aide des informations les plus récentes (par exemple, en récupérant les informations actuelles sur les polices ou les détails des produits).
-
Agents conversationnels : De nombreux chatbots et assistants virtuels utilisent le RAG pour fournir des réponses factuelles et adaptées au contexte. En récupérant des informations pertinentes à la volée, un agent conversationnel (tel qu'un chatbot dédié à la santé ou à la finance) peut fournir des réponses éclairées s'appuyant sur des sources fiables.
-
Génération et résumé de contenu : RAG facilite la génération ou la synthèse de contenu avec une grande précision factuelle. Par exemple, il peut extraire des parties d'articles d'actualité ou de documents de recherche, puis produire des résumés ou des rapports cohérents et vérifiés par rapport aux données sources.
-
Recherche spécifique à un domaine : Dans des domaines spécialisés tels que le droit ou la médecine, les systèmes RAG apportent leur aide en puisant dans des bases de données spécifiques (jurisprudence, revues médicales, etc.) afin de répondre à des requêtes complexes. De cette manière, les résultats du modèle s'appuient sur des connaissances fiables et actualisées dans le domaine, ce qui est essentiel pour les cas d'utilisation professionnels.
Quels types de sources de connaissances externes RAG peut-il utiliser ?
Les systèmes RAG peuvent collecter des informations provenant de sources externes structurées et non structurées :
- Les sources structurées comprennent les bases de données, les API ou les graphes de connaissances, où les données sont organisées et faciles à rechercher.
- Les sources non structurées sont constituées de vastes collections de textes, tels que des documents, des sites Web ou des archives, dont les informations doivent être traitées à l'aide de la compréhension du langage naturel.
Cette flexibilité permet d'adapter les systèmes RAG à différents domaines, tels que l'utilisation juridique ou médicale, en puisant dans des bases de données jurisprudentielles, des revues de recherche ou des données d'essais cliniques.
L'ingénierie rapide est-elle importante dans le RAG ?
L'ingénierie des invites aide les modèles linguistiques à fournir des réponses de haute qualité à partir des informations récupérées. La manière dont vous concevez une invite peut influencer la pertinence et la clarté du résultat.
- Les modèles d'invites système spécifiques contribuent à orienter le modèle. Par exemple, au lieu d'une simple invite système standard telle que « Répondez à la question », vous pourriez avoir « Répondez à la question en vous basant uniquement sur le contexte fourni ». Cela donne au modèle des instructions explicites pour n'utiliser que le contexte fourni pour répondre à la question, ce qui peut réduire la probabilité d'hallucinations.
- La suggestion en quelques étapes consiste à fournir au modèle quelques exemples de réponses avant de lui demander de générer ses propres réponses, afin qu'il comprenne le type de réponse que vous recherchez.
- La chaîne de réflexion permet de décomposer les questions complexes en encourageant le modèle à expliquer son raisonnement étape par étape avant de répondre.
Comment fonctionne le récupérateur dans un système RAG ? Quelles sont les méthodes de récupération courantes ?
Dans un système RAG, le récupérateur rassemble des informations pertinentes provenant de sources externes afin que le générateur puisse les utiliser. Il existe différentes méthodes pour récupérer des informations.
Une méthode est la recherche clairsemée, qui correspond à des mots-clés (par exemple, TF-IDF ou BM25). C'est simple, mais cela ne rend peut-être pas compte de la signification profonde des mots.
Une autre approche est la recherche dense, qui utilise des intégrations neuronales pour comprendre la signification des documents et des requêtes. Des méthodes telles que BERT ou Dense Passage Retrieval (DPR) représentent les documents sous forme de vecteurs dans un espace partagé, ce qui rend la recherche plus précise.
Le choix entre ces méthodes peut considérablement influencer l'efficacité du système RAG.
Quels sont les défis liés à la combinaison des informations récupérées avec la génération LLM ?
La combinaison des informations récupérées avec la génération d'un LLM présente certains défis. Par exemple, les données récupérées doivent être hautement pertinentes par rapport à la requête, car des données non pertinentes peuvent perturber le modèle et réduire la qualité de la réponse.
De plus, si les informations récupérées entrent en conflit avec les connaissances internes du modèle, cela peut générer des réponses confuses ou inexactes. Il est donc essentiel de résoudre ces conflits sans semer la confusion chez l'utilisateur.
Enfin, le style et le format des données récupérées peuvent ne pas toujours correspondre à la manière habituelle dont le modèle rédige ou formate, ce qui peut compliquer l'intégration harmonieuse de ces informations par le modèle.
Quel est le rôle d'une base de données vectorielle dans le RAG ?
Dans un système RAG, une base de données vectorielle facilite la gestion et le stockage d'des intégrations de texte. Ces intégrations sont des représentations numériques qui capturent la signification des mots et des expressions, créées par des modèles tels que BERT ou OpenAI.
Lorsqu'une requête est effectuée, son intégration est comparée à celles stockées dans la base de données afin de trouver des documents similaires. Cela permet de récupérer les informations pertinentes plus rapidement et avec plus de précision. Ce processus permet au système de localiser et d'extraire rapidement les informations les plus pertinentes, améliorant ainsi la rapidité et la précision de la recherche.
Quelles sont les méthodes courantes pour évaluer les systèmes RAG ?
Pour évaluer un système RAG, il est nécessaire d'examiner à la fois les composants de récupération et de génération.
- Pour le récupérateur, vous évaluez la précision et la pertinence des documents récupérés. Des indicateurs tels quela précision de l' (nombre de documents pertinents récupérés) et le rappel (nombre de documents pertinents trouvés par rapport au nombre total) peuvent être utilisés ici.
- Pour le générateur, des indicateurs tels que BLEU et ROUGE peuvent être utilisées pour comparer le texte généré à des exemples rédigés par des humains afin d'en évaluer la qualité.
Pour les tâches en aval telles que les questions-réponses, des mesures telles que score F1et la précisionet le rappel peuvent également être utilisés pour évaluer le système RAG dans son ensemble.
Comment gérez-vous les requêtes ambiguës ou incomplètes dans un système RAG afin de garantir des résultats pertinents ?
Le traitement des requêtes ambiguës ou incomplètes dans un système RAG nécessite des stratégies visant à garantir la récupération d'informations pertinentes et précises malgré le manque de clarté de la saisie de l'utilisateur.
Une approche consiste à mettre en œuvre des techniques de raffinement des requêtes, dans lesquelles le système suggère automatiquement des clarifications ou reformule la requête ambiguë en une requête plus précise, sur la base de modèles connus ou d'interactions précédentes. Cela peut impliquer de poser des questions complémentaires ou de proposer à l'utilisateur plusieurs options afin de préciser son intention.
Une autre méthode consiste à récupérer un ensemble varié de documents couvrant plusieurs interprétations possibles de la requête. En récupérant une série de résultats, le système garantit que, même si la requête est vague, certaines informations pertinentes sont susceptibles d'être incluses.
Enfin, nous pouvons utiliser la des modèles de compréhension du langage naturel (NLU) pour déduire l'intention de l'utilisateur à partir de requêtes incomplètes et affiner le processus de recherche.
Questions d'entretien intermédiaire RAG
Maintenant que nous avons abordé quelques questions fondamentales, il est temps de passer aux questions d'entretien RAG de niveau intermédiaire.
Comment sélectionner le bon récupérateur pour une application RAG ?
Le choix du récupérateur approprié dépend du type de données que vous traitez, de la nature des requêtes et de la puissance de calcul dont vous disposez.
Pour les requêtes complexes qui nécessitent une compréhension approfondie du sens des mots, des méthodes de recherche dense telles que BERT ou DPR sont plus appropriées. Ces méthodes permettent de saisir le contexte et sont idéales pour des tâches telles que le service client ou la recherche, où il est essentiel de comprendre les significations sous-jacentes.
Si la tâche est plus simple et concerne principalement la correspondance de mots-clés, ou si vos ressources informatiques sont limitées, les méthodes de recherche clairsemée telles que BM25 ou TF-IDF pourraient être plus appropriées. Ces méthodes sont plus rapides et plus faciles à mettre en place, mais elles peuvent ne pas permettre de trouver les documents qui ne correspondent pas exactement aux mots-clés.
Le principal compromis entre les méthodes de recherche dense et clairsemée réside dans la précision par rapport au coût de calcul. Parfois, la combinaison des deux approches dans un système de recherche hybride peut contribuer à équilibrer la précision et l'efficacité de calcul. efficacité informatique. De cette manière, vous bénéficiez des avantages des méthodes denses et clairsemées en fonction de vos besoins.
Veuillez décrire ce qu'est une recherche hybride.
La recherche hybride combine les avantages des méthodes de recherche dense et clairsemée.
Par exemple, vous pouvez commencer par une méthode clairsemée telle que BM25 pour trouver rapidement des documents en fonction de mots-clés. Ensuite, une méthode dense telle que BERT reclasse ces documents en comprenant leur contexte et leur signification. Cela vous offre la rapidité d'une recherche clairsemée avec la précision des méthodes denses, ce qui est idéal pour les requêtes complexes et les grands ensembles de données.
Avez-vous besoin d'une base de données vectorielle pour mettre en œuvre RAG ? Dans le cas contraire, quelles sont les alternatives ?
Une base de données vectorielle est très utile pour gérer des intégrations denses, mais elle n'est pas toujours nécessaire. Les alternatives comprennent :
- Bases de données traditionnelles: Si vous utilisez des méthodes clairsemées ou des données structurées, les bases de données relationnelles classiques ou nosql peuvent suffire. Ils sont efficaces pour les recherches par mot-clé. Les bases de données telles que MongoDB ou Elasticsearch sont efficaces pour traiter les données non structurées et les recherches en texte intégral, mais elles ne permettent pas d'effectuer des recherches sémantiques approfondies.
- s d'index inversés: Ces mots-clés sont associés à des documents pour accélérer les recherches, mais ils ne reflètent pas la signification des mots.
- s sur les systèmes de fichiers: Pour les systèmes de petite taille, les documents organisés et stockés dans des fichiers peuvent convenir, mais leurs capacités de recherche sont limitées.
Le choix approprié dépend de vos besoins spécifiques, tels que le volume de vos données et la nécessité ou non d'une compréhension sémantique approfondie.
Comment pouvez-vous garantir que les informations récupérées sont pertinentes et exactes ?
Afin de garantir la pertinence et l'exactitude des informations récupérées, plusieurs approches sont possibles :
- Organisez des bases de connaissances de haute qualité: Veuillez vous assurer que les informations contenues dans votre base de données sont fiables et répondent aux besoins de votre application.
- Optimisation de l': Veuillez adapter le modèle de récupérateur afin qu'il corresponde mieux à vos tâches et exigences spécifiques. Cela contribue à améliorer la pertinence des résultats.
- Veuillez utiliser l'de reclassement: Après avoir obtenu les premiers résultats, veuillez les trier en fonction de leur pertinence détaillée afin d'obtenir les informations les plus précises. Cette étape consiste à vérifier de manière plus approfondie dans quelle mesure les résultats correspondent à la requête.
- Mettre en place des boucles de rétroaction: Obtenir l'avis des utilisateurs ou des modèles sur l'utilité des résultats. Ces commentaires peuvent contribuer à affiner et à améliorer le retriever au fil du temps. Un exemple de cela est le RAG correctif (CRAG).
- Évaluation régulière: Mesurez en permanence les performances du système à l'aide d'indicateurs tels que la précision, le rappel ou le score F1 afin d'améliorer continuellement l'exactitude et la pertinence.
Quelles sont les techniques permettant de traiter des documents volumineux ou des bases de connaissances étendues dans RAG ?
Lorsque vous traitez des documents volumineux ou des bases de connaissances étendues, voici quelques techniques utiles :
- Chunking: Divisez les documents volumineux en sections plus petites et plus faciles à gérer. Cela facilite la recherche et la récupération des parties pertinentes sans avoir à traiter l'intégralité du document.
- Résumé de l': Veuillez créer des versions condensées de documents volumineux. Cela permet au système de fonctionner avec des résumés plus courts plutôt qu'avec le texte intégral, ce qui accélère la recherche.
- de recherche hiérarchique: Veuillez adopter une approche en deux étapes : recherchez d'abord des catégories générales d'informations, puis affinez votre recherche pour obtenir des détails spécifiques. Cela contribue à gérer plus efficacement de grandes quantités de données.
- Intégrations efficaces en termes de mémoire: Utilisez des représentations vectorielles compactes afin de réduire la quantité de mémoire et la puissance de calcul nécessaires. L'optimisation de la taille des intégrations peut faciliter le traitement de grands ensembles de données.
- s sur l'indexation et le partitionnement: Divisez la base de connaissances en plusieurs parties et stockez-les sur plusieurs systèmes. Cela permet un traitement parallèle et une récupération plus rapide, en particulier dans les systèmes à grande échelle.
Comment optimiser les performances d'un système RAG en termes de précision et d'efficacité ?
Pour obtenir les meilleures performances d'un système RAG en termes de précision et d'efficacité, plusieurs stratégies peuvent être utilisées :
- Modèles d'ajustement: Veuillez ajuster les modèles de récupération et de génération en utilisant les données spécifiques à votre tâche. Cela leur permet d'obtenir de meilleurs résultats sur les requêtes spécialisées.
- s d'indexation efficaces: Organisez votre base de connaissances à l'aide de structures de données rapides telles que les index inversés ou le hachage. Cela accélère le processus de recherche d'informations pertinentes.
- Veuillez utiliser la mise en cache de l': Veuillez stocker les données fréquemment utilisées afin d'éviter de devoir les récupérer à plusieurs reprises. Cela améliore l'efficacité et accélère les réponses.
- Réduire les étapes de recherche: Réduisez au minimum le nombre de fois où vous recherchez des informations. Améliorez la précision du moteur de recherche ou utilisez le reclassement pour garantir que seuls les meilleurs résultats sont transmis au générateur, ce qui réduit le traitement inutile.
- s de recherche hybrides: Combiner les méthodes de recherche clairsemées et denses. Par exemple, veuillez utiliser la recherche clairsemée pour trouver rapidement un large ensemble de documents pertinents, puis appliquez la recherche dense pour affiner et classer ces résultats avec plus de précision.
Comment un système RAG préserve-t-il le contexte dans une conversation à plusieurs tours ?
Dans les conversations à plusieurs tours (par exemple, un dialogue avec un chatbot), un système RAG doit conserver le contexte pertinent des tours précédents afin de répondre correctement aux questions suivantes. Pour ce faire, RAG peut intégrer l'historique des conversations dans chaque nouvelle requête :
-
Affiner la requête : Le système peut automatiquement reformuler ou compléter la question de l'utilisateur à l'aide des informations issues des échanges précédents. En ajoutant des détails provenant des tours précédents, le système de recherche obtient une requête plus riche en contexte, ce qui lui permet de récupérer des documents pertinents pour la discussion en cours.
-
Y compris l'historique des conversations : Une autre approche consiste à fournir au modèle un résumé ou une liste des tours de dialogue précédents dans le cadre de son contexte d'entrée. De nombreuses architectures RAG permettent de transmettre une séquence de messages (historique de l'utilisateur et de l'assistant) avec la nouvelle question. De cette manière, lorsque le récupérateur recherche des informations, il tient compte du contexte établi, et le générateur peut utiliser le contexte passé pour maintenir une conversation cohérente.
En utilisant ces méthodes, le système RAG garde une trace de « qui a dit quoi » et de ce qui a déjà été résolu. Cela lui évite d'oublier des détails ou de se répéter.
Questions d'entretien avancées sur le RAG
Jusqu'à présent, nous avons abordé les questions d'entretien RAG de niveau débutant et intermédiaire. Nous allons maintenant aborder des concepts plus avancés tels que les techniques de segmentation ou la contextualisation.
Quelles sont les différentes techniques de segmentation utilisées pour décomposer des documents, et quels sont leurs avantages et inconvénients respectifs ?
Il existe plusieurs méthodes pour décomposer les documents en vue de leur récupération et de leur traitement :
- Longueur fixe : Diviser les documents en segments de taille fixe. C'est facile à faire, mais il arrive parfois que les morceaux ne correspondent pas aux coupures logiques, ce qui peut entraîner le fractionnement d'informations importantes ou l'inclusion de contenu non pertinent.
- Basé sur les phrases : Le découpage des documents en phrases permet de conserver l'intégrité des phrases, ce qui est particulièrement utile pour une analyse détaillée. Cependant, cela peut entraîner un nombre excessif de segments ou une perte de contexte lorsque les phrases sont trop courtes pour rendre compte de l'intégralité des idées.
- Paragraphe par paragraphe : La division en paragraphes permet de conserver le contexte intact, mais les paragraphes peuvent être trop longs, ce qui rend la recherche et le traitement moins efficaces.
- Segmentation sémantique : Les segments sont créés en fonction de leur signification, comme des sections ou des thèmes. Cela permet de conserver un contexte clair, mais est plus difficile à mettre en œuvre car cela nécessite une analyse de texte avancée.
- Fenêtre coulissante : Les blocs se chevauchent en glissant sur le texte. Cela garantit que les informations importantes ne sont pas omises, mais peut être coûteux en termes de calcul et entraîner des répétitions d'informations.
Quels sont les avantages et les inconvénients de diviser les documents en blocs plus grands ou plus petits ?
Les segments plus courts, tels que les phrases ou les paragraphes courts, permettent d'éviter la dilution d'informations contextuelles importantes lorsqu'ils sont compressés en un seul vecteur. Cependant, cela peut entraîner la perte de dépendances à long terme entre les segments, ce qui complique la compréhension par les modèles des références qui s'étendent sur plusieurs segments.
Les segments plus longs conservent davantage de contexte, ce qui permet d'obtenir des informations contextuelles plus riches, mais peuvent être moins ciblés et certaines informations peuvent être perdues lorsque l'on tente de coder toutes les informations dans un seul vecteur.
Qu'est-ce que le « late chunking » et en quoi diffère-t-il des méthodes traditionnelles de segmentation ?
Le chunking tardif est une approche efficace conçue pour pallier les limites des méthodes traditionnelles de chunking dans le traitement des documents.
Dans les méthodes traditionnelles, les documents sont d'abord divisés en segments, tels que des phrases ou des paragraphes, avant d'appliquer un modèle d'intégration. Ces segments sont ensuite codés individuellement en vecteurs, souvent à l'aide d'un regroupement moyen afin de créer un seul encodage pour chaque segment. Cette approche peut entraîner une perte des dépendances contextuelles à longue distance, car les intégrations sont générées indépendamment, sans tenir compte du contexte complet du document.
Le chunking tardif adopte une approche différente. Il applique d'abord la couche de transformation du modèle d'intégration à l'ensemble du document ou à la plus grande partie possible de celui-ci, créant ainsi une séquence de représentations vectorielles pour chaque token. Cette méthode permet de saisir le contexte complet du texte dans ces intégrations au niveau des tokens.
Ensuite, un regroupement moyen est appliqué aux segments de cette séquence de vecteurs de tokens, produisant des intégrations pour chaque segment qui sont informées par le contexte global du document. Contrairement à la méthode traditionnelle, le chunking tardif génère des intégrations de chunks qui sont conditionnées les unes par les autres, préservant ainsi davantage d'informations contextuelles et résolvant les dépendances à long terme.
En appliquant le découpage en morceaux plus tard dans le processus, on s'assure que l'intégration de chaque morceau bénéficie du contexte riche fourni par l'ensemble du document, plutôt que d'être isolée. Cette approche résout le problème de la perte de contexte et améliore la qualité des intégrations utilisées pour les tâches de recherche et de génération.

Source : Günther et al., 2024
Veuillez expliquer le concept de « contextualisation » dans RAG et son impact sur les performances.
Dans le cadre du RAG, la contextualisation consiste à s'assurer que les informations récupérées sont pertinentes par rapport à la requête. En alignant les données récupérées avec la requête, le système génère des réponses plus pertinentes et de meilleure qualité.
Cela réduit les risques d'obtenir des résultats incorrects ou non pertinents et garantit que le résultat correspond aux besoins de l'utilisateur. Une approche consiste à utiliser un LLM pour vérifier si les documents récupérés sont pertinents avant de les envoyer au modèle générateur, comme le démontre le Corrective RAG (CRAG).
Comment pouvez-vous remédier aux biais potentiels dans les informations récupérées ou dans la génération du LLM ?
Tout d'abord, il est essentiel de constituer la base de connaissances de manière à filtrer les contenus biaisés, en veillant à ce que les informations soient aussi objectives que possible. Vous pouvez également rééduquer le système de recherche afin qu'il privilégie les sources équilibrées et impartiales.
Une autre mesure importante pourrait être d'adopter un agent spécifiquement chargé de vérifier les biais potentiels et de s'assurer que les résultats du modèle restent objectifs.
Veuillez discuter des défis liés à la gestion de bases de connaissances dynamiques ou en constante évolution dans le cadre du RAG.
L'un des principaux enjeux consiste à maintenir les données indexées à jour avec les informations les plus récentes, ce qui nécessite un mécanisme de mise à jour fiable. À ce titre, le contrôle de version devient essentiel pour gérer les différentes itérations d'informations et garantir la cohérence.
De plus, le modèle doit être capable de s'adapter en temps réel aux nouvelles informations sans nécessiter de réentraînement fréquent, ce qui peut être coûteux en ressources. Ces défis nécessitent des solutions sophistiquées afin de garantir que le système reste précis et pertinent à mesure que la base de connaissances évolue.
Qu'est-ce que le CAG et en quoi diffère-t-il du RAG traditionnel ? Dans quelles circonstances préférez-vous utiliser CAG plutôt que RAG en production ?
Le CAG (Cache-Augmented Generation) est une évolution du RAG dans laquelle les documents récupérés sont résumés ou compressés avant d'être transmis au LLM. Cela améliore la pertinence, réduit l'utilisation des jetons et permet d'intégrer davantage d'informations dans la fenêtre contextuelle du modèle.
La principale différence réside dans le fait que, dans le CAG, le contenu récupéré passe par une étape intermédiaire, telle qu'un résumeur ou un affineur de contexte, avant d'être transmis au générateur. En revanche, le RAG traditionnel transmet directement les documents bruts dans l'invite.
Le CAG est particulièrement utile lorsque :
-
Vous travaillez avec des ensembles de données statiques (par exemple, des catalogues de produits, des articles universitaires) qui peuvent être précompressés et mis en cache.
-
L'efficacité des jetons est essentielle (par exemple, API sensibles au coût ou inférence mobile/sur appareil).
-
Les documents récupérés sont volumineux ou contiennent des informations superflues et nécessitent une synthèse.
RAG, d'autre part, est préférable lorsque :
-
Les données sous-jacentes sont dynamiques ou fréquemment mises à jour (par exemple, tickets d'assistance en temps réel, documentation en direct).
-
Vous souhaitez intégrer les connaissances les plus récentes au moment de la requête, sans retraiter l'ensemble de la base de connaissances.
En résumé, veuillez utiliser CAG pour les domaines stables où vous pouvez optimiser le contexte à l'avance, et RAG pour les scénarios dynamiques où la fraîcheur et la récupération à la demande sont plus importantes.
Veuillez consulter cet article sur RAG versus CAG pour une comparaison plus détaillée.
Quels sont les systèmes RAG avancés ?
Il existe de nombreux systèmes RAG avancés.
L'un de ces systèmes est l'Adaptive RAG (), qui non seulement récupère des informations, mais adapte également son approche en temps réel en fonction de la requête. Le RAG adaptatif peut choisir de ne pas effectuer de recherche, d'effectuer un RAG unique ou un RAG itératif. Ce comportement dynamique rend le système RAG plus robuste et plus pertinent par rapport à la demande de l'utilisateur.
Un autre système RAG avancé est Agentic RAG, qui introduit des agents de recherche (), des outils qui déterminent s'il convient ou non d'extraire des informations d'une source. En dotant un modèle linguistique de cette capacité, il peut déterminer de manière autonome s'il a besoin d'informations supplémentaires, ce qui fluidifie le processus.
L', également appelée RAG corrective (CRAG), gagne également en popularité. Dans cette approche, le système examine les documents qu'il récupère afin d'en vérifier la pertinence. Seuls les documents jugés pertinents seront transmis au générateur. Cette étape d'autocorrection contribue à garantir l'utilisation d'informations pertinentes et précises. Pour en savoir plus, veuillez consulter ce tutoriel sur la mise en œuvre du Mise en œuvre du RAG correctif (CRAG) avec LangGraph.
L'auto-évaluation ( ) va encore plus loin en évaluant non seulement les documents récupérés, mais également les réponses finales générées, afin de s'assurer que les deux correspondent à la requête de l'utilisateur. Cela permet d'obtenir des résultats plus fiables et plus cohérents.
Comment est-il possible de réduire la latence dans un système RAG en temps réel sans compromettre la précision ?
Une approche efficace consiste à précharger les informations pertinentes et fréquemment demandées afin qu'elles soient disponibles dès que nécessaire. De plus, l'optimisation de vos algorithmes d'indexation et de requête peut considérablement améliorer la rapidité de récupération et de traitement des données.
Quelles sont les limites ou les défis des systèmes RAG ?
Bien que le RAG soit puissant, il présente plusieurs limites et défis :
-
Dépendance à l'égard de la qualité des données récupérées : La qualité d'un système RAG dépend de la qualité des informations qu'il récupère. Si le récupérateur extrait des documents non pertinents ou incorrects, la réponse du générateur en sera affectée. Garantir des sources de données fiables et de haute qualité (et affiner le moteur de recherche) constitue un défi permanent pour éviter les problèmes liés à la qualité des données d'entrée et de sortie.
-
Complexité et latence accrues : RAG introduit une étape de récupération supplémentaire en plus de la génération, ce qui rend l'ensemble du système plus complexe et plus lourd en termes de calcul qu'un LLM autonome. La recherche dans une base de connaissances volumineuse peut entraîner une latence et nécessiter d'importantes ressources informatiques. Les systèmes RAG doivent donc trouver un équilibre entre précision et efficacité.
-
Nécessité de maintenir la base de connaissances : Contrairement aux LLM statiques, le RAG dépend d'un référentiel de connaissances externe qui nécessite des mises à jour et une curation régulières. Les organisations doivent continuellement intégrer de nouvelles données, supprimer les informations obsolètes et gérer les index. Sans sources de données fiables et actualisées, un système RAG peut rapidement perdre en efficacité, voire fournir des réponses obsolètes.
-
Difficultés d'intégration et de réglage : La combinaison de la récupération et de la génération implique davantage de composants à régler et à surveiller (la base de données vectorielle, le modèle de récupération et le LLM). Le dépannage des erreurs peut s'avérer plus complexe, car les problèmes peuvent provenir du côté de la récupération ou de la génération. Cette complexité peut augmenter les efforts de développement et de maintenance par rapport à l'utilisation d'un LLM seul.
Il convient également de noter que si les données d'un domaine sont largement statiques et correspondent à la formation du modèle, un LLM finement ajusté pourrait être suffisant à la place du RAG. Cependant, le réglage fin ne dispose pas de la capacité du RAG à intégrer de nouvelles informations à la volée et peut s'avérer plus coûteux à réentraîner à chaque mise à jour des connaissances.
Questions d'entretien RAG pour les ingénieurs en intelligence artificielle
À présent, abordons quelques questions spécifiques destinées aux candidats postulant à des postes d'ingénieur en intelligence artificielle.
Obtenez une certification de haut niveau en matière d'IA
Comment évalueriez-vous et amélioreriez-vous les performances d'un système RAG dans un environnement de production ?
Tout d'abord, il est nécessaire de suivre les commentaires des utilisateurs afin d'évaluer les performances du système et sa pertinence.
Il est également recommandé de surveiller la latence afin de garantir la rapidité des réponses et d'évaluer la qualité des documents récupérés et des résultats générés. Les indicateurs clés telles que la précision des réponses, la satisfaction des utilisateurs et le débit du système sont importantes.
Afin d'améliorer les performances, il est possible de réentraîner certaines parties du système à l'aide de données mises à jour ou d'ajuster les paramètres. Vous pourriez également affiner les algorithmes de recherche afin d'améliorer la pertinence et l'efficacité, et mettre à jour régulièrement les sources de connaissances afin qu'elles restent actuelles.
Des évaluations continues des performances et des tests A/B peuvent fournir des informations utiles pour apporter des améliorations continues.
Comment garantissez-vous la fiabilité et la robustesse d'un système RAG en production, en particulier face à des défaillances potentielles ou des entrées inattendues ?
La mise en place d'un système RAG prêt pour la production nécessite de relever divers défis. Les solutions possibles pourraient inclure :
- s de redondance et de basculement: Mettre en œuvre des composants redondants ou des systèmes de sauvegarde afin de garantir la continuité des opérations en cas de défaillance.
- Gestion des erreurs et journalisation:: Mettre en œuvre des mécanismes de gestion des erreurs afin de détecter et d'enregistrer les erreurs, permettant ainsi un diagnostic et un dépannage rapides.
- s de validation et de nettoyage des entrées: Valider et assainir les entrées utilisateur afin de prévenir les vulnérabilités et les attaques potentielles telles que les les injections de prompt.
- s de surveillance et d'alerte: Mise en place de des systèmes de surveillance et d'alerte afin de détecter et de résoudre les problèmes de performance ou les menaces potentielles.
Comment concevriez-vous un système RAG pour une tâche spécifique (par exemple, réponse à des questions, résumé) ?
Pour un système de réponse aux questions, vous pouvez commencer par sélectionner un outil de recherche capable de trouver et de récupérer efficacement les documents pertinents en fonction de la requête de l'utilisateur. Il peut s'agir d'une méthode traditionnelle, telle que la recherche par mots-clés, ou d'une méthode plus avancée, telle que l'utilisation d'intégrations denses pour une meilleure récupération. Ensuite, il est nécessaire de sélectionner ou d'ajuster un générateur capable de créer des réponses précises et cohérentes à partir des documents récupérés.
En matière de synthèse, le rôle du récupérateur consiste à rassembler des informations complètes relatives au document ou au sujet traité. Le générateur, quant à lui, devrait être en mesure de synthétiser ce contenu en résumés concis et pertinents.
L'ingénierie rapide est ici essentielle. En fonction de la tâche en aval, il est nécessaire de créer des invites qui guident le modèle afin qu'il intègre les informations récupérées pour produire le résultat pertinent.
Pourriez-vous expliquer les détails techniques relatifs à l'ajustement d'un modèle LLM pour une tâche RAG ?
Cela commence par la collecte et la préparation des données spécifiques à la tâche. Il peut s'agir d'exemples annotés de paires question-réponse ou d'ensembles de données de résumé.
Vous pourriez alors utiliser des techniques telles que la modélisation linguistique augmentée par la récupération (REALM), qui aide le modèle à mieux intégrer les documents qu'il récupère dans ses réponses. Cela implique souvent de modifier l'architecture du modèle ou les méthodes d'entraînement afin d'améliorer sa gestion du contexte à partir des documents récupérés.
Vous pouvez également utiliser RAFT (Retrieval-Augmented Fine-Tuning), qui combine les atouts du RAG et du réglage fin, permettant au modèle d'acquérir à la fois des connaissances spécifiques à un domaine et la capacité de récupérer et d'utiliser efficacement des informations externes.
Comment gérez-vous les informations obsolètes ou non pertinentes dans un système RAG, en particulier dans les domaines en évolution rapide ?
Une approche consiste à mettre à jour régulièrement la base de connaissances ou l'index des documents, afin que les nouvelles informations soient intégrées dès qu'elles sont disponibles. Cela peut impliquer la mise en place de flux de travail automatisés qui récupèrent ou intègrent périodiquement le contenu mis à jour, garantissant ainsi que le récupérateur fonctionne toujours avec les données les plus récentes.
De plus, le balisage des métadonnées peut être utilisé pour signaler les informations obsolètes, ce qui permet au système de donner la priorité aux documents plus récents et pertinents lors de la recherche.
Dans les domaines en constante évolution, il est également essentiel d'intégrer des mécanismes qui filtrent ou réorganisent les résultats de recherche en fonction de leur actualité. Par exemple, accorder une plus grande importance aux articles ou documents les plus récents lors de la recherche permet de garantir que les réponses générées sont basées sur des sources actualisées.
Une autre technique consiste à utiliser des boucles de rétroaction ou des systèmes à intervention humaine, qui permettent de corriger rapidement les inexactitudes signalées et d'ajuster le système de recherche afin d'éviter de récupérer des informations obsolètes.
Comment équilibrez-vous la pertinence et la diversité des résultats dans un système RAG afin de garantir des réponses exhaustives ?
Trouver le juste équilibre entre pertinence et diversité dans un système RAG consiste à fournir des réponses précises et complètes. La pertinence garantit que les documents récupérés correspondent étroitement à la requête, tandis que la diversité assure que le système ne se concentre pas de manière trop restrictive sur une seule source ou un seul point de vue.
Une méthode pour équilibrer ces deux aspects consiste à utiliser des stratégies de reclassement qui privilégient à la fois la pertinence et la diversité. Vous pouvez également améliorer la diversité en extrayant des documents provenant de diverses sources ou sections de la base de connaissances.
Regrouper les résultats similaires et sélectionner des documents provenant de différents groupes peut également s'avérer utile.
Le réglage précis du moteur de recherche, en mettant l'accent à la fois sur la pertinence et la diversité, peut également garantir que le système récupère un ensemble complet de documents.
Comment garantissez-vous que les résultats générés par un système RAG restent cohérents avec les informations récupérées ?
Une approche clé consiste à établir un lien étroit entre la récupération et la génération via l'ingénierie des invites. Des invites soigneusement conçues qui indiquent explicitement au modèle linguistique de baser ses réponses sur les documents récupérés permettent de garantir que la génération reste fondée sur les données fournies par le récupérateur.
De plus, des techniques telles que la génération de citations, où le modèle est invité à référencer ou à justifier ses réponses à l'aide des sources récupérées, peuvent contribuer à maintenir la cohérence.
Une autre approche consiste à effectuer des vérifications ou des validations après la génération, où le résultat est comparé aux documents récupérés afin de garantir leur alignement. Ceci peut être réalisé à l'aide de mesures de similarité ou en utilisant des modèles de vérification plus petits qui valident la cohérence factuelle entre les données récupérées et le texte généré.
Dans certains cas, des méthodes d'affinement itératives peuvent être utilisées, dans lesquelles le modèle génère d'abord un résultat, puis réexamine les documents récupérés afin de vérifier et d'affiner sa réponse. Les boucles de rétroaction et les corrections apportées par les utilisateurs peuvent également être utilisées pour améliorer la cohérence au fil du temps, car le système apprend des incohérences passées et ajuste ses mécanismes de récupération et de génération en conséquence.
Comment garantissez-vous la confidentialité et la sécurité des données dans un système RAG, en particulier lorsque vous traitez des informations sensibles ?
Il est essentiel de garantir la confidentialité et la sécurité des systèmes RAG lorsque les données récupérées ou les requêtes des utilisateurs contiennent des informations sensibles ou personnelles. Les stratégies clés comprennent :
-
Suppression et anonymisation des données : Avant que les données n'entrent dans le pipeline RAG, veuillez supprimer ou masquer les informations personnelles identifiables (PII) et autres détails sensibles. Par exemple, les documents peuvent être numérisés et toute information personnelle identifiable peut être supprimée lors de l'ingestion. Cette approche « zero trust » signifie que même si les données sont récupérées, elles ne divulgueront aucune information confidentielle, car elles auront été préalablement nettoyées.
-
Stockage et transfert sécurisés des données : Veuillez utiliser le chiffrement pour les données au repos (dans les bases de données ou les magasins de vecteurs) et en transit lorsque le récupérateur communique avec le stockage. Le contrôle d'accès à la base de données vectorielle et aux sources de connaissances (avec une authentification et une autorisation appropriées) empêche tout accès non autorisé. Seules les applications ou les services fiables devraient être autorisés à consulter la base de connaissances.
-
Contrôles d'accès basés sur les rôles : Mettre en place des filtres d'accès stricts sur les résultats de recherche. Vous pouvez baliser des blocs de connaissances avec des métadonnées indiquant qui est autorisé à les consulter (par exemple, administrateur ou utilisateur) et faire en sorte que le système RAG applique ces règles lors de la récupération. Par exemple, un assistant RAG dans le domaine de la santé pourrait permettre aux médecins de récupérer des informations permettant d'identifier les patients, mais ne jamais les divulguer à d'autres utilisateurs.
-
Filtrage rapide et surveillance des sorties : Intégrez des garde-fous basés sur l'IA pour empêcher le LLM de divulguer des données privées. Des techniques telles que la défense contre les injections de prompt, l'analyse des sorties ou les politiques (telles que les directives OWASP pour les LLM) peuvent aider à détecter et à supprimer les contenus sensibles des réponses. La révision humaine peut également être utilisée dans des domaines à haut risque.
-
Conformité et audit : Veuillez vous assurer que le système RAG est conforme aux réglementations en matière de protection des données (RGPD, HIPAA, etc.) dès sa conception. Cela implique notamment de conserver des journaux d'audit indiquant quelles données ont été récupérées et à quel moment, d'obtenir le consentement approprié des utilisateurs pour l'utilisation de leurs données et de vérifier régulièrement les sources de connaissances pour les informations sensibles.
En combinant ces mesures, un système RAG peut traiter les données sensibles en toute sécurité. Lors d'un entretien, il serait souhaitable que vous mentionniez que la protection des données des utilisateurs n'est pas une simple réflexion après coup, mais qu'elle est intégrée dans la manière dont le pipeline RAG ingère, stocke, récupère et génère des informations.
Conclusion
Ce guide vous a fourni 30 questions clés pour vous aider à préparer vos discussions sur le RAG, allant des concepts de base aux systèmes RAG avancés.
Si vous souhaitez en savoir plus sur les systèmes RAG, je vous recommande les blogs suivants :
- Qu'est-ce que RAFT ? Combiner RAG et réglage fin
- Systèmes RAG avancés avec LangGraph
- RankGPT en tant qu'agent de reclassement pour RAG
- RAG avec Llama 3.1 8B, Ollama et Langchain
- Mise en œuvre du RAG correctif (CRAG) avec LangGraph
- Utilisation d'un graphe de connaissances pour mettre en œuvre une application RAG
Ryan est un data scientist de premier plan spécialisé dans la création d'applications d'IA utilisant des LLM. Il est candidat au doctorat en traitement du langage naturel et graphes de connaissances à l'Imperial College de Londres, où il a également obtenu une maîtrise en informatique. En dehors de la science des données, il rédige une lettre d'information hebdomadaire Substack, The Limitless Playbook, dans laquelle il partage une idée exploitable provenant des plus grands penseurs du monde et écrit occasionnellement sur les concepts fondamentaux de l'IA.
