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.
Cet article s'articule autour des points suivants :
Copier le lien de l'article
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.
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.
L'utilisation de la RAG pour affiner un LLM présente les avantages suivants :
Voici quelques-unes des inconvénients potentiels :
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.
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.
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. Apprenez comment fonctionne AutoRAG.
La RAG est une technique qui optimise les grands modèles de langage (LLM) pour des contextes spécifiques en leur fournissant un accès à une base de connaissances pertinente sans nécessiter de réentraînement complet. La technique RAG est un moyen efficace de personnaliser un LLM pour des tâches spécialisées.
RAG permet à un LLM de consulter des sources de données externes, telles qu'une base de données dédiée, pour enrichir ses réponses. Lorsqu'un utilisateur soumet une requête, le LLM la convertit en vecteur, trouve des informations connexes dans la source de données externe (qui est également vectorisée), puis utilise ce contexte élargi pour générer une réponse plus informée et précise.
La génération augmentée par récupération (RAG) améliore la précision d'un modèle d'IA pour une application particulière, car le LLM peut puiser dans une base de connaissances spécialisée. La RAG est également une méthode rentable pour adapter un modèle, car elle évite les ressources de calcul considérables et le temps nécessaire à un réentraînement complet. En outre, la RAG offre une flexibilité, permettant d'appliquer le même modèle à divers scénarios spécifiques sans modifier ses paramètres de base.
Malgré ses avantages, la génération augmentée par récupération (RAG) peut entraîner un allongement des temps de réponse car le modèle de langage (LLM) doit récupérer et traiter des informations issues de plusieurs ensembles de données. Il y a aussi un risque d'incohérences si la base de connaissances externe ne s'aligne pas parfaitement avec les données d'entraînement originales du modèle. De plus, la maintenance de la RAG exige un effort manuel pour convertir et actualiser les nouvelles données en vecteurs dans la base de données chaque fois que la base de connaissances externe est modifiée.
Un chatbot RAG est un chatbot basé sur un LLM qui a été spécialisé pour des cas d'utilisation particuliers grâce au processus RAG. Cela signifie qu'il a accès à des sources de données externes utiles pour son contexte opérationnel spécifique, il est ainsi en mesure de fournir des réponses plus ciblées et précises qu'un chatbot à usage général.
La RAG et l'adaptation par modèle auxiliaire (LoRA) sont deux méthodes permettant d'affiner les modèles d'IA sans un réentraînement complet. Cependant, ils diffèrent dans leur approche : la RAG ne modifie pas les paramètres du modèle, tandis que LoRA implique de les ajuster.
AutoRAG est un outil développé par Cloudflare qui simplifie la configuration et la gestion des pipelines RAG pour les développeurs. Il automatise la connexion des outils nécessaires à l'indexation, à la récupération et à la génération, ce qui garantit la synchronisation des données et la réponse en temps réel aux requêtes avec une mise à jour en continu du contenu en arrière-plan.