Notre

blog

RAG • Améliorez vos modèles d’IA avec la Génération Augmentée par Récupération

RAG • Améliorez vos modèles d’IA avec la Génération Augmentée par Récupération

Les modèles d’Intelligence Artificielle sont de plus en plus présents dans notre vie. Leur capacité à générer rapidement des réponses à nos questions est une aide précieuse dans notre quotidien. 

 

Cependant ces modèles peuvent être limités. Plusieurs techniques et framework ont vu le jour pour y palier. Parmi eux, nous retrouvons la Génération Augmentée par Récupération (RAG) qui permet de réduire les problématiques liées à la base de connaissance fixe de ces modèles d’IA. 

 

Qu’est ce que la Génération Augmentée par Récupération ou RAG ? 

Ce framework IA est une technique qui consiste à donner plus d’informations à un modèle LLM (Grands modèles de langage) à partir de données et documents extérieurs pour répondre à une question ou accomplir une tâche. Ces données extérieures apportent du contexte au modèle. 

 

En combinant la récupération d’information avec la capacité de raisonnement d’un modèle, on obtient un modèle capable de répondre à des questions en utilisant des documents spécifiques, le plus souvent non disponibles dans sa base de connaissance initiale.

 

Parmi les cas d’utilisation, nous retrouvons les chatbot. En donnant accès temporairement à des données internes à l’entreprise, on obtient des réponses plus précises et plus spécifiques à un domaine. 

 

Quels sont les avantages de la RAG ?

Amélioration de la précision et de la véracité des réponses 

En mettant en place une RAG, on donne des documents d’actualités et surtout spécifiques à notre utilisation, permettant ainsi une amélioration de la précision et donc des réponses plus fiables.

 

Adaptation plus rapide

La RAG permet d’adapter plus rapidement un modèle générique à un cas d’utilisation spécifique. Sans avoir à réaliser un entraînement intensif, on peut intégrer de nouvelles informations rapidement, sans avoir à modifier le modèle de base.

 

Aucun coût de fine-tuning

Le fine-tuning* est une technique très utilisée lorsqu’on parle de rendre un modèle générique plus spécifique, mais il représente un coût élevé : puissance de calcul, stockage du modèle, préparation des données d’entrainement. 
Avec la RAG, on évite les coûts du fine-tuning étant donné que nous récupérons les données à la volée.

 

*Le fine-tuning est une méthode qui consiste à utiliser un modèle pré-entrainé et l’adapter à une tâche spécifique en le ré-entrainant, c’est-à-dire en modifiant certaines de ces couches, paramètres et en lui fournissant un ensemble de données ciblées.

 

Transparence

Les réponses données par un modèle peuvent parfois sembler apparaître comme par magie. La RAG permet de rendre ces réponses plus prévisibles et transparentes. Que ce soit pour la mise en place ou l’utilisation du modèle, en regardant les documents récupérés par le modèle, on comprend plus facilement le « comment » de la réponse. 

 

Quels sont les inconvénients ? 

Dépendant de la qualité de recherche

La RAG est extrêmement dépendant de la qualité du système de recherche. Les réponses générées sont de qualité équivalente à la qualité de recherche. Si les documents récupérés par le système de recherche ne sont pas les bons, la réponse peut être incomplète, voire erronée.

 

Dépendance aux documents

Même principe, si les documents fournis sont erronés alors le modèle répondra mal.

 

Coût de stockage et maintenance

Même si le RAG permet d’éviter les coûts liés au fine-tuning, il reste nécessaire de stocker la base documentaire. La mise en place de l’infrastructure et sa maintenance représentent des frais supplémentaires. 

L’exploitation peut également nécessiter d’ajouter des nouvelles sources d’informations régulièrement, ajoutant des coûts supplémentaires.

 

Optimisation et mise en place

La mise en place d’une RAG nécessite la gestion d’une base vectorielle et d’un modèle d’indexation efficace. La RAG est rapidement limitée par la qualité du modèle d’indexation. 

De plus, la recherche vectorielle va aussi avoir un fort impact sur la génération de la réponse.

 

Les bases pour mettre en place la Génération Augmentée par Récupération (RAG) 

 

Le framework RAG est composé de 4 étapes clé : 

  • Indexation 
  • Récupération 
  • Augmentation 
  • Génération 

 

Indexation 

L’indexation, c’est la transformation des documents en vecteur mathématiques via un modèle d’embeddings. 
 

Avant sa conception, il va falloir effectuer des choix : 
 

Quel modèle d’embedding ? : Le choix du modèle va avoir un impact conséquent dans la conception de l’architecture : taille des vecteurs, qualité des recherches, récupération de texte…

Comment stocker les vecteurs ? : base en mémoire ou base vectorielle ? 

Quel découpage ? : comment séparer les documents ? Par paragraphe ? Par taille de texte ?

 

C’est sûrement l’étape la plus importante lors de la mise en place d’une RAG ! Il peut être intéressant d’expérimenter sur cette partie afin d’être sûr d’effectuer les meilleurs choix pour son cas d’utilisation.

 

Car comme souvent, il n’y a pas de bonnes ou mauvaises réponses… tout va dépendre du projet, de ses objectifs, du contexte. Si on souhaite limiter le coût d’utilisation d’une API, découper par taille de token est une solution, mais si on souhaite conserver une logique dans les chunks, alors découper par paragraphe est sûrement plus pertinent…

 

