Introduction au RAG

Jérémy Martin
August 16, 2024
IA

Introduction

Le RAG est la méthode la plus rentable, facile à mettre en œuvre et la moins risquée pour améliorer les performances des applications d'intelligence artificielle générative (GenAI). La recherche sémantique et la génération augmentée par la récupération (Retrieval Augmented Generation) offrent des réponses GenAI plus pertinentes, ce qui se traduit par une expérience utilisateur supérieure. Contrairement à la création de votre propre modèle de base, au réglage fin d'un modèle existant, ou à l'ingénierie des prompts, RAG aborde simultanément les problèmes de récence et de contexte de manière rentable et avec moins de risques que les approches alternatives.

Son objectif principal est de fournir des réponses détaillées et sensibles au contexte à des questions nécessitant un accès à des données privées pour répondre correctement.

Contexte

Définition

Le Retrieval-Augmented Generation (RAG) est une approche hybride en intelligence artificielle qui combine deux méthodes puissantes : la récupération d'information pretrained dense retrieval (DPR) et la génération de texte appelée (Seq2Seq). Le concept de RAG émerge de la nécessité de générer des réponses non seulement en se basant sur un corpus pré-entrainé, mais également en intégrant des informations actuelles et spécifiques à la requête à partir de bases de données externes.

Le RAG est une avancée significative dans le domaine de la génération de texte, en intégrant des éléments de recherche et de récupération d'informations pour produire des réponses plus pertinentes et contextuellement appropriées. Cette approche s'avère particulièrement utile dans les domaines où l'accès à des informations actualisées est crucial.

L'intégration des composants dans l'architecture RAG permet de combiner la force de la récupération d'informations et la génération de texte. Cela permet au modèle de répondre à des requêtes complexes en accédant à des données actualisées et pertinentes, tout en conservant la capacité de produire un texte fluide et contextuellement approprié.

Cette architecture est particulièrement utile dans des applications où la précision des informations est cruciale, comme dans les systèmes de réponse automatique ou les assistants virtuels, où l'accès à des données externes en temps réel peut faire une différence significative dans la qualité des réponses fournies.

Avantages du RAG par rapport au LLM seul

Voici les avantages de mettre en place un système de RAG :

Tour de vue du RAG

Origines et Développements

Le concept de Retrieval-Augmented Generation (RAG) est né de la nécessité de combler les lacunes des modèles de langage traditionnels, tels que GPT, qui étaient limités par les données statiques sur lesquelles ils avaient été entraînés. L'idée de combiner la génération de texte avec la récupération d'informations extérieures a été motivée par le besoin de fournir des réponses plus pertinentes, contextuelles et à jour. Ce modèle permet d'intégrer des connaissances externes en temps réel, ce qui n'est pas possible avec les seuls modèles de langage pré-entraînés. Le papier de recherche originel date de 2020 "Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks" par Lewis et Al.

L'architecture RAG a été introduite pour pallier ces limitations en intégrant un module de récupération d'informations qui peut interagir avec des bases de données ou des documents externes. Cela permet au modèle de langage de générer des réponses non seulement en fonction des données sur lesquelles il a été formé, mais aussi en tenant compte des informations récupérées en temps réel.

Par exemple, si les documents \( D_1 \), \( D_2 \) et \( D_3 \) ont été récupérés avec des scores de 0.89, 0.76, et 0.82 respectivement, le module de génération utilisera ces documents comme contexte, pondérant leur influence selon leur pertinence. La réponse finale pourrait être formulée en intégrant les informations clés de chacun des documents, résultant en une réponse informée et adaptée à la requête initiale.

Intégration des Composants

L'intégration des composants dans l'architecture RAG (Retrieval-Augmented Generation) repose sur l'interaction entre le module de récupération et le module de génération. Cette interaction se fait par un mécanisme d'attention croisée qui permet au générateur de s'appuyer sur les informations récupérées pour produire une réponse cohérente et pertinente.

