Génération Augmentée de Récupération (RAG) : exploitez l’IA générative avec vos données internes
28 octobre 2024
Depuis l’avènement de l’intelligence artificielle (IA), une des applications les plus courantes en entreprise est le RAG (Retrieval Augmented Generation), une méthode qui repose sur la génération de réponses en s’appuyant sur des données préalablement indexées. Contrairement à l’entraînement d’un modèle de langage, qui nécessite un travail fastidieux de génération de données d’entraînement et beaucoup de ressources, le RAG utilise le modèle tel qu’il est. Ce modèle n’évolue pas, n’apprend rien, et pourtant il répond à des sujets qu’il ne connaît pas. Voyons comment cela fonctionne et ce que vous pouvez en tirer.
Qu’est-ce que le RAG (Retrieval Augmented Generation) ?
Le RAG est une technique, une sorte de recette. Ce n’est pas un produit en tant que tel, même si de nombreux produits du marché commencent à le présenter comme tel. Cette recette contient les ingrédients suivant :
- Une indexation de vos données dans une base vectorielle
- Un système de recherche d’informations pertinentes dans cette base qui correspond à la question posée par l’utilisateur.
- Une interaction avec un modèle de langage (LLM) permettant de donner toutes ces informations pour générer une réponse pertinente
Pour rappel, on n’entraîne donc pas le modèle de langage sur vos données internes. On va faire en sorte de donner assez d’informations au LLM pour qu’il génère une réponse prenant en compte des informations qu’on lui a données.
La grande différence avec les méthodes de recherche traditionnelles est que le RAG repose sur des données vectorielles. Ces données sont des points dans un espace à plusieurs dimensions.
En les reliant entre eux, on obtient un vecteur. C’est cette représentation dans l’espace qui est utilisée pour rechercher des correspondances avec plus de finesse que les moteurs de recherche traditionnels (par représentation syntaxique).
L’indexation vectorielle : transformer un texte en vecteurs
Le processus qui permet de passer du texte à une représentation vectorielle s’appelle l’embedding. Ce concept, bien que populaire aujourd’hui, n’est pas nouveau. Il repose sur des années de recherche dans le domaine du machine learning. Ce qui le rend particulièrement utile, c’est sa capacité à prendre en compte non seulement les mots eux-mêmes, mais aussi leur sens dans le contexte de la phrase.
Prenons un exemple avec les phrases suivantes :
- « La SPA s’occupe des animaux domestiques »
- « Il y a beaucoup de chiens recueillis par les associations de défense des animaux »
D’un point de vue syntaxique, seul le mot “animaux” est commun entre ces deux phrases. Si on s’en tient à une comparaison par termes, elles sont donc très différentes. Et pourtant, dans un espace vectoriel, elles seront proches car elles portent sur un sujet équivalent. C’est ce que permet l’embedding. Il va donc plus loin que la syntaxe. La sémantique est l’objet d’entraînement de cette technologie.
La recherche sémantique : le cœur du RAG
Lorsque l’utilisateur pose une question, celle-ci est elle aussi transformée en un vecteur. Une recherche est ensuite effectuée dans la base de données vectorielle pour identifier les données les plus “proches” de la question. C’est bien une notion de distance dans l’espace qui est utilisée. Comme les vecteurs ont été créés en prenant en considération la sémantique des phrases, ce mécanisme est particulièrement efficace pour trouver des informations sur lesquelles portent la question.
Continuons avec notre exemple précédent. Imaginons que la question soit la suivante : “Quels sont les animaux que l’on peut trouver à la SPA ? ». Les deux phrases préalablement indexées vont être considérées comme proches. Nettement plus que si on avait eu d’autres phrases comme : “la SPA existe depuis 176 ans”, “le labrador est la race de chiens préférée des français”, …
Le modèle de langage (LLM) entre alors en jeu. Il génère une réponse en utilisant les éléments retrouvés dans la base de données vectorielle. En effet, on envoie au LLM une question qui ressemble schématiquement à :
Réponds à la question: “Quels sont les animaux que l’on peut trouver à la SPA ?”.
Utilise les informations suivantes si elles sont utiles :
La SPA s’occupe des animaux domestiques
Il y a beaucoup de chiens recueillis par les associations de défense des animaux
Cela permet au modèle de répondre correctement, même s’il n’avait jamais été entraîné sur des données correspondant à la question.
Le Processus d’indexation des données
Vous l’aurez compris, cette indexation est indispensable pour faire fonctionner le RAG. Il existe différentes solutions pour la mettre en application. Certaines solutions « tout-en-un » permettent d’indexer rapidement les documents, avec une qualité acceptable, tandis que d’autres méthodes plus manuelles offrent un contrôle plus précis. Les documents sources peuvent être de différents types : PDF, PowerPoint, Excel, Word, audio, vidéo, et tout ce qui est accessible par des URLs ou des APIs.
Mais il y a une subtilité qui rend l’exercice assez délicat. Il est indispensable de découper les contenus en morceaux pour pouvoir les indexer efficacement. Cette contrainte vient directement de la nature de la transformation en vecteurs, qui se fait dans un espace défini. Selon le moteur d’embedding utilisé, cet espace vectoriel varie entre quelques centaines et quelques milliers de dimensions. On ne peut donc pas transformer tout le texte de cet article en un seul vecteur sans faire des approximations.
C’est dans le choix du modèle d’embedding, la méthode de découpage, et enfin les stratégies utilisées pour identifier les bonnes informations à choisir que va se jouer une grande partie de la qualité des réponses apportées.
RAG : L’alliance puissante entre IA et données internes
Le RAG est une méthode puissante pour tirer parti des capacités des LLM tout en travaillant avec des données internes spécifiques à une entreprise. Il permet de garder un modèle inchangé, tout en l’enrichissant au moment opportun avec des informations pertinentes, extraites grâce à une recherche vectorielle fine. Les étapes clés – indexation des données, transformation en vecteurs, recherche dans l’espace vectoriel et génération de réponses via un LLM – offrent une flexibilité et une pertinence accrues dans les réponses fournies aux utilisateurs.
Associé aux capacités des LLM, on peut ainsi proposer aux utilisateurs une interface nettement plus avancée qu’un moteur de recherche classique. On peut poser des questions qui ne nécessitent pas d’utiliser des termes précis, les réponses peuvent porter sur tous types de documents, et elles sont créées dans un langage naturel. De plus, la barrière de la langue n’en est plus une, le LLM peut répondre dans une langue qui n’est pas celle d’origine des documents.
Ces raisons expliquent l’engouement des entreprises pour mettre en place ce type de solution, mais il ne faut pas sous-estimer le travail spécifique nécessaire. De plus, le RAG offre un avantage majeur en termes de souveraineté des données, car il permet aux entreprises de garder le contrôle sur leurs informations sensibles tout en bénéficiant des capacités de l’IA générative.
CTO Projets