Sägetstrasse 18, 3123 Belp, Switzerland +41 79 173 36 84 info@ict.technology

    Guide du débutant sur Retrieval-Augmented Generation (RAG) - Partie 1

    Retrieval-Augmented Generation (RAG) représente une évolution significative dans l'architecture des Large Language Model (LLM), combinant la puissance des systèmes de mémoire paramétriques et non paramétriques. À sa base, RAG répond à l'une des limitations fondamentales des LLM traditionnels : leur dépendance aux connaissances pré-entraînées statiques qui peuvent devenir obsolètes ou manquer de contexte spécifique nécessaire pour des réponses précises. Le framework RAG représente un bond en avant significatif dans la quête de création de modèles de langage et en intégrant la puissance des techniques de récupération, de classement et de génération, RAG ouvre de nouvelles possibilités pour les systèmes d'IA capables d'engager une communication véritablement informée et consciente du contexte.

    Ceci est la première partie d'une série en plusieurs volets dans laquelle nous examinons les RAG, leur utilisation et leur fonctionnement.


    Le traitement scientifique original de Retrieval-Augmented Generation a été publié en mai 2020 par Patrick Lewis et ses collègues sous le titre Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks. Patrick Lewis est un chercheur en traitement du langage naturel basé à Londres qui travaille chez co:here, dont nous chez ICT.technology fournissons les modèles de langage d'entreprise aux clients en plus des modèles Open Source Llama. Si vous êtes intéressé par les détails complexes de cette recherche cruciale, vous pouvez télécharger une copie de la révision 2021 ici : https://arxiv.org/pdf/2005.11401.pdf.

    Partie 1 : Les fondamentaux de Retrieval-Augmented Generation (RAG)

    Imaginez une vaste bibliothèque où l'intelligence artificielle agit à la fois comme bibliothécaire et chercheur. C'est essentiellement ce que fait Retrieval-Augmented Generation (RAG) - il transforme une IA d'un système qui ne peut que réciter des informations mémorisées en un système qui peut activement rechercher, évaluer et utiliser des informations provenant d'une base de connaissances dynamique.

    Explorons le fonctionnement de ce système de bibliothèque numérique.

    Comment fonctionne RAG : Une vue d'ensemble

    Dans une bibliothèque traditionnelle, vous avez des bibliothécaires qui savent comment trouver l'information, des assistants de recherche qui évaluent les sources et des experts qui aident à interpréter les résultats. Le travail se fait avec des livres de bibliothèque - leur contenu est statique, il ne change jamais. De nouveaux livres peuvent être ajoutés de temps en temps, mais la plupart sont anciens.

    RAG Components Workflow
    Pensez à RAG comme ayant un bibliothécaire et un chercheur brillants qui ne s'appuient pas uniquement sur des connaissances mémorisées (comme les livres de bibliothèque) mais ont un accès instantané à un vaste système de référence constamment actualisable. Mais contrairement à notre analogie avec la bibliothèque traditionnelle, ce système fonctionne selon des principes mathématiques sophistiqués et des architectures neuronales.

    Le personnel de la bibliothèque au travail

    La sophistication du framework RAG provient de ses trois composants principaux, chacun construit sur des architectures de réseaux neuronaux avancées : Le Retriever, le Ranker et le Generator. Ces composants travaillent ensemble de manière transparente pour fournir des réponses contextuellement pertinentes, précises et informatives.

    1. Le Retriever : Le bibliothécaire ultra-rapide

    Retriever ENNotre bibliothécaire numérique ne parcourt pas les allées physiques - il navigue à travers de vastes bases de données d'informations à des vitesses incroyables. Lorsque vous posez une question, il :

    • Recherche dans les "rayons" numériques en utilisant la similarité vectorielle (comme trouver des livres avec des thèmes similaires)
    • Utilise la correspondance par mots-clés (similaire à la vérification des index de livres, mais instantanément)
    • Interroge des bases de données structurées (comme consulter un catalogue de fiches parfaitement organisé)
    • Emploie la recherche sémantique (comprendre ce que vous recherchez, même si vous utilisez des mots différents)

    Ce bibliothécaire numérique ne regarde pas seulement les titres - il analyse des documents entiers en millisecondes, trouvant des informations pertinentes qui pourraient être enfouies profondément dans le texte. Son rôle principal est de scanner de vastes quantités de données, structurées et non structurées, pour trouver du contenu pertinent pour la requête en cours.

    Lorsqu'un utilisateur soumet une requête, le Retriever emploie diverses techniques de récupération pour rassembler des informations potentiellement utiles :

    • Recherche par similarité vectorielle : Le Retriever représente à la fois la requête et les documents de la base de données sous forme de vecteurs multidimensionnels (actuellement jusqu'à 1024 dimensions). Il utilise ensuite la similarité cosinus ou d'autres métriques de distance pour trouver les documents dont les vecteurs sont les plus similaires au vecteur de la requête. C'est analogue à un bibliothécaire trouvant des livres avec des thèmes ou un contenu similaires.
    • Recherche basée sur les mots-clés : Le Retriever recherche des correspondances exactes ou des variations des mots-clés de la requête dans le corpus de documents. C'est similaire à un bibliothécaire vérifiant les index ou les titres des livres pour des termes spécifiques.
    • Requêtes de base de données structurées : Si l'information est stockée dans un format structuré comme une base de données relationnelle, le Retriever peut utiliser SQL ou des langages de requête similaires pour récupérer les données pertinentes. C'est similaire à un bibliothécaire consultant un catalogue de fiches parfaitement organisé.

    L'objectif du Retriever est de jeter un large filet et de rassembler toutes les informations potentiellement pertinentes d'un large corpus ou d'une base de données, en utilisant diverses techniques de récupération telles que la recherche par similarité vectorielle, la recherche par mots-clés et les requêtes de base de données structurées. Son but est de fournir au système de génération des informations contextuellement pertinentes, précises et à jour qui pourraient ne pas être présentes dans les connaissances pré-entraînées du modèle. Ces informations rassemblées seront affinées dans les étapes suivantes.

    2. Le Ranker : L'expert du bureau de référence

    Ranker ENAprès que le Retriever a rapporté des informations potentiellement pertinentes, le Ranker prend le rôle d'un bibliothécaire de référence expérimenté qui évalue chaque source. Le Ranker utilise divers algorithmes pour déterminer la pertinence et l'utilité de chaque élément d'information récupéré pour répondre à la requête donnée. Certains des facteurs que le Ranker prend en compte incluent :

    • Quelle est la pertinence de cette information, comment l'information s'aligne-t-elle avec l'intention et le contexte de la question de l'utilisateur ?
    • Quelle est la fiabilité de cette source ?
    • L'information est-elle à jour ?
    • Comment cela explique-t-il ce que nous devons savoir ?
    • Y a-t-il des contradictions ou des lacunes à combler entre les sources ?

    Tout comme un bon bibliothécaire de référence sait quelles sources prioriser, le Ranker s'assure que seules les informations les plus précieuses progressent. Une fois que le Retriever a rassemblé un ensemble de documents potentiellement pertinents, le Ranker intervient pour évaluer et aussi prioriser ces informations que le Retriever a trouvées dans les différents pools de documents, bases de données d'entreprise et autres sources.

    En classant efficacement les informations récupérées, le Ranker s'assure que le Generator reçoit l'entrée la plus pertinente et de haute qualité. Cette étape est cruciale pour maintenir la précision et la pertinence de la réponse finale.

    3. Le Generator : Le synthétiseur de recherche

    Generator ENPensez au Generator comme à un assistant de recherche qualifié qui prend tous les matériaux soigneusement sélectionnés et les compile en une réponse claire et complète. C'est le composant final du framework RAG et crucial pour maintenir la précision et la pertinence de la réponse finale. Le Generator fait :

    • Combiner les informations de multiples sources de manière cohérente
    • Maintenir la cohérence tout au long de l'explication
    • Présenter les détails techniques avec précision
    • Formater l'information de manière appropriée pour la requête
    • Résoudre les conflits entre différentes sources

    Le Generator est typiquement un modèle séquence-à-séquence (seq2seq), qui est un type d'architecture de réseau neuronal capable de générer des séquences de sortie basées sur des séquences d'entrée. Dans le contexte de RAG, la séquence d'entrée est la requête de l'utilisateur avec les informations récupérées les mieux classées, et la séquence de sortie est la réponse générée.

    Les modèles seq2seq se composent de deux composants principaux :

    • Encodeur : L'encodeur traite la séquence d'entrée (requête + informations récupérées) et la convertit en une représentation vectorielle de taille fixe qui capture les informations essentielles. C'est similaire à un chercheur lisant les sources sélectionnées et résumant mentalement les points clés.
    • Décodeur : Le décodeur prend la représentation encodée et génère la séquence de sortie (réponse) un token à la fois, basé sur l'entrée et ses propres sorties précédentes. C'est similaire au chercheur composant une réponse basée sur sa compréhension de la requête et des informations pertinentes.

    Le Generator utilise la puissance des modèles seq2seq pour créer des réponses similaires à celles d'un humain qui sont non seulement factuellement précises et pertinentes mais aussi cohérentes, fluides et stylées d'une manière typique du langage humain. Il s'assure que la réponse finale intègre harmonieusement les informations récupérées dans un flux naturel et conversationnel.

    RAG en action : Une analogie avec la bibliothèque

    AdobeStock 40748957Pour mieux comprendre comment fonctionne le framework RAG, revenons à notre analogie de la bibliothèque et voyons comment les composants Retriever, Ranker et Generator correspondent aux rôles du personnel de la bibliothèque. Tout comme une bibliothèque bien fonctionnelle dépend de la collaboration harmonieuse des bibliothécaires, des experts du bureau de référence et des assistants de recherche, l'efficacité du framework RAG repose sur l'interaction harmonieuse des composants Retriever, Ranker et Generator.

    Lorsque quelqu'un vient dans notre bibliothèque numérique avec une question, voici ce qui se passe :

    1. Traitement initial de la requête

    Lorsqu'un utilisateur arrive avec une requête, le système reçoit d'abord votre question.

    Tout comme un bibliothécaire pourrait poser des questions de clarification, le système analyse d'abord ce que vous recherchez vraiment. Pour cela, il prend en compte tout contexte de conversation précédent (comme un bibliothécaire se souvenant du sujet de recherche de votre dernière visite).

    2. Le processus de recherche

    Le Retriever est comme un bibliothécaire rapide qui connaît la collection de la bibliothèque sur le bout des doigts. Comme le bibliothécaire, le Retriever navigue rapidement à travers les rayons, les bases de données et les catalogues pour rassembler tous les livres, articles et autres ressources qui pourraient contenir des informations pertinentes.

    Le Retriever recherche dans les collections numériques (qui n'incluent pas seulement les pools de documents, mais aussi les bases de données relationnelles de votre entreprise et d'autres médias). Plusieurs stratégies de recherche peuvent être utilisées simultanément. Les matériaux pertinents sont rapidement rassemblés et les informations sur les sources sont notées.

    Enfin, le bibliothécaire revient des archives avec une vaste collection de matériel et maintenant il faut déterminer quelles informations sont vraiment pertinentes.

    3. Évaluation et sélection

    Le Ranker est comme l'expert du bureau de référence qui prend la pile de documents du bibliothécaire et évalue chacun d'entre eux. Il prend en compte des facteurs comme la date de publication, l'autorité de l'auteur et la pertinence du contenu par rapport aux besoins de l'utilisateur. Il trie les documents en fonction de leur pertinence et de leur qualité, mettant de côté les sources les plus utiles.

    Pour cela, le Ranker évalue tous les matériaux récupérés et toutes les sources sont priorisées en fonction de la pertinence du contenu et de la fiabilité de la source. Les informations en double sont consolidées et finalement, les sources les plus précieuses sont sélectionnées.

    4. Création de la réponse

    Le Generator est comme un assistant de recherche expérimenté qui prend la pile de documents sélectionnés et synthétise l'information en une réponse complète et bien structurée. Il sait comment extraire les points clés, connecter les idées de différentes sources et présenter l'information de manière claire et engageante. Il s'assure que le produit final n'est pas juste une collection de faits mais une réponse cohérente et contextuellement appropriée à la question de l'utilisateur.

    Pour accomplir cela, toutes les informations sélectionnées par le Ranker sont organisées. Ensuite, une réponse cohérente est élaborée. À l'étape suivante, la réponse est vérifiée à nouveau par rapport aux sources. Si elle est approuvée, la réponse finale est présentée au client.

    Pourquoi ce système de bibliothèque numérique est important

    AdobeStock 1153892723Le framework RAG apporte plusieurs avantages significatifs au domaine des modèles de langage :

    1. Extensibilité : En découplant le processus de récupération des connaissances du modèle de langage pré-entraîné, RAG permet une intégration facile de nouvelles informations à jour. La collection est toujours en expansion et de nouvelles informations peuvent être ajoutées à tout moment ; un LLM devrait être ré-entraîné chaque fois que du nouveau contenu est ajouté, résultant en des coupures de connaissances à certaines dates. En conséquence, les réponses sont basées sur des sources réelles plutôt que sur la simple "mémoire" et la bibliothèque peut être mise à jour sans reconstruire l'ensemble du système.
    2. Spécialisation : Les modèles RAG peuvent être adaptés à des domaines ou cas d'utilisation spécifiques en organisant le corpus de documents dans lequel ils puisent. Cela permet la création de systèmes de questions-réponses puissants et spécifiques à un domaine.
    3. Interprétabilité : Le framework RAG fournit une trace claire des informations utilisées pour générer une réponse. Chaque élément d'information peut être retracé jusqu'à sa source. Cette transparence peut être cruciale dans des applications où la provenance de l'information est importante, comme dans les contextes médicaux ou juridiques.
    4. Efficacité : En utilisant une combinaison de techniques de récupération et d'algorithmes de classement, RAG peut rapidement passer au crible de vastes quantités d'informations et se concentrer sur les éléments les plus pertinents, réduisant la charge de calcul sur le Generator.

    Applications dans le monde réel

    Tout comme les bibliothèques servent de nombreux objectifs, les systèmes RAG sont polyvalents :

    • Systèmes de documentation technique qui restent à jour avec les dernières mises à jour
    • Systèmes de service client qui peuvent accéder et comprendre les politiques de l'entreprise
    • Outils de recherche qui peuvent trouver et synthétiser des informations de multiple sources
    • Systèmes éducatifs qui fournissent des explications précises et bien documentées

    RAG transforme l'IA d'un système qui se contente de mémoriser l'information en un système qui peut activement rechercher, évaluer et présenter l'information - comme un système de bibliothèque de classe mondiale, mais à la vitesse numérique. Alors que nous continuons d'explorer les subtilités de RAG dans les parties suivantes de cette série d'articles, gardez à l'esprit ce cadre fondamental et comment ses composants travaillent ensemble pour créer un système qui n'est pas seulement un entrepôt de connaissances statiques, mais un participant actif et dynamique dans la quête de la compréhension.