Autres exemples : 

Modèle : Pour trouver un modèle d’embedding, il existe un « leaderboard » comparant les différents modèles : https://huggingface.co/spaces/mteb/leaderboard 
On retrouve sur ce classement plusieurs modèles comparés selon plusieurs tâches : classification, retrieval. Mais également, classé par langue. La plupart des modèles d’IA sont entraînés sur des jeux de données anglais, alors parfois, ces modèles sous-performent en français. 

 

Stocker les vecteurs : Base en mémoire vive: FAISS https://faiss.ai/index.html

 

Base cloud : MongoDB Atlas https://www.mongodb.com/products/platform/atlas-vector-search

 

Base open-source local persistante : QDrant https://qdrant.tech/ 

 

Récupération

La récupération consiste à extraire les documents les plus pertinents en réponse à une question utilisateur. 

 

Comment ? La question est transformée en vecteur dans un espace mathématiques, de la même manière que les documents indexés. Ensuite, une recherche est effectuée pour identifier les extraits les plus proches du vecteur requête.

 

La méthode de recherche dépend du stockage des vecteurs et repose sur différentes metrics de similarité. 

 

Les trois principales sont :

  • Dot product : Évalue la proximité de deux vecteurs en multipliant leurs coordonnées. Plus le produit est élevé, plus les vecteurs sont proches.
    Exemple : Un algorithme de recommandation peut comparer les préférences d’un utilisateur à une base de films pour suggérer les plus pertinents.
     
  • Cosine similarity : Mesure l’angle entre deux vecteurs, indépendamment de leur longueur, avec une valeur entre -1 (opposés) et 1 (identiques).
    Exemple : Deux documents avec des mots-clés similaires, même en proportions différentes, auront une forte similarité cosinus.
     
  • Euclidean distance : Calcule la distance réelle entre deux points dans un espace. Une distance faible signifie une forte similarité.
    Exemple : En reconnaissance d’image, deux visages similaires auront une faible distance euclidienne.

 

Comparaison des bases de données


  • FAISS : Supporte uniquement la distance Euclidienne.


     



  • MongoDB Atlas : Utilise la similarité cosinus par défaut, mais peut aussi appliquer la distance Euclidienne.


     


  • Qdrant : Offre le plus de choix avec Dot Product, Cosine Similarity, Euclidean Distance et Manhattan Distance.

 

Comment choisir ?

Le choix dépend du type de données et de l’usage :

  • Texte et NLP → Cosine Similarity, car la direction du vecteur compte plus que sa longueur.
  • Images et signaux → Euclidean Distance, qui capture les différences réelles entre représentations numériques.
  • Recommandations → Dot Product, rapide pour classer les résultats par pertinence.
  • Données spatiales ou structurées → Manhattan Distance, adaptée aux déplacements en grille (ex : logistique, déplacements urbains). 

 

Dans la plupart des cas pour du texte, Cosine Similarity est privilégiée pour sa robustesse face aux variations de longueur des documents. 

 

Augmentation

L’augmentation est la partie « entre les deux ». À partir des documents de l’étape Récupération et la question de l’utilisateur, on va créer une “Augmented Query”, c’est-à-dire une question améliorée par les documents. L’augmentation est en réalité du prompt engineering. 

L’objectif est d’orienter le modèle à répondre à l’utilisateur en utilisant les documents. 

 

Un prompt simple utilisé en RAG est le suivant :

Context information is below.

{retrieved_chunk}

Given the context information and not prior knowledge, answer the query.

Query:{user_query}

Answer:

 

 

Très basique au départ, il est possible et même recommandé d’améliorer ce prompt afin de diriger le model de génération vers la sortie voulue. 

Cela peut comprendre le ton, le format, un “safe prompt” (empêcher le modèle de répondre certaines choses, comme divulguer son prompt system, les documents…). 

 

Génération

C’est l’étape finale de notre procédure. On va finalement pouvoir faire appel à modèle de génération. Une fois que la question de l’utilisateur augmentée avec nos documents est prête, il nous reste simplement à faire appel au modèle que l’on souhaite utiliser. 

Sur ce point, on est encore une fois totalement libre de choisir le modèle à utiliser : l’API Mistral et ses modèles open-source ? L’API d’OpenAI plus coûteuse ? Un modèle local ? 

 

Le choix du modèle est le vôtre. Il est également possible d’utiliser des modèles fine-tunés. Par exemple, si vous avez votre propre modèle fine-tuné pour répondre d’une manière spécifique, mais qu’il lui manque des informations, alors il est totalement possible de combiner RAG et fine-tuning. 

 

Il est également possible d’ajouter des étapes supplémentaires à la génération, comme par exemple l’augmentation via context, ou le reranking des informations pertinentes.

 

Pour conclure

La Génération Augmentée par Récupération (RAG) ouvre de nouvelles perspectives pour améliorer la précision et l’adaptabilité des modèles d’IA. 

 

Chez Elosi, nous innovons en intégrant ces technologies pour répondre aux besoins spécifiques de nos clients. 

 

Besoin d’accompagnement pour exploiter tout le potentiel de l’IA ? Contactez-nous et construisons ensemble vos solutions de demain. 

 

Pour aller plus loin sur cette thématique : https://docs.mistral.ai/guides/rag/