Génération augmentée de récupération : où la récupération d’informations rencontre la génération de texte

Génération augmentée de récupération : où la récupération d'informations rencontre la génération de texte

mayo-rag-header-image Génération augmentée de récupération : où la récupération d'informations rencontre la génération de texte NEWS
Image créée par l’auteur à l’aide de Midjourney

Introduction à RAG

Dans le monde en constante évolution des modèles de langage, une méthodologie particulièrement intéressante est la Retrieval Augmented Generation (RAG), une procédure incorporant des éléments de recherche d’informations (IR) dans le cadre d’un modèle de langage de génération de texte afin de générer des modèles de langage de type humain. texte dans le but d’être plus utile et plus précis que celui qui serait généré par le seul modèle de langage par défaut. Nous présenterons les concepts élémentaires de RAG dans cet article, en vue de construire certains systèmes RAG dans les articles suivants.

Vue d’ensemble RAG

Nous créons des modèles linguistiques à l’aide de vastes ensembles de données génériques qui ne sont pas adaptés à vos propres données personnelles ou personnalisées. Pour faire face à cette réalité, RAG peut combiner vos données particulières avec la « connaissance » existante d’un modèle de langage. Pour faciliter cela, ce qu’il faut faire, et ce que fait RAG, c’est d’indexer vos données pour les rendre consultables. Lorsqu’une recherche composée de vos données est exécutée, les informations pertinentes et importantes sont extraites des données indexées et peuvent être utilisées dans une requête sur un modèle de langage pour renvoyer une réponse pertinente et utile apportée par le modèle. Tout ingénieur en IA, data scientist ou développeur intéressé à créer des chatbots, des systèmes modernes de récupération d’informations ou d’autres types d’assistants personnels, une compréhension de RAG et la connaissance de la façon d’exploiter vos propres données sont d’une importance vitale.

En termes simples, RAG est une nouvelle technique qui enrichit les modèles de langage avec une fonctionnalité de récupération d’entrée, qui améliore les modèles de langage en incorporant des mécanismes IR dans le processus de génération, des mécanismes qui peuvent personnaliser (augmenter) les « connaissances » inhérentes du modèle utilisées à des fins génératives.

Pour résumer, RAG implique les étapes de haut niveau suivantes :

  1. Récupérez des informations à partir de vos sources de données personnalisées
  2. Ajoutez ces données à votre invite comme contexte supplémentaire
  3. Demandez au LLM de générer une réponse basée sur l’invite augmentée

RAG offre ces avantages par rapport à l’alternative de réglage fin du modèle :

  1. Aucune formation n’a lieu avec RAG, il n’y a donc aucun coût ni temps de mise au point
  2. Les données personnalisées sont aussi récentes que vous les créez, et le modèle peut ainsi rester efficacement à jour
  3. Les documents de données personnalisés spécifiques peuvent être cités pendant (ou après) le processus, ce qui rend le système beaucoup plus vérifiable et digne de confiance.

Regarder de plus près

Après un examen plus détaillé, nous pouvons dire qu’un système RAG passera par 5 phases de fonctionnement.

1. Charger: La collecte des données textuelles brutes (à partir de fichiers texte, de PDF, de pages Web, de bases de données, etc.) est la première d’une longue série d’étapes consistant à placer les données textuelles dans le pipeline de traitement, ce qui en fait une étape nécessaire du processus. Sans chargement de données, RAG ne peut tout simplement pas fonctionner.

2. Indice: Les données dont vous disposez actuellement doivent être structurées et conservées pour la récupération, la recherche et l’interrogation. Les modèles linguistiques utiliseront des intégrations vectorielles créées à partir du contenu pour fournir des représentations numériques des données, ainsi que des métadonnées particulières pour permettre des résultats de recherche réussis.

3. Magasin: Après sa création, l’index doit être enregistré avec les métadonnées, garantissant que cette étape n’a pas besoin d’être répétée régulièrement, permettant une mise à l’échelle plus facile du système RAG.

