Un guide complet sur la récupération Augmented Generation 2024

Conçu pour la vitesse : latence d'environ 10 ms, même en cas de charge
Une méthode incroyablement rapide pour créer, suivre et déployer vos modèles !
- Gère plus de 350 RPS sur un seul processeur virtuel, aucun réglage n'est nécessaire
- Prêt pour la production avec un support complet pour les entreprises
Imaginez que vous demandiez à une IA : »Quel temps fait-il actuellement à Bangalore? » et il répond : »Je ne peux pas fournir d'informations en temps réel.« Il s'agit d'une limitation typique de nombreux modèles linguistiques qui s'appuient uniquement sur des données pré-entraînées, ne permettant pas de récupérer et d'utiliser des informations en temps réel. Voici le concept de génération retrieval-augmentée, une approche révolutionnaire en matière d'intelligence artificielle (IA) et de traitement du langage naturel (NLP). Il fournit une méthode permettant aux machines de rester à jour et de fournir des réponses à des requêtes complexes.

Ceci est un exemple de réponse de GPT-3.5
La génération augmentée par extraction (RAG) comble cette lacune en combinant les puissantes capacités génératives de modèles tels que le GPT (Generative Pre-trained Transformer) avec la récupération dynamique de données externes. RAG permet à l'IA d'accéder à des informations actualisées provenant de diverses sources en temps réel, ce qui les rend non seulement plus informatives mais également plus précises.
Par exemple, un système amélioré par RAG récupérerait d'abord les données météorologiques les plus récentes auprès d'une source fiable lorsqu'on lui poserait des questions sur la météo, puis utiliserait ces informations pour générer une réponse actuelle et contextuelle précise. Cette capacité à augmenter la génération grâce à une récupération rapide transforme la façon dont les IA interagissent avec les utilisateurs, en fournissant des réponses qui sont non seulement plausibles, mais aussi factuellement correctes et riches en contexte.
Cette fusion dynamique de récupération et de génération ouvre de nouvelles possibilités pour les applications d'IA, qu'il s'agisse de robots de service client améliorés, de systèmes de recherche d'informations sophistiqués ou d'outils plus réactifs et interactifs pour l'analyse des données et la prise de décision.
La génération retrieval-augmentée (RAG) a notamment été introduite par une équipe de Facebook AI Research (FAIR) dans son article de 2020. Le procédé combinait la récupération de documents relatifs à une requête avec un modèle génératif afin d'améliorer le processus de génération. Cette avancée a des implications importantes dans divers domaines, en particulier dans le traitement du langage naturel (NLP).
Dans le domaine de la PNL, le RAG a transformé la façon dont les modèles gèrent les tâches nécessitant un raisonnement complexe et un accès à des connaissances externes, telles que la réponse à des questions et la recherche d'informations. En tirant parti à la fois d'un composant de récupération pour récupérer les informations pertinentes et d'un composant génératif pour synthétiser ces informations en réponses cohérentes, les modèles RAG ont pu fournir des résultats plus précis et enrichis en contexte.
Au-delà de la PNL, RAG trouve également des applications dans des domaines tels que le support client, où il peut fournir des réponses dynamiques et basées sur les connaissances, et dans la génération de contenu, où il peut produire un contenu plus informatif et plus précis en accédant à des informations actualisées.
Composants de base de RAG
Retrievers
Les récupérateurs jouent un rôle crucial dans l'architecture RAG, car ils constituent le composant responsable de la récupération des informations pertinentes à partir d'un ensemble de données ou d'une base de connaissances. Leur fonction principale est d'améliorer la capacité de l'IA à accéder et à utiliser des informations externes mises à jour qui ne sont pas stockées de manière inhérente dans le modèle lui-même. Il existe deux principaux types de retrievers :
Sparse Retrievers: Elles s'appuient sur des méthodes basées sur des mots clés telles que TF-IDF ou BM25 pour récupérer les documents pertinents. Ils sont efficaces pour un large éventail d'ensembles de données et nécessitent moins de calculs.
Dense Retrievers: ils utilisent des techniques d'apprentissage en profondeur pour comprendre et récupérer des documents en fonction de la similitude sémantique plutôt que de la correspondance de mots clés. Ils sont particulièrement utiles pour traiter des requêtes complexes qui nécessitent la compréhension de significations nuancées.
Des plateformes comme OpenAI et Hugging Face fournissent des outils et des API qui prennent en charge l'intégration de ces techniques de récupération dans diverses applications, permettant ainsi des capacités de récupération d'informations plus sophistiquées.
Générateurs
Les générateurs du framework RAG convertissent les données récupérées en un texte cohérent semblable à un humain. Une fois les informations pertinentes récupérées, elles sont traitées et intégrées dans un modèle génératif, généralement un grand modèle de langage tel que GPT ou BERT. Le composant génératif utilise ces informations pour produire des réponses qui sont non seulement pertinentes du point de vue du contexte, mais qui reflètent également les nuances et les spécificités de la requête d'entrée. Cette synthèse permet d'obtenir des résultats riches en informations, précis et adaptés à la demande de l'utilisateur, améliorant ainsi considérablement la qualité de l'interaction par rapport aux modèles traditionnels qui génèrent des réponses basées uniquement sur des données pré-apprises.
Ensemble, ces composants constituent l'épine dorsale du système RAG, lui permettant d'effectuer des tâches nécessitant à la fois la récupération de données en temps réel et la génération de texte sophistiquée, comblant ainsi le fossé entre les modèles d'IA statiques et les applications dynamiques du monde réel.
Fonctionnement de RAG Systems

