RAG et recherche d'informationIA générativeRAG et recherche d'informationIA générative
RAG et recherche d'information11 min de lecture

Le RAG expliqué

La génération augmentée par récupération (RAG) expliquée simplement. Si vous avez besoin d’information sécuritaire provenant d’un chatbot d’IA comme un assistant médical, un tuteur ou un avocat.

Audio de la vidéo française

Écouter l’article

Source

Le Rôle de la Génération Augmentée de Récupération (RAG) en IA

Le RAG expliqué
Sommaire

À retenir

  • Si vous avez besoin d’information sécuritaire provenant d’un chatbot d’IA comme un assistant médical, un tuteur, un avocat ou un comptable, vous utiliserez certainement le RAG.
  • J’espère que vous avez aimé cette vidéo et qu’elle vous a aidé à mieux comprendre les objectifs et les principes du RAG.
  • Avec le RAG, vous avez d’abord besoin de données, ou de connaissances, qui peuvent prendre la forme de documentation, de livres, d’articles, etc.

En utilisant ChatGPT, vous avez très probablement rencontré des réponses comme « Je suis désolé, mais à ma dernière mise à jour des connaissances en janvier 2022 » ou même des réponses complètement fausses. C’est là que le RAG intervient et dit : laissez-moi vous aider en injectant davantage de connaissances (ou de contenu) dans vos interactions avec un LLM afin de l’aider à répondre aux requêtes inconnues et futures.

On entend parler partout de LLMs, de prompts et de RAG. À ce stade, je crois que la majorité d’entre nous savent ce que sont un LLM et un prompt. Mais saviez-vous qu’en ce moment, le RAG est tout aussi important que ces deux éléments et propulse la plupart des applications avec un chatbot que vous utilisez peut-être ? J’ai récemment fait un sondage dans notre communauté Discord Learn AI Together pour savoir si les gens avaient déjà étudié, créé ou utilisé des applications RAG. La majorité a choisi de comprendre à quoi sert le RAG. Il est aussi important que votre manuel pour réussir un cours. Comprendre ce qu’il est est donc très pertinent en IA.

Un LLM, ou grand modèle de langage, est simplement un modèle d’IA entraîné sur le langage pour parler avec les humains, comme GPT-4 dans ChatGPT. Un prompt est simplement votre interaction avec lui. C’est la question que vous lui posez.

Mais si vous rencontrez des problèmes comme des hallucinations ou des biais en utilisant un tel modèle de langage, ou LLM, le RAG, soit la génération augmentée par récupération, entre en jeu.

Clarifions rapidement les hallucinations. Elles surviennent lorsque le modèle retourne des choses aléatoires qui semblent vraies, mais ne le sont pas, simplement parce qu’il ne connaît pas la réponse. En fait, un modèle de langage hallucine constamment. Il ne fait que prédire les mots de façon statistique. Lorsqu’on l’entraîne sur tout Internet, il voit tellement d’exemples qu’il réussit à prédire avec exactitude les prochains mots logiques pour répondre à la majorité des questions. Malgré tout, il hallucine. Il ne comprend pas réellement ce dont il parle et produit simplement, un à la fois, des mots qui sont probables. Ce qui est incroyable, c’est que la majorité de ces hallucinations sont vraies et répondent à nos questions. Certaines sont toutefois de vraies hallucinations de faits ou de scénarios inventés, ce qui peut causer plusieurs problèmes si elles ne sont pas suffisamment contrôlées.

Même s’il existe plusieurs raisons pour lesquelles les LLMs hallucinent, c’est surtout parce qu’ils manquent de contexte pertinent, soit parce qu’ils ne trouvent pas les données pertinentes, soit parce qu’ils ignorent quelles données consulter pour une question précise. Ils ont été entraînés à répondre, pas à dire « Je ne sais pas ». Le RAG résout ce problème en ajoutant automatiquement davantage de connaissances (ou de contenu) à vos interactions avec un LLM.

Pour simplifier : vous disposez d’un jeu de données, ce qui est nécessaire, et vous l’utilisez pour aider le LLM à répondre aux requêtes inconnues et futures des utilisateurs. Il s’agit de la forme la plus simple. Quelques étapes sont nécessaires pour la faire fonctionner, mais voici l’essentiel d’un système basé sur le RAG :

question de l’utilisateur -> recherche automatique d’information pertinente dans une base de données -> retour de la question + l’information pertinente trouvée dans le jeu de données au LLM -> réponse à l’utilisateur

Comme vous pouvez le voir, avec le RAG, nous utilisons le contexte de la question de l’utilisateur et notre base de connaissances pour y répondre. Cela aide à ancrer notre modèle dans les connaissances que nous contrôlons, ce qui le rend plus sécuritaire et aligné. L’inconvénient est que nos réponses se limitent à notre base de connaissances, qui est finie et probablement moins vaste qu’Internet. C’est comme un examen à livre ouvert à l’école. Vous avez déjà accès à la majorité des réponses et devez simplement savoir où elles se trouvent dans votre base de connaissances. Si vous trouvez la réponse dans le manuel, il est assez difficile d’échouer la question et d’écrire quelque chose de faux !

