Aller au contenu principal

Introduction a la Generation Augmentee par Recuperation (RAG)

La RAG (Retrieval Augmented Generation) est une technique qui permet de travailler avec des documents volumineux, trop grands pour tenir dans un seul prompt. Au lieu de tout envoyer d’un coup, on decoupe les documents en morceaux et on ne fournit au modele que les passages les plus pertinents pour repondre a une question.

Le probleme des documents volumineux

Imaginons un rapport financier de 800 pages. Vous voulez poser des questions precises a Claude, par exemple : “Quels sont les facteurs de risque de cette entreprise ?” Il faut transmettre l’information pertinente au modele, mais la quantite de texte utilisable dans un prompt est limitee.

Option 1 : tout mettre dans le prompt

L’approche la plus naive consiste a extraire tout le texte du document et a l’inserer dans le prompt avec la question :

Reponds a la question de l'utilisateur sur le document financier.

<user_question>
{user_question}
</user_question>

<financial_document>
{financial_document}
</financial_document>

Cette approche pose plusieurs problemes :

  • Il existe une limite stricte sur la longueur du prompt — le document peut etre trop long
  • Claude devient moins performant avec des prompts tres longs
  • Les prompts volumineux coutent plus cher a traiter
  • Les prompts volumineux sont plus lents a traiter

Option 2 : decouper le document en morceaux (RAG)

La RAG adopte une approche plus intelligente. D’abord, on decoupe le document en chunks (morceaux) lors d’une etape de preprocessing. Ensuite, quand un utilisateur pose une question, on cherche les chunks les plus pertinents et on n’insere que ceux-la dans le prompt.

Par exemple, si quelqu’un demande “Quels risques cette entreprise encourt-elle ?”, on parcourt les chunks, on identifie la section “Facteurs de risque”, et on ne fournit que ce passage dans le prompt.

Avantages de la RAG

  • Claude peut se concentrer uniquement sur le contenu pertinent
  • Fonctionne avec des documents tres volumineux
  • S’adapte a des collections de documents multiples
  • Des prompts plus courts = moins cher et plus rapide

Defis de la RAG

  • Necessite une etape de preprocessing pour decouper les documents
  • Il faut un mecanisme de recherche pour trouver les chunks pertinents
  • Les chunks inclus peuvent ne pas contenir tout le contexte dont Claude a besoin
  • Il existe de nombreuses strategies de decoupage — laquelle choisir ?

Par exemple, on peut decouper les documents en portions de taille egale, ou bien creer des chunks bases sur la structure du document (titres, sections). Chaque approche a ses compromis selon le cas d’usage.

Quand utiliser la RAG ?

La RAG implique de nombreuses decisions techniques et demande plus de travail que de simplement tout mettre dans le prompt. Il faut evaluer si les benefices justifient la complexite pour votre application. Elle est particulierement utile dans ces cas :

  • Travail avec des documents tres volumineux
  • Interrogation de plusieurs documents simultanement
  • Besoin d’optimiser les couts et les performances

L’idee cle est que la RAG echange de la simplicite contre de la scalabilite et de l’efficacite. Bien qu’elle demande plus de travail en amont, elle permet de gerer des collections de documents qui seraient impossibles a traiter en bourrant tout dans un seul prompt.

Quiz : Quand choisir la RAG ?

Question : Vous avez un document de 5 pages et des utilisateurs qui posent des questions dessus. Faut-il utiliser la RAG ?

Reponse : Probablement pas. Pour un document court, le “prompt stuffing” (tout mettre dans le prompt) est plus simple et suffisant. La RAG se justifie quand les documents sont trop grands pour le prompt, quand vous avez plusieurs documents, ou quand vous devez optimiser les couts sur un grand volume de requetes.