Guides

Qu'est-ce que le RAG ? La génération augmentée par récupération expliquée simplement

Le RAG (génération augmentée par récupération) permet à un modèle d'IA de répondre aux questions en s'appuyant sur vos propres informations. Quand quelqu'un pose une question, votre application cherche d'abord dans vos documents les passages les plus pertinents, puis transmet ces passages au modèle avec la question. Le modèle rédige sa réponse à partir de ce texte, au lieu de se fier uniquement à ce qu'il a appris pendant l'entraînement.

Pourquoi le RAG est important quand on crée avec l'IA

Un grand modèle de langage connaît beaucoup de choses sur le monde en général, mais rien de votre entreprise : vos tarifs, vos politiques, votre manuel produit, les tickets du support de la semaine dernière. Il a aussi une date limite d'entraînement, il ne connaît donc pas les événements récents. Si vous le questionnez quand même, il peut produire une réponse assurée, plausible et fausse.

Vous disposez de trois grandes options pour y remédier :

ApprocheCe qu'elle faitIdéale pour
Tout coller dans le promptEnvoyer tous vos documents à chaque questionDe petites quantités de texte, quelques pages
RAGChercher dans vos documents et n'envoyer que les parties pertinentesDes collections plus volumineuses ou qui changent : centres d'aide, manuels, notes
Fine-tuningRéentraîner le modèle sur des exemplesLe ton, le format et les tâches répétitives, pas les faits qui évoluent

Les modèles récents acceptent de longs prompts : pour une petite FAQ, la première option suffit souvent. Le RAG se justifie quand vous avez plus de texte que vous ne voulez en envoyer à chaque fois, car chaque mot envoyé coûte de l'argent et du temps (voir comment les API de LLM facturent).

Si vous construisez une fonctionnalité du type « discuter avec notre documentation », un assistant de support ou un outil de connaissances interne, vous réalisez presque certainement une forme de RAG.

Une analogie du quotidien

Imaginez un examen à livre ouvert. Un étudiant qui doit répondre de mémoire peut se tromper ou bluffer. Un étudiant autorisé à d'abord ouvrir les bonnes pages, les lire puis répondre est bien plus fiable, à condition de trouver les bonnes pages.

  • L'étudiant, c'est le modèle de langage.
  • Le manuel, ce sont vos documents.
  • Ouvrir les bonnes pages, c'est la récupération.
  • Rédiger la réponse à partir de ces pages, c'est la génération.

Le RAG est la version à livre ouvert. Et, comme pour l'examen, la qualité de la réponse dépend beaucoup de la capacité à trouver les bonnes pages.

Fonctionnement du RAG, étape par étape

Une mise en place typique du RAG comporte deux phases.