Jerry Liu, PDG de LlamaIndex, a présenté une façon très intéressante de voir le RAG dans le récent épisode de mon balado avec lui :

Si vous y réfléchissez, le RAG est essentiellement de l’ingénierie de prompts, puisque vous cherchez essentiellement une façon d’insérer du contexte dans le prompt. C’est simplement une façon programmatique de faire de l’ingénierie de prompts. C’est une façon de prompter pour réellement récupérer du contexte [dans l’une de vos bases de données, et ce automatiquement].

Il a aussi dit de s’abonner à la chaîne pour en apprendre davantage sur l’IA ! Ok, c’est peut-être simplement une hallucination… mais vous devriez quand même le faire, honnêtement.

Avec le RAG, vous avez d’abord besoin de données, ou de connaissances, qui peuvent prendre la forme de documentation, de livres, d’articles, etc. Vous permettez ensuite au LLM de chercher uniquement dans ces données et de répondre seulement si la réponse se trouve dans cette base de connaissances. De toute façon, si vous avez accès à de l’information exacte comme dans votre manuel scolaire, pourquoi essaieriez-vous plutôt d’inventer autre chose ?

C’est actuellement la meilleure façon de contrôler vos sorties et de rendre votre modèle plus sécuritaire et aligné. En gros, c’est la meilleure manière de garantir que vous donnerez la bonne réponse et obtiendrez votre meilleure note.

Par exemple, nous avons récemment construit un tuteur IA pour répondre aux questions sur l’IA. Nous voulions des réponses exactes pour nos étudiants, autant sur le plan de l’exactitude, donc donner la bonne réponse, que de la pertinence, donc offrir de l’information à jour. Avec le RAG, vous pouvez simplement mettre votre base de données à jour si les choses ont changé. Ce n’est pas grave si toute la bibliothèque PyTorch a reçu une mise à jour majeure hier : récupérez-la de nouveau et actualisez votre jeu de données. Voilà ! Vous n’avez pas à réentraîner un modèle complet ni à attendre que GPT-4 mette enfin à jour la date limite de ses connaissances !

Le processus général du bot est assez simple : nous validons la question, en nous assurant qu’elle concerne l’IA et que notre chatbot doit y répondre, puis nous cherchons de bonnes sources pertinentes dans notre base de données et utilisons finalement ChatGPT pour digérer ces sources et fournir une bonne réponse à l’étudiant.

Si vous avez besoin d’information sécuritaire provenant d’un chatbot d’IA comme un assistant médical, un tuteur, un avocat ou un comptable, vous utiliserez certainement le RAG. Eh bien, peut-être pas si vous écoutez ceci en 2030, mais en ce moment, le RAG est de loin l’approche la meilleure et la plus sécuritaire pour utiliser un chatbot lorsque vous avez besoin d’information factuelle et exacte.

Si vous êtes un lecteur plus technique :

Pour construire un chatbot ou une application basée sur le RAG comme notre tuteur IA, nous commençons par ingérer toutes nos données en mémoire. Pour ce faire, nous séparons tout le contenu en segments de texte, donc des parties fixes ou flexibles de nos données textuelles, par exemple des parties de 500 caractères, puis nous les traitons avec un modèle de plongement, comme text-embedding-ada-002 d’OpenAI. Celui-ci produit des plongements, soit simplement des vecteurs de nombres qui représentent votre texte. Ils vous simplifient la vie et vous permettent de comparer facilement les textes. Vous pouvez enregistrer ces vecteurs dans une mémoire. Pour chaque nouvelle question d’un utilisateur, vous pouvez ensuite répéter ce processus et répondre. Cela signifie créer le plongement de la question avec la même approche et le comparer à tous les plongements présents dans votre mémoire. Vous cherchez essentiellement la réponse la plus probable à cette question dans votre mémoire, comme pendant un examen où vous parcourez les chapitres pour trouver un titre qui semble pertinent pour la question actuelle.

Une fois les plongements les plus semblables trouvés, ChatGPT reçoit la demande de comprendre la question et l’intention de l’utilisateur, puis d’utiliser uniquement les sources de connaissances récupérées pour répondre. C’est ainsi que le RAG réduit les risques d’hallucinations et vous permet d’obtenir de l’information à jour, puisque vous pouvez actualiser votre base de connaissances aussi souvent que vous le voulez. ChatGPT, ou votre modèle de langage actuel, récupère simplement de l’information dans cette base pour répondre.

De plus, comme vous pouvez le voir, il cite toutes les sources trouvées pour la question afin que vous puissiez les examiner et en apprendre davantage. C’est aussi un avantage lorsque vous essayez d’apprendre et de comprendre un nouveau sujet !

