Qu'est-ce que la génération augmentée par récupération (RAG) dans l'IA ?

La génération augmentée par récupération (Retrieval-Agmented Generation, RAG) est une méthode permettant d'ajouter une nouvelle source de données à un grand modèle de langage (LLM) sans avoir à renouveler les entraînements.

Objectifs d’apprentissage

Cet article s'articule autour des points suivants :

  • Comprendre la génération augmentée par récupération (RAG) dans l’IA
  • Expliquer comment la RAG améliore les LLM
  • Comprendre les chatbots RAG et AutoRAG

Copier le lien de l'article

Qu'est-ce que la génération augmentée par récupération (RAG) dans l'IA ?

La génération augmentée par récupération (Retrieval-Augmented Generation, RAG) correspond au processus qui consiste à optimiser un grand modèle linguistique (LLM) afin de l'utiliser dans un contexte spécifique, sans avoir besoin de le réentraîner complètement, en lui donnant accès à une base de connaissances spécialisée pour ce contexte. La technique RAG est un moyen économique d'adapter rapidement un LLM à un scénario d'utilisation spécifique. Il s'agit d'une des méthodes que les développeurs peuvent utiliser pour affiner un modèle d'intelligence artificielle (IA).

Les LLM sont entraînés sur de gigantesques quantités de données, mais ils peuvent ne pas être en mesure de générer les informations spécifiques nécessaires dans certains contextes. Ils possèdent une compréhension générale du fonctionnement du langage humain, mais ne disposent pas toujours d'une expertise spécifique dans un domaine donné. La technique RAG est un moyen de remédier à cela.

Imaginons qu'un mécanicien automobile soit amené à travailler sur une Chevrolet de 1964. Peu importent sa grande expertise générale en matière de révision automobile et ses milliers d'heures de pratique, le mécanicien aura toujours besoin du manuel du propriétaire pour réviser efficacement la voiture. Mais le mécanicien n'a pas besoin d'être à nouveau diplômé en mécanique ; il lui suffit de consulter le manuel, puis d'appliquer sa connaissance générale des voitures.

La solution RAG est similaire. Elle donne à un LLM un « manuel » (ou une base de connaissances) lui permettant d'adapter ses connaissances générales au scénario d'utilisation spécifique. Par exemple, un LLM général peut être capable de générer du contenu sur le fonctionnement des requêtes d'API, mais il ne sera pas pour autant en mesure d'indiquer à un utilisateur comment interroger l'API d'une application spécifique. Avec la technique RAG, toutefois, ce LLM pourrait être adapté à une utilisation avec cette application en le reliant à la documentation technique de celle-ci.

Comment fonctionne la technique RAG ?

Normalement, lorsqu'un LLM reçoit une requête, il la traite en fonction de ses paramètres et de son entraînement préexistants.

