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. Découvrez le fonctionnement d'AutoRAG.