Intelligence artificielle
Une plongée en profondeur dans la génération augmentée de récupération dans les LLM

Imaginez que vous êtes un analyste et que vous avez accès à un grand modèle de langage. Vous êtes enthousiaste à l’idée des perspectives qu’il offre pour votre flux de travail. Mais ensuite, vous lui posez une question sur les derniers cours de l’action ou le taux d’inflation actuel, et il vous répond :
“Je suis désolé, mais je ne peux pas fournir de données en temps réel ou postérieures à la date de fin de mon entraînement. Mes dernières données d’entraînement ne remontent qu’à janvier 2022.”
Les grands modèles de langage, pour toute leur puissance linguistique, manquent la capacité de saisir le “maintenant“. Et dans un monde en constante évolution, “maintenant” est tout.
Les recherches ont montré que les grands modèles de langage pré-entraînés (LLM) sont également des répertoires de connaissances factuelles.
Ils ont été entraînés sur tellement de données qu’ils ont absorbé un grand nombre de faits et de chiffres. Lorsqu’ils sont affinés, ils peuvent obtenir des résultats remarquables dans une variété de tâches de traitement du langage naturel.
Mais voici l’astuce : leur capacité à accéder et à manipuler ces connaissances stockées n’est pas toujours parfaite. Surtout lorsque la tâche en question est intensive en connaissances, ces modèles peuvent être dépassés par des architectures plus spécialisées. C’est comme avoir une bibliothèque avec tous les livres du monde, mais sans catalogue pour trouver ce dont vous avez besoin.
OpenAI’s ChatGPT obtient une mise à niveau de navigation
L’annonce récente d’OpenAI concernant la fonctionnalité de navigation de ChatGPT est un grand pas en avant dans la direction de la génération augmentée de récupération (RAG). Avec ChatGPT capable de parcourir Internet pour obtenir des informations actuelles et autorisées, il reflète l’approche RAG consistant à extraire dynamiquement des données de sources externes pour fournir des réponses enrichies.
https://twitter.com/OpenAI/status/1707077710047216095
Actuellement disponible pour les utilisateurs Plus et Entreprise, OpenAI prévoit de déployer cette fonctionnalité pour tous les utilisateurs prochainement. Les utilisateurs peuvent l’activer en sélectionnant ‘Parcourir avec Bing’ sous l’option GPT-4.
L’ingénierie de prompt est efficace mais insuffisante
Les invites servent de passerelle aux connaissances des LLM. Ils guident le modèle, en lui fournissant une direction pour la réponse. Cependant, créer une invite efficace n’est pas la solution complète pour obtenir ce que vous voulez d’un LLM. Néanmoins, analysons quelques bonnes pratiques à considérer lors de la rédaction d’une invite :
- Clarté : Une invite bien définie élimine l’ambiguïté. Elle doit être directe, en veillant à ce que le modèle comprenne l’intention de l’utilisateur. Cette clarté se traduit souvent par des réponses plus cohérentes et pertinentes.
- Contexte : Surtout pour les entrées étendues, la position de l’instruction peut influencer la sortie. Par exemple, déplacer l’instruction à la fin d’une longue invite peut souvent donner de meilleurs résultats.
- Précision dans l’instruction : La force de la question, souvent transmise par le cadre “qui, quoi, où, quand, pourquoi, comment”, peut guider le modèle vers une réponse plus ciblée. De plus, spécifier le format de sortie souhaité ou la taille peut affiner davantage la sortie du modèle.
- Gestion de l’incertitude : Il est essentiel de guider le modèle sur la façon de répondre lorsqu’il est incertain. Par exemple, en lui demandant de répondre “Je ne sais pas” lorsqu’il est incertain, on peut prévenir la génération de réponses inexactes ou “hallucinées“.
- Pensée étape par étape : Pour les instructions complexes, guider le modèle pour penser de manière systématique ou en décomposant la tâche en sous-tâches peut conduire à des sorties plus complètes et précises.
En relation avec l’importance des invites pour guider ChatGPT, un article complet peut être trouvé sur Unite.ai.
Les défis des modèles de génération de langage
L’ingénierie de prompt implique l’affinement des directives données au modèle pour améliorer ses performances. Il s’agit d’un moyen très rentable pour améliorer la précision des applications de génération de langage. Bien que l’ingénierie de prompt puisse considérablement améliorer les sorties, il est crucial de comprendre les limitations inhérentes aux grands modèles de langage (LLM). Deux défis primordiaux sont les “hallucinations” et les “coupures de connaissances“.
- Hallucinations : Cela fait référence aux cas où le modèle retourne avec confiance une réponse incorrecte ou fabriquée. Bien que les LLM avancés aient des mécanismes intégrés pour reconnaître et éviter de telles sorties.
- Coupures de connaissances : Chaque modèle LLM a une date de fin d’entraînement, après laquelle il n’est pas conscient des événements ou des développements. Cette limitation signifie que les connaissances du modèle sont gelées au point de sa dernière date d’entraînement. Par exemple, un modèle formé jusqu’en 2022 ne connaîtrait pas les événements de 2023.
La génération augmentée de récupération (RAG) offre une solution à ces défis. Elle permet aux modèles d’accéder à des informations externes, atténuant les problèmes d’hallucinations en fournissant l’accès à des données propriétaires ou spécifiques à un domaine. Pour les coupures de connaissances, la RAG peut accéder à des informations actuelles au-delà de la date de formation du modèle, garantissant que la sortie est à jour.
Elle permet également au LLM de puiser des données de diverses sources externes en temps réel. Cela peut être des bases de connaissances, des bases de données ou même la vaste étendue d’Internet.
Introduction à la génération augmentée de récupération
La génération augmentée de récupération (RAG) est un cadre, plutôt qu’une technologie spécifique, permettant aux grands modèles de langage de puiser dans des données auxquelles ils n’ont pas été formés. Il existe plusieurs façons de mettre en œuvre la RAG, et la meilleure option dépend de la tâche spécifique et de la nature des données.
Le cadre RAG fonctionne de manière structurée :
Entrée d’invite
Le processus commence avec une entrée utilisateur ou une invite. Cela peut être une question ou une déclaration cherchant des informations spécifiques.
Récupération à partir de sources externes
Au lieu de générer directement une réponse basée sur sa formation, le modèle, avec l’aide d’un composant de récupération, recherche des sources de données externes. Ces sources peuvent aller des bases de connaissances, des bases de données et des magasins de documents à des données accessibles via Internet.
Compréhension de la récupération
En son essence, la récupération reflète une opération de recherche. Il s’agit d’extraire les informations les plus pertinentes en réponse à une entrée utilisateur. Ce processus peut être décomposé en deux étapes :
- Indexation : Sans conteste, la partie la plus difficile de l’ensemble du parcours RAG est l’indexation de votre base de connaissances. Le processus d’indexation peut être divisé en deux phases : Chargement et Division. Dans des outils comme LangChain, ces processus sont appelés “chargeurs” et “diviseurs“. Les chargeurs récupèrent le contenu à partir de diverses sources, qu’il s’agisse de pages Web ou de fichiers PDF. Une fois récupéré, les diviseurs segmentent ensuite ce contenu en morceaux facilement gérables, les optimisant pour l’intégration et la recherche.
- Requête : Il s’agit de l’extraction des fragments de connaissances les plus pertinents en fonction d’un terme de recherche.
Bien qu’il existe de nombreuses façons d’aborder la récupération, allant de la correspondance de texte simple à l’utilisation de moteurs de recherche comme Google, les systèmes modernes de génération augmentée de récupération (RAG) s’appuient sur la recherche sémantique. Au cœur de la recherche sémantique se trouve le concept d’incorporation.
Les incorporations sont centrales dans la façon dont les grands modèles de langage (LLM) comprennent le langage. Lorsque les humains tentent d’articuler comment ils dérivent du sens des mots, l’explication revient souvent à une compréhension inhérente. Profondément ancrée dans nos structures cognitives, nous reconnaissons que “enfant” et “gamin” sont synonymes, ou que “rouge” et “vert” désignent tous deux des couleurs.
Augmentation de l’invite
Les informations récupérées sont ensuite combinées avec l’invite originale, créant une invite augmentée ou étendue. Cette invite augmentée fournit au modèle un contexte supplémentaire, ce qui est particulièrement précieux si les données sont spécifiques à un domaine ou ne font pas partie du corpus de formation initial du modèle.
Génération de la complétion
Avec l’invite augmentée en main, le modèle génère ensuite une complétion ou une réponse. Cette réponse n’est pas seulement basée sur la formation du modèle mais est également éclairée par les données en temps réel récupérées.
Architecture du premier LLM RAG
L’article de recherche publié par Meta en 2020 “Génération augmentée de récupération pour les tâches de traitement du langage naturel intensives en connaissances” offre un aperçu approfondi de cette technique. Le modèle de génération augmentée de récupération ajoute au processus de génération traditionnel un mécanisme de récupération ou de recherche externe. Cela permet au modèle de puiser des informations pertinentes à partir de vastes corpus de données, améliorant ainsi sa capacité à générer des réponses contextuellement précises.
Voici comment cela fonctionne :
- Mémoire paramétrique : Il s’agit de votre modèle de langage traditionnel, comme un modèle séquence-à-séquence. Il a été formé sur des quantités massives de données et sait beaucoup de choses.
- Mémoire non paramétrique : Pensez-y comme à un moteur de recherche. Il s’agit d’un index vectoriel dense de, disons, Wikipedia, qui peut être accédé à l’aide d’un récupérateur neuronal.
Lorsqu’ils sont combinés, ces deux éléments créent un modèle précis. Le modèle RAG récupère d’abord les informations pertinentes de sa mémoire non paramétrique, puis utilise ses connaissances paramétriques pour fournir une réponse cohérente.
1. Processus en deux étapes :
Le LLM RAG fonctionne dans un processus en deux étapes :
- Récupération : Le modèle recherche d’abord des documents ou des passages pertinents à partir d’un grand ensemble de données. Cela est réalisé à l’aide d’un mécanisme de récupération dense, qui utilise des incorporations pour représenter à la fois la requête et les documents. Les incorporations sont ensuite utilisées pour calculer des scores de similarité, et les documents les mieux classés sont récupérés.
- Génération : Avec les documents pertinents dans la main, ils sont ensuite canalisés dans un générateur séquence-à-séquence aux côtés de la requête initiale. Ce générateur crée ensuite la sortie finale, tirant le contexte à la fois de la requête et des documents récupérés.
2. Récupération dense :
Les systèmes de récupération traditionnels s’appuient souvent sur des représentations parcimonieuses comme TF-IDF. Cependant, le LLM RAG utilise des représentations denses, où à la fois la requête et les documents sont intégrés dans des espaces vectoriels continus. Cela permet des comparaisons de similarité plus nuancées, capturant les relations sémantiques au-delà du simple appariement de mots clés.
3. Génération séquence-à-séquence :
Les documents récupérés agissent comme un contexte étendu pour le modèle de génération. Ce modèle, souvent basé sur des architectures comme les Transformers, génère ensuite la sortie finale, en veillant à ce qu’elle soit cohérente et contextuellement pertinente.
Recherche de documents
Indexation et récupération de documents
Pour une récupération d’informations efficace, en particulier à partir de grands documents, les données sont souvent stockées dans une base de données vectorielle. Chaque pièce de données ou document est indexée en fonction d’un vecteur d’incorporation, qui capture l’essence sémantique du contenu. Une indexation efficace garantit une récupération rapide des informations pertinentes en fonction de l’invite utilisateur.
Base de données vectorielle