Il reste alors beaucoup d’éléments à considérer, comme la façon de déterminer quand répondre ou non à une question, si elle est pertinente ou présente dans votre documentation, comment comprendre de nouveaux termes ou acronymes absents de la base de connaissances de ChatGPT, comment trouver l’information pertinente plus efficacement et précisément, etc. Nous avons amélioré tous ces éléments avec différentes techniques, notamment de meilleures méthodes de chunking, des rerankers, l’expansion des requêtes, des agents et plus encore. Vous pouvez les découvrir dans le cours avancé gratuit sur le RAG que nous avons construit avec Towards AI et Activeloop et dont le lien se trouve ci-dessous.

Avant que certains d’entre vous posent la question, oui, une solution de rechange au RAG serait de faire le fine-tuning de votre modèle sur votre tâche précise. En gros, il s’agit de poursuivre l’entraînement d’un modèle sur vos propres données pour le spécialiser et lui faire ingérer vos connaissances au lieu de toujours devoir les chercher. C’est comme mémoriser le livre avant l’examen plutôt que de l’apporter. J’ai une vidéo qui compare le fine-tuning et le RAG pour vous apprendre quand choisir chaque approche. En bref, le RAG demeure pertinent avec ou sans fine-tuning, puisqu’il coûte beaucoup moins cher à construire et réduit mieux les hallucinations indésirables. Vous forcez le modèle à donner des réponses basées sur une documentation que VOUS contrôlez, pas sur de simples éléments qu’il a ingérés et qu’il régurgitera correctement, espérons-le, comme le font les modèles fine-tunés. Pour revenir aux examens à livre ouvert, c’est comme lorsque les professeurs vous demandent de vous concentrer sur la compréhension de la matière et de la logique plutôt que sur les connaissances elles-mêmes, puisque vous pouvez toujours les trouver dans des manuels ou sur Google. Il en va de même pour les LLMs que l’on complète avec le RAG. De plus, même si ces modèles ont une bien meilleure mémoire que nous, ils ne sont pas parfaits et ne retiendront pas toute l’information que vous leur fournissez. Ainsi, même avec un modèle fine-tuné sur des données hyperprécises, le RAG demeure une approche qui vaut la peine d’être exploitée.

Avant de terminer cette vidéo, je voulais simplement mentionner que nous avons abordé ces deux sujets en profondeur avec des exemples de code dans nos cours sur les LLMs et le RAG si vous voulez mettre ces connaissances en pratique ! Le lien se trouve dans la description ci-dessous.

J’espère que vous avez aimé cette vidéo et qu’elle vous a aidé à mieux comprendre les objectifs et les principes du RAG. Si c’est le cas, partagez-la avec un ami ou votre réseau afin de diffuser ces connaissances et d’aider la chaîne à grandir !

Merci de m’avoir lu !

Louis


Références

► Découvrez notre cours gratuit sur le RAG de la certification Gen AI 360 Foundational Model (construit en collaboration avec Activeloop, Towards AI et Intel Disruptor Initiative) : https://learn.activeloop.ai/courses/rag 

►Twitter : https://twitter.com/Whats_AI 

►Mon infolettre (mes mises à jour et nouvelles sur l’IA expliquées clairement) : https://louisbouchard.substack.com/ 

►Soutenez-moi sur Patreon : https://www.patreon.com/whatsai 

►Rejoignez notre Discord sur l’IA : https://discord.gg/learnaitogether 

Comment commencer en IA et en ML ? Un guide complet : ►/fr/learnai/

Discussion

Commentaires

Chargement

Aucun compte requis. Votre nom et votre commentaire seront publics, alors n'incluez pas de renseignements privés. Consultez la page de confidentialité pour les détails.

Continuez à apprendre

Vous voulez le côté pratique de l'IA, sans le brouillard marketing ?

Je partage ce qui est utile sur YouTube, Substack et dans mes guides d'ingénierie IA.

FAQ

Qu’est-ce que la génération augmentée par récupération ?

Le RAG récupère de l’information pertinente dans une source de connaissances contrôlée et l’ajoute au prompt du modèle de langage.

Quelles données un système RAG peut-il utiliser ?

Sa base de connaissances peut contenir de la documentation, des livres, des articles, des dossiers et d’autres contenus auxquels l’application a le droit d’accéder.

Comment le RAG réduit-il les hallucinations ?

Il fournit au modèle des preuves actuelles et propres à la tâche, même si la récupération et la génération de la réponse peuvent encore échouer.

Pourquoi le RAG est-il utile pour les assistants spécialisés ?

Les outils médicaux, juridiques, comptables et éducatifs ont besoin de réponses ancrées dans des sources approuvées du domaine plutôt que dans la seule mémoire du modèle.

Le RAG garantit-il une réponse sécuritaire ?

Non. Les systèmes à haut risque exigent quand même des sources de qualité, des autorisations, des évaluations, des citations, la capacité de s’abstenir et la supervision d’experts.

Comment mettre à jour un système RAG lorsque ses sources changent ?

Actualisez les documents et l’index de la base de données de récupération. Vous n’avez pas à réentraîner le modèle de langage simplement parce que les faits ont changé.