4. Requête: Avec cet index en place, le contenu peut être parcouru à l’aide de l’indexeur et du modèle de langage pour traiter l’ensemble de données en fonction de diverses requêtes.

5. Évaluer: L’évaluation des performances par rapport à d’autres étapes génératives possibles est utile, que ce soit lors de la modification de processus existants ou lors du test de la latence et de la précision inhérentes à des systèmes de cette nature.

mayo-rag-overview-5-steps Génération augmentée de récupération : où la récupération d'informations rencontre la génération de texte NEWS mayo-rag-overview-5-steps Génération augmentée de récupération : où la récupération d'informations rencontre la génération de texte NEWS
Image créée par l’auteur

Un court exemple

Considérez l’implémentation RAG simple suivante. Imaginez qu’il s’agisse d’un système créé pour répondre aux demandes des clients concernant une boutique en ligne fictive.

1. Chargement: Le contenu proviendra de la documentation produit, des avis des utilisateurs et des commentaires des clients, stockés dans plusieurs formats tels que des forums de discussion, des bases de données et des API.

2. Indexation: Vous produirez des intégrations vectorielles pour la documentation produit et les avis des utilisateurs, etc., parallèlement à l’indexation des métadonnées attribuées à chaque point de données, telles que la catégorie de produit ou l’évaluation du client.

3. Stockage: L’index ainsi développé sera sauvegardé dans un vector store, une base de données spécialisée pour le stockage et la récupération optimale des vecteurs, sous laquelle sont stockés les plongements.

4. Interrogation: Lorsqu’une requête client arrive, une recherche dans les bases de données de magasins vectoriels sera effectuée sur la base du texte de la question, et des modèles de langage seront ensuite utilisés pour générer des réponses en utilisant les origines de ces données précurseurs comme contexte.

5. Évaluation: Les performances du système seront évaluées en comparant ses performances à d’autres options, telles que la récupération de modèles de langage traditionnels, en mesurant des mesures telles que l’exactitude des réponses, la latence des réponses et la satisfaction globale des utilisateurs, afin de garantir que le système RAG peut être peaufiné et perfectionné pour fournir des performances supérieures. résultats.

Cet exemple de procédure pas à pas devrait vous donner une idée de la méthodologie derrière RAG et de son utilisation afin de transmettre la capacité de récupération d’informations sur un modèle de langage.

Conclusion

L’introduction de la génération augmentée par récupération, qui combine la génération de texte avec la récupération d’informations afin d’améliorer la précision et la cohérence contextuelle de la sortie du modèle de langage, a fait l’objet de cet article. Le procédé permet d’incorporer l’extraction et l’augmentation de données stockées dans des sources indexées dans la sortie générée de modèles de langage. Ce système RAG peut offrir une valeur améliorée par rapport au simple réglage fin du modèle de langage.

Les prochaines étapes de notre parcours RAG consisteront à apprendre les outils du métier afin de mettre en œuvre certains de nos propres systèmes RAG. Nous nous concentrerons d’abord sur l’utilisation des outils de LlamaIndex tels que les connecteurs de données, les moteurs et les connecteurs d’application pour faciliter l’intégration de RAG et sa mise à l’échelle. Mais nous gardons cela pour le prochain article.

Dans les projets à venir, nous construirons des systèmes RAG complexes et examinerons les utilisations et améliorations potentielles de la technologie RAG. L’espoir est de révéler de nombreuses nouvelles possibilités dans le domaine de l’intelligence artificielle et d’utiliser ces diverses sources de données pour construire des systèmes plus intelligents et contextualisés.

Matthieu Mayo (@mattmayo13) est titulaire d’une maîtrise en informatique et d’un diplôme d’études supérieures en fouille de données. En tant que rédacteur en chef, Matthew vise à rendre accessibles les concepts complexes de la science des données. Ses intérêts professionnels incluent le traitement du langage naturel, les algorithmes d’apprentissage automatique et l’exploration de l’IA émergente. Il est animé par la mission de démocratiser les connaissances dans la communauté de la science des données. Matthew code depuis l’âge de 6 ans.

Source