Un mécanisme d'attention croisée permet au générateur de se focaliser sur les parties les plus pertinentes des passages récupérés. Ce mécanisme fonctionne en calculant des scores d'attention entre les vecteurs de la requête et les vecteurs des passages récupérés. Les passages avec les scores d'attention les plus élevés ont une influence plus grande sur la réponse générée.

L'étape de Récupération

L'étape de récupération est une composante essentielle dans le fonctionnement du Retrieval-Augmented Generation (RAG). Elle permet de sélectionner les informations pertinentes à partir d'une vaste base de données, qui seront ensuite utilisées pour enrichir la génération de texte. Ce processus se divise en plusieurs phases clés : le prétraitement des données, la recherche des documents pertinents, et la génération des représentations vectorielles des requêtes. Avant de pouvoir effectuer une récupération efficace, il est nécessaire de préparer les données sous une forme qui facilite la recherche. Le prétraitement des données inclut l'indexation des documents. Cette étape implique de convertir chaque document en une représentation vectorielle, souvent à l'aide de techniques comme TF-IDF (Term Frequency-Inverse Document Frequency) ou des modèles plus sophistiqués basés sur des réseaux de neurones. Ces représentations vectorielles permettent de mesurer la similarité entre les requêtes et les documents de manière efficace.

L'une des premières étapes du prétraitement consiste à indexer les documents. Cette étape implique de structurer les documents en unités plus petites, comme des passages ou des phrases, qui peuvent être efficacement recherchés. Un algorithme d'indexation, tel que TF-IDF (Term Frequency-Inverse Document Frequency), est couramment utilisé pour attribuer des poids aux termes en fonction de leur fréquence dans un document par rapport à leur fréquence dans l'ensemble du corpus. Ce processus permet de créer une base de données où chaque passage est représenté par un vecteur de caractéristiques. Une fois les données prétraitées, le système de RAG utilise un module de recherche pour identifier les documents les plus pertinents en réponse à une requête donnée. Ce processus commence par la création d'une représentation vectorielle de la requête, qui est ensuite comparée aux vecteurs des documents dans la base de données.

La recherche se fait généralement en calculant la similarité cosinus entre la représentation de la requête et celles des documents. Plus la valeur de cette similarité est élevée, plus le document est pertinent.

Évaluation de la Récupération

L'efficacité de la récupération est généralement évaluée à l'aide de différentes métriques comme le rappel, la précision ou le score F1. Ces métriques permettent de mesurer la performance du module de récupération et d'apporter des ajustements pour améliorer la pertinence des documents récupérés. L'étape de récupération dans le RAG est cruciale pour le succès du modèle, car elle détermine la qualité et la pertinence des informations qui seront ensuite utilisées pour la génération de texte. Une récupération efficace et bien calibrée améliore significativement la précision des réponses générées par le système.

Fusion et Sélection des Résultats

Après avoir calculé les similarités pour un ensemble de documents, le système sélectionne les documents les plus pertinents pour les utiliser dans l'étape de génération de texte. Ces documents peuvent être fusionnés, pondérés en fonction de leur pertinence, ou encore combinés de manière hiérarchique pour fournir au générateur le contexte le plus riche possible.+

En conclusion, la génération augmentée par récupération (RAG) se démarque comme la méthode la plus rentable, facile à mettre en œuvre et à faible risque pour améliorer les performances des applications d'IA générative. En combinant la recherche sémantique et la génération basée sur la récupération, RAG assure des réponses plus pertinentes, offrant ainsi une expérience utilisateur supérieure. Contrairement à la création d'un modèle sur mesure, au réglage fin d'un modèle existant ou à l'ingénierie des prompts, RAG traite simultanément les problèmes de récence et de contexte de manière efficace. Son objectif principal est de fournir des réponses détaillées et sensibles au contexte, en particulier pour les requêtes nécessitant un accès à des données privées et à jour. L'intégration des mécanismes de récupération dans les modèles génératifs permet d'améliorer la précision, faisant de RAG une approche inestimable pour les applications où l'information précise et actuelle est cruciale, comme les assistants virtuels ou les systèmes de réponse automatisés.

Écrit par
Jérémy Martin
Research Director