La génération augmentée par récupération associe un récupérateur (retriever), qui interroge une collection de documents externe, à un modèle de langage générateur. Lewis et al. (2020) l’ont introduite en combinant un modèle seq2seq paramétrique avec un index vectoriel non paramétrique de Wikipédia, et ont montré qu’elle produisait des textes plus factuels et plus précis, tout en établissant l’état de l’art en réponse aux questions en domaine ouvert.
La plupart des systèmes RAG modernes effectuent la récupération à l’aide d’embeddings denses, dans la lignée de Dense Passage Retrieval (Karpukhin et al., 2020) ; l’idée d’associer la récupération à un modèle de langage a également été développée dans REALM (Guu et al., 2020).
Qu’est-ce que le RAG en IA ? La signification en termes simples
Le sens du RAG en une phrase : chercher d’abord, répondre ensuite. Un LLM seul ne répond qu’à partir de ce qu’il a assimilé pendant son entraînement, ce qui peut être obsolète ou mal mémorisé. Un système RAG commence par récupérer les passages pertinents pour la question (dans des documents d’entreprise, une base de connaissances ou sur le web) et les transmet au modèle avec la question, afin que la réponse puisse citer de vraies sources.
C’est pourquoi le RAG est la méthode habituelle pour créer des chatbots sur des documents privés, des assistants de support qui doivent rester à jour et des outils de recherche qui indiquent l’origine de chaque affirmation.
Comment fonctionne la génération augmentée par récupération
- 1Indexation. Les documents sont découpés en fragments, chaque fragment est converti en embedding, et les embeddings sont stockés dans une base de données vectorielle ou un index de recherche.
- 2Récupération. La question de l’utilisateur est convertie en embedding de la même manière, et les fragments les plus similaires sont identifiés par une recherche des plus proches voisins, souvent suivie d’une étape de reranking.
- 3Enrichissement et génération. Les meilleurs passages sont insérés dans le prompt, dans la limite de la fenêtre de contexte du modèle, et celui-ci rédige une réponse qui s’appuie sur eux, en citant idéalement le passage qui étaye chaque affirmation.
RAG ou fine-tuning
Les deux rendent un modèle plus utile dans votre domaine, mais ils n’agissent pas sur la même chose. Le RAG modifie ce que le modèle peut voir ; le fine-tuning modifie le modèle lui-même.
| RAG | Fine-tuning | |
|---|---|---|
| Ce qui change | Le contexte fourni au modèle | Les poids du modèle |
| Mise à jour des connaissances | Réindexer les documents | Réentraîner |
| Citations | Peut indiquer les passages utilisés | Aucune traçabilité des sources intégrée |
| Idéal pour | Les faits récents, privés ou qui évoluent vite | Un style, un format ou un comportement spécialisé constants |
Les longues fenêtres de contexte vous permettent de coller des documents entiers dans un chat, ce qui peut remplacer le RAG pour quelques fichiers. Le RAG reste préférable lorsque la collection dépasse la taille de la fenêtre, change souvent ou doit être interrogée par de nombreux utilisateurs.
Le RAG chez MultipleChat
Les Projects de MultipleChat fonctionnent ainsi : les fichiers que vous ajoutez à un projet sont indexés, et lorsque vous envoyez un message, MultipleChat les interroge et ne transmet au modèle que les fragments les plus pertinents. Chaque chat du projet peut ainsi s’appuyer sur vos documents sans copier-coller. La recherche web ajoute des sources en temps réel et, avec les forfaits payants, Auto Verification peut vérifier l’exactitude factuelle d’une réponse dès qu’elle est fournie.