Préparer vos documents (à l'avance) :

  1. Collecter les sources : articles d'aide, PDF, politiques, données produits.
  2. Découper : scinder les longs documents en morceaux plus petits, souvent de quelques paragraphes, pour que la recherche ne renvoie que la partie utile.
  3. Vectoriser chaque morceau : l'envoyer à un modèle d'embeddings, qui transforme le texte en embedding, une longue liste de nombres qui capture son sens. Des textes parlant de sujets proches obtiennent des nombres proches.
  4. Stocker les morceaux et leurs embeddings dans une base capable de chercher par similarité (souvent appelée base vectorielle ou index vectoriel).

Répondre à une question (à chaque fois) :

  1. Vectoriser la question avec le même modèle d'embeddings.
  2. Récupérer les morceaux dont les embeddings sont les plus proches de celui de la question, par exemple les cinq premiers.
  3. Construire le prompt : les instructions, les morceaux récupérés et la question.
  4. Générer : le modèle de langage rédige une réponse fondée sur ces morceaux, idéalement en indiquant lesquels il a utilisés.

C'est la recherche par sens qui rend l'ensemble efficace : une question sur « me faire rembourser » peut trouver un morceau intitulé « Politique de remboursement », alors qu'ils n'ont aucun mot en commun.

Un exemple concret : l'assistant d'aide d'une salle de sport

Imaginons une salle de sport qui possède 40 articles d'aide et veut un assistant de chat sur son site. Un membre demande : « Puis-je suspendre mon abonnement pendant que je voyage ? »

L'application vectorise la question et récupère les trois morceaux les plus proches. L'un d'eux dit :

Gel d'abonnement : les membres ayant un abonnement mensuel peuvent
geler leur abonnement jusqu'à 2 mois par an. Faites la demande à
l'accueil ou dans l'application au moins 7 jours avant le début du gel.

Le prompt envoyé au modèle ressemble alors à ceci :

Tu es l'assistant d'aide de Northside Gym.
Réponds uniquement à partir des sources ci-dessous. Si la réponse
n'y figure pas, dis que tu ne sais pas et propose de contacter l'accueil.
Indique quelle source tu as utilisée.

[Source 1 : Gel d'abonnement] Les membres ayant un abonnement mensuel peuvent geler...
[Source 2 : Résilier son abonnement] ...
[Source 3 : Invitations] ...

Question : Puis-je suspendre mon abonnement pendant que je voyage ?

Et le modèle répond : « Oui, avec un abonnement mensuel, vous pouvez geler votre abonnement jusqu'à deux mois par an. Faites la demande à l'accueil ou dans l'application au moins 7 jours avant (source : Gel d'abonnement). »

La salle n'a rien réentraîné. Quand elle modifie la politique de gel, elle met à jour l'article, l'application revectorise ce morceau, et la réponse suivante en tient compte.

Termes clés

TermeSignification
LLMGrand modèle de langage, l'IA qui rédige la réponse. Voir qu'est-ce qu'un LLM.
EmbeddingUne liste de nombres représentant le sens d'un texte.
Modèle d'embeddingsUn modèle qui produit des embeddings. Généralement distinct du modèle de chat, et bien moins coûteux.
Morceau (chunk)Une partie d'un document, dimensionnée pour pouvoir être récupérée seule.
Base vectorielle / recherche vectorielleUn stockage qui retrouve les éléments aux embeddings similaires. Certaines bases classiques le proposent aussi, Postgres par exemple, avec l'extension pgvector.
Top-kLe nombre de morceaux récupérés par question.
Recherche hybrideCombiner la recherche par sens et la recherche classique par mots-clés, utile pour les termes exacts comme les références produits.
Fenêtre de contexteLa quantité maximale de texte qu'un modèle peut traiter dans une seule requête.
Ancrage / citationsRelier la réponse à des sources précises récupérées, et les afficher.

Idées reçues courantes

  • « Le RAG entraîne le modèle sur mes données. » Non. Le modèle ne change pas ; il lit simplement du texte supplémentaire au moment de la question.
  • « Le RAG supprime les hallucinations. » Il en réduit le nombre. Si la recherche manque le bon morceau, ou si la réponse ne figure pas dans vos documents, le modèle peut encore deviner. Demandez-lui de répondre « je ne sais pas » et testez avec des questions dont vous connaissez la réponse.
  • « Il me faut une base vectorielle spécifique. » Souvent non. Pour des volumes modestes, une extension vectorielle sur la base que vous utilisez déjà, ou même une simple recherche par mots-clés, peut suffire.
  • « Les gros morceaux sont meilleurs. » Trop gros, et vous envoyez beaucoup de texte hors sujet (plus de coût, plus de confusion) ; trop petits, et un morceau perd le contexte qui lui donne du sens. Prévoyez des ajustements.
  • « Il suffit de tout téléverser. » Des documents obsolètes, dupliqués ou contradictoires donnent des réponses contradictoires. Nettoyer les sources est souvent l'amélioration la plus importante.
  • « N'importe qui peut voir n'importe quel document. » Seulement si vous le construisez ainsi. Si certains documents sont privés pour certains utilisateurs, la recherche elle-même doit filtrer selon la personne qui interroge ; sinon, l'assistant peut citer les données d'un client à un autre.

Le coût

Une fonctionnalité RAG comporte généralement trois coûts récurrents : la vectorisation de vos documents (faible, et surtout ponctuelle), la vectorisation de chaque question (très faible) et l'appel au modèle de langage (le coût principal, qui augmente avec le nombre de morceaux envoyés). À cela s'ajoute le stockage dans votre base de données. Votre fournisseur d'IA facture ces coûts sur votre propre compte : définissez-y une limite de dépenses.

Quoi demander à votre générateur d'applications IA

  • « Avant de construire un RAG, vérifie : notre contenu est-il assez petit pour être simplement inclus dans le prompt ? »
  • « Découpe les articles d'aide en morceaux de quelques paragraphes, conserve pour chaque morceau son titre et le lien source, et stocke les embeddings dans notre base de données. »
  • « Utilise une recherche hybride, par sens et par mots-clés, pour que les références produits correspondent toujours. »
  • « Demande au modèle de répondre uniquement à partir des sources récupérées, de dire quand il ne sait pas, et d'afficher les sources sous chaque réponse. »
  • « Ne recherche que les documents que l'utilisateur connecté a le droit de voir. »
  • « Revectorise automatiquement un document dès qu'il est modifié. »
  • « Garde la clé du fournisseur d'IA côté serveur, dans un secret, jamais dans le navigateur. »
  • « Journalise chaque question, les morceaux récupérés et la réponse, pour que je puisse examiner les mauvaises réponses. »

Le RAG dans Mythex

Mythex ne propose pas de produit de base de connaissances ou de RAG prêt à l'emploi. Ce qu'il fait, c'est écrire le code de ce type de fonctionnalité dans votre application : vous apportez vos documents et votre propre clé de fournisseur d'IA, stockée comme secret de projet, et l'agent construit la partie recherche et chat, en utilisant la base de données Postgres du projet pour le stockage. L'usage du fournisseur est facturé sur votre compte chez lui, et non en crédits Mythex. La documentation suggère de commencer par une fonctionnalité d'IA simple, puis d'ajouter le RAG une fois celle-ci opérationnelle : voir créer une application d'IA, ainsi que nos guides sur la création d'une application de chatbot IA et l'ajout de fonctionnalités d'IA.

Questions

Qu'est-ce que le RAG, en termes simples ?

Le RAG (génération augmentée par récupération) est une méthode pour qu'un modèle d'IA réponde à partir de vos propres informations. Avant que le modèle ne réponde, votre application cherche dans vos documents les passages les plus pertinents pour la question et les ajoute au prompt. La réponse s'appuie alors sur ce texte, et pas seulement sur ce que le modèle a appris pendant son entraînement.

Le RAG entraîne-t-il l'IA sur mes données ?

Non. Le RAG ne modifie pas du tout le modèle. Il recherche le texte pertinent au moment où la question est posée, puis le transmet au modèle avec la question. Si vous mettez un document à jour, la réponse suivante peut utiliser immédiatement la nouvelle version.

Le RAG, est-ce la même chose que le fine-tuning ?

Non. Le fine-tuning modifie le comportement d'un modèle en le réentraînant sur des exemples. C'est plus lent, et c'est plus adapté au style ou au format. Le RAG fournit au modèle des faits à lire au moment de la question, ce qui convient mieux aux connaissances qui évoluent ou qui doivent être citées avec exactitude.

Le RAG supprime-t-il les hallucinations de l'IA ?

Il les réduit sans les éliminer. Si la recherche trouve de mauvais passages, ou si la réponse ne figure pas dans vos documents, le modèle peut encore deviner. Les bonnes applications RAG demandent au modèle de dire quand il ne sait pas et affichent les sources utilisées.

Mythex · Pricing · Créez tout avec l'IA · Modèles de sites et d'applications · Mythex comparé · Glossaire de la création d'applications avec l'IA · Outils gratuits pour créer des applications avec l'IA · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)