Une instance représentative du processus RAG appliqué à la réponse aux questions ( https://arxiv.org/pdf/2312.10997 )
Étape 1 : saisie de la requête
L'utilisateur saisit une requête dans le système.
Étape 2 : Indexation
Les documents sont prétraités et divisés en morceaux.
Ces segments sont ensuite codés en vecteurs et stockés dans une base de données vectorielle pour une récupération rapide.
Étape 3 : Récupération
Le système extrait les k premiers morceaux les plus pertinents pour la requête de l'utilisateur en fonction de la similitude sémantique. Cela se fait en comparant la représentation vectorielle de la requête avec les vecteurs du document.
Étape 4 : Combinaison de contextes
Les segments récupérés sont combinés à la requête d'origine pour former une entrée riche en contexte.
Étape 5 : Génération
Cette entrée enrichie est introduite dans un modèle de langage large (LLM).
Le LLM génère une réponse en intégrant les informations récupérées et les connaissances internes codées dans le modèle.
Étape 6 : Livraison de la sortie
La réponse générée est transmise à l'utilisateur, fournissant idéalement une réponse complète et contextuellement pertinente à la requête.
RAG naïf, RAG avancé et RAG modulaire
1. Chiffon naïf
Naive RAG traite systématiquement les documents en les indexant, en les incorporant et en les stockant sous forme de vecteurs pour la récupération. Lorsqu'une requête est saisie, elle est transformée en vecteur à l'aide du même modèle et comparée à la base de données pour récupérer les segments pertinents. Elles sont ensuite intégrées à la question de l'utilisateur pour générer une réponse. Ce processus garantit que la réponse est basée sur les données, minimisant ainsi le risque de générer du contenu non pertinent ou inexact en tirant parti des connaissances indexées spécifiques au domaine.
2. RAG avancé
Advanced RAG améliore le RAG naïf en corrigeant l'alignement sémantique entre les requêtes et les documents. Cela inclut l'optimisation de l'indexation des données en améliorant la qualité et la structuration des données, en utilisant des méthodes de récupération sophistiquées telles que le réglage fin des modèles d'intégration avec des données spécifiques à un domaine et l'utilisation de métriques de similarité avancées. Les stratégies de post-extraction, telles que le reclassement et la compression rapide, améliorent la qualité du contexte, garantissant que le modèle linguistique génère les réponses les plus pertinentes et les plus précises.
3. RAG modulaire
Le RAG modulaire intègre diverses stratégies avancées pour améliorer le processus de génération augmenté par extraction. Il intègre des modules de recherche supplémentaires qui extraient des données de diverses sources et utilise un module de mémoire pour utiliser des paires requête-réponse historiques. Les techniques de fusion avancées pour les recherches vectorielles parallèles et le reclassement intelligent optimisent les résultats de la recherche, tandis que les mécanismes de routage adaptent la réponse du système à des types de requêtes spécifiques, améliorant ainsi à la fois la pertinence et la précision.

Mise en œuvre du RAG
Ce code met en place une implémentation RAG de base dans laquelle le système récupère les informations relatives à la question saisie et génère des réponses. Vous devrez adapter les chemins et éventuellement personnaliser les composants en fonction de votre cas d'utilisation et de vos données spécifiques.
1. Installation des bibliothèques requises: Vous devez d'abord installer les bibliothèques Python nécessaires. Vous pouvez le faire via pip :
2. Chargez un modèle RAG préentraîné : Importez et chargez le modèle RAG depuis la bibliothèque Transformers. Ici, nous allons utiliser RAG Token pour Generation et Encodeur de questions DPR pour l'encodage des questions.
3. Initialiser RAG: Combinez l'encodeur de questions avec RAG à l'aide de l'encodeur de contexte DPR et d'un générateur.
4. Générez des réponses: créez une fonction pour transmettre des questions au modèle et générer des réponses
Application du système RAG
La génération augmentée par extraction (RAG) améliore de manière significative divers secteurs en intégrant des données actualisées aux réponses générées par l'IA. Voici une exploration détaillée de ses applications :
Soins de santé: RAG améliore la prise de décisions en matière de soins de santé en accédant aux dernières recherches et directives médicales. Il facilite les outils de diagnostic en offrant des conseils médicaux plus précis et plus actuels, améliorant ainsi la qualité des soins aux patients.
Finances: Dans le domaine de la finance, RAG analyse les données de marché et les rapports financiers actuels, fournissant des conseils personnalisés et des évaluations des risques. Cela permet une planification financière et des stratégies d'investissement plus précises en incorporant des informations économiques en temps réel.
Service à la clientèle: RAG améliore la précision du support client en récupérant les informations mises à jour sur les produits et les données des utilisateurs, en réduisant les erreurs de réponse et en améliorant la qualité des interactions avec les clients.
Génération de contenu: Au-delà des applications de routine, RAG excelle dans la génération de contenu pour les e-mails, les publications sur les réseaux sociaux et même la rédaction technique, en garantissant que le contenu est non seulement grammaticalement correct mais enrichi contextuellement.
Outils pédagogiques: En transformant l'enseignement, RAG propose des expériences d'apprentissage personnalisées en générant du contenu et des explications personnalisés, améliorant ainsi l'engagement et l'efficacité de l'enseignement.
Juridique et recherche: RAG rationalise la recherche juridique et la rédaction de documents. En récupérant des précédents juridiques et de la littérature pertinents, il contribue à la préparation de documents et d'analyses juridiques plus éclairés.
Systèmes de recommandation: Sur les plateformes de médias numériques, RAG améliore les moteurs de recommandation de contenu en comprenant les préférences des utilisateurs et en générant des suggestions de contenu personnalisées, améliorant ainsi l'engagement et la satisfaction.
Points de défaillance des systèmes RAG
Malgré les avancées apportées par les systèmes de génération retrieval-augmentée (RAG) dans les applications d'IA, ils rencontrent plusieurs défis. Voici quelques points de défaillance des systèmes RAG :
- Lacunes dans le contenu: Les systèmes RAG peuvent tomber en panne lorsque les informations requises sont absentes des sources de données auxquelles ils ont accès. Si le système ne trouve pas d'informations pertinentes, il peut générer par défaut une réponse générique ou non contraignante, ou pire encore, faire des inférences incorrectes.
- Problèmes de classement et de récupération: Même si des documents pertinents sont présents, ils peuvent ne pas être classés suffisamment haut pour être sélectionnés pour la génération de réponses. Cela peut amener le système RAG à ignorer des informations cruciales, ce qui compromet la qualité de la sortie.
- Désalignement contextuel: Parfois, les documents nécessaires sont récupérés mais ne sont pas intégrés efficacement dans le contexte pour générer des réponses. Cela conduit à des réponses hors contexte ou incomplètes, ce qui réduit la fiabilité du système.
- Pannes d'extraction: Dans certains cas, la bonne réponse se trouve dans le contexte fourni au modèle génératif, mais le modèle ne parvient pas à extraire et à utiliser correctement ces informations. Cela peut être dû à la complexité de la requête ou à des contradictions dans les données d'entrée.
- Formatage incorrect: les systèmes RAG peuvent avoir des difficultés à générer des réponses dans le format spécifique demandé par l'utilisateur, tel que des listes ou des tableaux, ce qui peut affecter la facilité d'utilisation de la sortie.
- Spécificité inadéquate: les réponses générées peuvent ne pas répondre de manière adéquate aux besoins de l'utilisateur, soit parce qu'elles sont trop vagues, soit trop détaillées. Cela provient souvent d'un décalage entre les attentes de l'utilisateur et les résultats du système.
- Réponses incomplètes: Même lorsque des informations partiellement correctes sont fournies, le système peut ne pas fournir de réponse complète, omettant ainsi certains détails essentiels pour répondre pleinement à la requête de l'utilisateur.
Conclusion
Alors que nous nous tournons vers l'avenir, le potentiel de la génération augmentée par extraction (RAG) pour révolutionner les technologies pilotées par les données continue de croître. Les avancées prévues en matière d'IA et d'apprentissage automatique pourraient introduire de nouvelles fonctionnalités et capacités sophistiquées dans les systèmes RAG, améliorant potentiellement leur efficacité et leur portée. Nous pouvons constater des améliorations permettant une intégration plus fluide avec les sources de données en temps réel, une gestion plus robuste des requêtes complexes et une précision encore plus grande du contenu généré. L'horizon est prometteur et promet de combler davantage le fossé entre les bases de connaissances statiques et les applications dynamiques du monde réel, faisant de RAG une technologie fondamentale pour les futurs systèmes d'IA.
TrueFoundry AI Gateway offre une latence d'environ 3 à 4 ms, gère plus de 350 RPS sur 1 processeur virtuel, évolue horizontalement facilement et est prête pour la production, tandis que LiteLM souffre d'une latence élevée, peine à dépasser un RPS modéré, ne dispose pas d'une mise à l'échelle intégrée et convient parfaitement aux charges de travail légères ou aux prototypes.
Le moyen le plus rapide de créer, de gérer et de faire évoluer votre IA














.webp)


.png)


.webp)




.webp)