La RAG permet au LLM de se référer à des « données externes », c'est-à-dire une base de données qui ne fait pas partie de l'ensemble de données d'entraînement du LLM. Ainsi, contrairement à son fonctionnement normal, un LLM associé à la technique RAG utilise des données externes pour améliorer ses réponses. D'où le nom de génération (création d'une réponse) augmentée (amélioration des réponses avec ces données) par récupération (récupération des données externes en premier lieu).

Supposons que le mécanicien automobile de l'exemple ci-dessus souhaite utiliser un LLM au lieu de consulter directement les manuels du propriétaire. Avec la RAG, le LLM peut intégrer la consultation des manuels du propriétaire directement dans ses processus. Malgré le fait que le LLM n'a probablement pas été entraîné à partir de manuels de voitures classiques (ou, si ces informations ont été incluses dans ses données d'entraînement, il est probable qu'il ne s'agisse que d'un infime pourcentage), le LLM peut utiliser la RAG pour produire des requêtes dignes d'intérêt et précises.

Pour que le LLM puisse utiliser et interroger la source de données externe (comme les manuels d'utilisation de la voiture), les données sont d'abord converties en vecteurs, puis stockées dans une base de données vectorielle. Ce processus utilise des modèles d'apprentissage automatique pour générer des représentations mathématiques des éléments d'un ensemble de données. (Chaque « vecteur » est une suite de nombres, telle que [-0,41522345,0,97685323...].)

Lorsqu'un utilisateur envoie une invite, le LLM convertit cette invite en vecteur, puis cherche des informations pertinentes dans la base de données vectorielle créée à partir de la source de données externe. Il ajoute ces informations comme contexte supplémentaire à l’invite, puis exécute l’invite augmentée dans son modèle habituel pour créer une réponse.

Quels sont les avantages et les inconvénients liés à l’utilisation de la technique RAG en IA ?

L'utilisation de la RAG pour affiner un LLM présente les avantages suivants :

  • Précision accrue au sein du scénario d'utilisation : un LLM est plus susceptible de fournir une réponse correcte s'il a accès à une base de connaissances liée à l'invite, de la même façon qu'un mécanicien est mieux armé pour réparer correctement une voiture s'il dispose du manuel.
  • Une manière d'adapter un modèle à faible coût : aucun nouvel entraînement n'étant nécessaire, l'utilisation d'un LLM dans un nouveau contexte se révèle moins coûteuse et prend moins de temps.
  • Flexibilité : comme les paramètres du modèle ne sont pas ajustés, le même modèle peut être rapidement transféré dans différents scénarios d'utilisation.

Voici quelques-unes des inconvénients potentiels :

  • Temps de réponse plus lents : quand bien même la RAG n'implique aucun nouvel entraînement, l'inférence (c'est-à-dire le processus de raisonnement et de réponse aux Invites) peut prendre plus de temps, car le LLM doit désormais interroger plusieurs ensembles de données pour produire une réponse.
  • Incohérences entre les ensembles de données : la base de connaissances externe peut ne pas s'intégrer de manière harmonieuse dans l'ensemble de données d'entraînement du modèle, tout comme deux encyclopédies différentes peuvent décrire des événements historiques de manière légèrement différente. Cet état de fait peut donner lieu à des réponses incohérentes lors des requêtes.
  • Maintenance manuelle : chaque fois que la base de connaissances externe est mise à jour (par exemple, lorsque de nouveaux modèles de voitures sont lancés), les développeurs doivent déclencher manuellement le processus de conversion des nouvelles données en vecteurs et mettre à jour la base de données vectorielle. (Cloudflare a développé AutoRAG pour épargner aux développeurs processus manuel. Vous trouverez plus d'informations ci-dessous).

Qu'est-ce qu'un chatbot RAG ?

Un chatbot RAG est un chatbot basé sur LLM qui a été spécialisé dans des cas d'utilisation spécifiques avec la technique RAG, ; il est ainsi connecté à une ou plusieurs sources de données externes dignes d'intérêt pour le contexte dans lequel le chatbot fonctionne. Un chatbot RAG utilisé dans un garage automobile aurait accès à la documentation automobile ; il serait plus utile pour les mécaniciens du garage qu'un chatbot LLM à usage général auquel ils devraient poser des questions.

RAG ou adaptation par modèle auxiliaire (LoRA)

L'adaptation par modèle auxiliaire (LoRA) est un autre moyen d'affiner un modèle, c'est-à-dire de l'adapter à un contexte spécifique sans réentraînement complet. Cependant, LoRA implique d'ajuster les paramètres du modèle, tandis que la RAG ne modifie aucun des paramètres du modèle. En savoir plus sur LoRA.

Qu'est-ce qu'AutoRAG ?

AutoRAG configure et gère les pipelines RAG pour les développeurs. Il connecte les outils nécessaires à l'indexation, à la récupération et à la génération, et maintient l'ensemble à jour en synchronisant régulièrement les données avec l'index. Une fois la fonctionnalité configurée, AutoRAG indexe le contenu en arrière-plan et répond aux requêtes en temps réel. Découvrez le fonctionnement d'AutoRAG.