Prochain webinaire : La sécurité d'entreprise pour Claude Code | 21 avril · 11 h PST. Inscrivez-vous ici →

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

Par TrueFoundry

Mis à jour : May 22, 2024

Résumez avec

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 :


!pip install transformers
!pip install datasets

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.


from transformers import RagTokenForGeneration, DPRQuestionEncoder
question_encoder = DPRQuestionEncoder.from_pretrained('facebook/dpr-question_encoder-single-nq-base')
rag_token = RagTokenForGeneration.from_pretrained('facebook/rag-token-nq')

3. Initialiser RAG: Combinez l'encodeur de questions avec RAG à l'aide de l'encodeur de contexte DPR et d'un générateur.


from transformers import DPRContextEncoder, DPRContextEncoderTokenizer, RagTokenizer, RagRetriever


context_encoder = DPRContextEncoder.from_pretrained('facebook/dpr-ctx_encoder-single-nq-base')
context_tokenizer = DPRContextEncoderTokenizer.from_pretrained('facebook/dpr-ctx_encoder-single-nq-base')
question_encoder_tokenizer = DPRContextEncoderTokenizer.from_pretrained('facebook/dpr-question_encoder-single-nq-base')
rag_tokenizer = RagTokenizer.from_pretrained('facebook/rag-token-nq', retriever=rag_retriever)


rag_retriever = RagRetriever(
    rag_tokenizer.question_encoder_tokenizer,
    rag_tokenizer.generator_tokenizer,
    'datasets/wikipedia/20200501.en',
    index_name="compressed",
    passages_path='my_knowledge_dataset'
)

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


def ask_question(question):
    inputs = rag_tokenizer(question, return_tensors="pt")
    with torch.no_grad():
        outputs = rag_token.generate(inputs['input_ids'])
    return rag_tokenizer.batch_decode(outputs, skip_special_tokens=True)


# Example query
print(ask_question("What is the capital of France?"))

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 :

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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.

Le moyen le plus rapide de créer, de gérer et de faire évoluer votre IA

INSCRIVEZ-VOUS
Table des matières

Gouvernez, déployez et suivez l'IA dans votre propre infrastructure

Réservez un séjour de 30 minutes avec notre Expert en IA

Réservez une démo

Le moyen le plus rapide de créer, de gérer et de faire évoluer votre IA

Démo du livre

Découvrez-en plus

May 23, 2024
|
5 min de lecture

Que sont les intégrations vectorielles ? — Un guide complet 2024

May 22, 2024
|
5 min de lecture

Qu'est-ce que l'indexation vectorielle ? - Un guide complet 2024

May 22, 2024
|
5 min de lecture

LLM Embeddings 101 : un guide complet 2024

 Best AI Gateways in 2026
April 22, 2026
|
5 min de lecture

5 meilleures passerelles IA en 2026

comparaison
April 22, 2026
|
5 min de lecture

Intégration de Cline avec TrueFoundry AI Gateway

Outils LLM
Detailed Guide to What is an AI Gateway?
April 22, 2026
|
5 min de lecture

Qu'est-ce qu'AI Gateway ? Concepts de base et guide

Aucun article n'a été trouvé.
April 22, 2026
|
5 min de lecture

LLM Embeddings 101 : un guide complet 2024

Terminologie LLM
Aucun article n'a été trouvé.

Blogs récents

Faites un rapide tour d'horizon des produits
Commencer la visite guidée du produit
Visite guidée du produit