Source : Redis
Les bases de données vectorielles, parfois appelées stockage vectoriel, sont des bases de données conçues pour stocker et récupérer des données vectorielles. Dans le domaine de l’IA et de l’informatique, les vecteurs sont essentiellement des listes de nombres représentant des points dans un espace multi-dimensionnel. Contrairement aux bases de données traditionnelles, qui sont plus adaptées aux données tabulaires, les bases de données vectorielles excellent dans la gestion de données qui s’adaptent naturellement à un format vectoriel, telles que les incorporations de modèles d’IA.
Certaines bases de données vectorielles notables incluent Annoy, Faiss de Meta, Milvus et Pinecone. Ces bases de données sont essentielles dans les applications d’IA, aidant dans des tâches allant des systèmes de recommandation aux recherches d’images. Les plateformes comme AWS proposent également des services conçus pour répondre aux besoins des bases de données vectorielles, tels que Amazon OpenSearch Service et Amazon RDS pour PostgreSQL. Ces services sont optimisés pour des cas d’utilisation spécifiques, garantissant une indexation et une interrogation efficaces.
Segmentation pour la pertinence
Étant donné que de nombreux documents peuvent être étendus, une technique appelée “segmentation” est souvent utilisée. Cela consiste à diviser de grands documents en morceaux plus petits et sémantiquement cohérents. Ces morceaux sont ensuite indexés et récupérés au besoin, en veillant à ce que les portions les plus pertinentes d’un document soient utilisées pour l’augmentation de l’invite.
Considérations de fenêtre de contexte
Chaque LLM fonctionne dans une fenêtre de contexte, qui est essentiellement la quantité maximale d’informations qu’il peut prendre en compte à la fois. Si les sources de données externes fournissent des informations qui dépassent cette fenêtre, elles doivent être divisées en morceaux plus petits qui rentrent dans la fenêtre de contexte du modèle.
Avantages de l’utilisation de la génération augmentée de récupération
- Précision améliorée : En exploitant les sources de données externes, le LLM RAG peut générer des réponses qui ne sont pas seulement basées sur ses données d’entraînement mais sont également éclairées par les informations les plus pertinentes et à jour disponibles dans le corpus de récupération.
- Suppression des lacunes de connaissances : La RAG répond efficacement aux limitations de connaissances inhérentes aux LLM, que ce soit dû à la date de fin de formation du modèle ou à l’absence de données spécifiques à un domaine dans son corpus de formation.
- Polyvalence : La RAG peut être intégrée à diverses sources de données externes, allant des bases de données propriétaires au sein d’une organisation aux données Internet accessibles publiquement. Cela la rend adaptable à une large gamme d’applications et d’industries.
- Réduction des hallucinations : L’un des défis des LLM est le potentiel de “hallucinations” ou la génération d’informations factuellement incorrectes ou fabriquées. En fournissant un contexte de données en temps réel, la RAG peut considérablement réduire les chances de telles sorties.
- Évolutivité : L’un des principaux avantages du LLM RAG est sa capacité à évoluer. En séparant les processus de récupération et de génération, le modèle peut gérer efficacement de vastes ensembles de données, le rendant adapté aux applications du monde réel où les données sont abondantes.
Défis et considérations
- Surcharge computationnelle : Le processus en deux étapes peut être computationnellement intensif, en particulier lorsqu’il s’agit de grands ensembles de données.
- Dépendance des données : La qualité des documents récupérés a un impact direct sur la qualité de la génération. Par conséquent, disposer d’un corpus de récupération complet et bien entretenu est crucial.
Conclusion
En intégrant les processus de récupération et de génération, la génération augmentée de récupération offre une solution robuste aux tâches intensives en connaissances, garantissant des sorties à la fois éclairées et contextuellement pertinentes.
La véritable promesse de la RAG réside dans ses applications réelles. Pour des secteurs comme la santé, où des informations précises et à jour peuvent être cruciales, la RAG offre la capacité d’extraire et de générer des insights à partir de vastes littératures médicales de manière fluide. Dans le domaine financier, où les marchés évoluent à la minute, la RAG peut fournir des insights basés sur des données en temps réel, aidant dans la prise de décision éclairée. De plus, dans l’académie et la recherche, les chercheurs peuvent exploiter la RAG pour analyser de vastes répertoires d’informations, rendant les revues de littérature et l’analyse de données plus efficaces.

















