L'ère des Large Language Models (LLMs) a transformé le paysage de l'intelligence artificielle, notamment avec l'arrivée de ChatGPT qui a impressionné par ses capacités de mémorisation et de conversation. 

Toutefois, malgré leur entraînement sur d'immenses corpus de données,  ces modèles présentent certaines limitations lorsqu'il s'agit de répondre à des questions sur des domaines spécifiques ou des événements récents.

C'est ici qu'intervient le concept de Retrieval Augmented Generation (RAG).

Fine-tuning vs. Retrieval Augmented Generation

Le fine-tuning et le RAG sont deux techniques puissantes pour spécialiser un LLM, mais elles opèrent différemment. Le fine-tuning ajuste directement les paramètres du modèle pour le rendre plus spécifique, tandis que le RAG enrichit automatiquement les questions posées au LLM en ajoutant du contexte pertinent.

Les limites du fine-tuning

  • Nécessité de gros volumes de données : Pour obtenir de bonnes performances, le fine-tuning requiert des données qualitatives et diversifiées en grande quantité.
  • Infrastructure coûteuse : Le processus de fine-tuning nécessite une infrastructure puissante, notamment des GPUs.
  • Mise à jour des données : Il est difficile et coûteux de mettre à jour régulièrement les données utilisées pour le fine-tuning.
  • Hallucinations : Le problème des hallucinations (réponses incorrectes ou inventées par le modèle) persiste.

Le RAG, en revanche, surmonte ces limites en ajoutant automatiquement du contexte pertinent aux questions.

Qu'est-ce que le RAG ?

Le RAG combine deux techniques principales : la récupération d'informations (retrieval) et la génération de texte (generation). Cette méthode permet d'ajouter automatiquement du contexte pertinent aux questions posées au LLM, augmentant ainsi la précision et la pertinence des réponses.

Comment fonctionne le RAG ?

  1. Récupération (Retrieval) : Lorsqu'une question est posée, le système RAG commence par rechercher les documents les plus pertinents qui pourraient contenir la réponse. Cette recherche est effectuée en utilisant des techniques de similarité entre la question et des segments de documents (chunks).
  2. Génération (Generation) : Une fois les documents pertinents récupérés, le LLM utilise ces informations contextuelles pour générer une réponse précise.

Exemple de réponse sans RAG

Prenons un exemple concret pour présenter le fonctionnement du RAG. 

Dans le schéma ci-dessous, l’utilisateur pose une question à propos de notre entreprise Aqsone. Le LLM n’ayant pas été entraîné sur des données associées à l’entreprise, il n’est pas capable de répondre, ou alors il donnera une réponse basée sur une hallucination.

Exemple de réponse avec RAG

Dans ce nouveau schéma, le RAG est utilisé. On donne au RAG des documents dans lesquels chercher des informations relatives à la question. Par similarité entre la question et les documents, il détermine quel(s) document(s) contiennent des éléments permettant potentiellement de répondre à la question (Retrieval). La question associée à ces éléments de contexte sont soumis au LLM qui peut donc les utiliser pour répondre à la question (Generation).

Pour aller plus loin

Pour aller plus loin quant à la technique qui est utilisée derrière le RAG, nous pouvons nous baser sur le schéma suivant et les étapes suivantes : 

  • Intégration des documents : some text
    • Les documents sont transformés en chunks, c’est à dire qu’ils sont découpés en plusieurs morceaux de texte
    • Ces chunks sont transformés en vecteurs par un modèle d’embedding
    • Les vecteurs sont stockés dans une base de données
  • Traitement et réponse à la question de l’utilisateur : some text
    • La question de l’utilisateur est également transformée en vecteur
    • Une analyse de similarité est effectuée entre ce vecteur et la base de données de vecteurs pour retourner X chunks de contexte
    • La question et le texte associé aux X chunks de contexte sont envoyés au LLM qui peut répondre à la question

Techniques avancées de RAG

Le RAG peut être optimisé à l'aide de diverses techniques avancées, telles que :

  • Reranking : Réordonner les chunks récupérés par pertinence pour améliorer la qualité des réponses.
  • Fine-tuning du modèle d'embedding : Spécialiser le modèle d'embedding pour les textes spécifiques en entrée.
  • Multi-query : Formuler plusieurs variations d'une question pour augmenter les chances de récupérer des informations pertinentes.
  • Self-query : Utiliser des requêtes construites automatiquement pour affiner la recherche de contexte.

Cas d'usage et démonstrations

Le RAG (Retrieval Augmented Generation) trouve des applications variées et puissantes dans de nombreux domaines. Voici quelques exemples concrets où le RAG peut apporter une valeur ajoutée significative :

Chatbots de support informatique

Description : Ces chatbots sont conçus pour répondre aux questions fréquentes et résoudre les problèmes des utilisateurs en se basant sur une base de connaissances dérivée de questions/réponses et de tickets passés.

Exemple : Un employé tente de se connecter à un réseau sécurisé mais échoue. Il demande au chatbot de support informatique ce qu'il doit faire. Le système RAG cherche dans les tickets passés et les FAQs et trouve une solution documentée pour ce type de problème, fournissant ainsi des étapes claires pour résoudre l'issue.

Chatbots pour l'onboarding des collaborateurs

Description : Ces chatbots assistent les nouveaux employés en fournissant des informations et des ressources nécessaires pour leur intégration dans l'entreprise, en se basant sur la documentation interne.

Exemple : Un nouvel employé demande comment soumettre une demande de congé. Le chatbot récupère les segments de la documentation RH qui décrivent la procédure de demande de congé et fournit une réponse détaillée avec des instructions pas-à-pas.

Découvrez par exemple notre cas d’usage de Chatbot assistant RH.

Chatbots d'aide au diagnostic industriel

Description : Ces chatbots soutiennent les équipes de maintenance en fournissant des diagnostics rapides pour les dysfonctionnements d'équipements, en se basant sur des données de capteurs et des historiques de pannes similaires.

Exemple : Un technicien observe une vibration anormale sur une machine et interroge le chatbot, qui identifie un potentiel problème de roulement en s'appuyant sur des cas passés. Le chatbot fournit ensuite des étapes de diagnostic et des recommandations de réparation, aidant à résoudre le problème plus efficacement.

Chatbot d’analyse de contrats

Description : Ces chatbots sont conçus pour aider les utilisateurs à examiner et comprendre les clauses de contrats. Ils peuvent également identifier de potentielles clauses abusives.

Exemple : Un utilisateur soumet un contrat au chatbot et demande si certaines clauses pourraient être abusives. Le système analyse le document, repère des clauses spécifiques telles que les pénalités de retard excessives ou des conditions de résiliation inhabituelles. Il les soumet à l’utilisateur tout en expliquant les risques associés à ces clauses.

Conclusion

Le Retrieval Augmented Generation représente une avancée significative dans le domaine de l'IA, offrant des solutions efficaces aux limitations des LLMs traditionnels. En combinant récupération et génération, le RAG permet d'améliorer la précision, la pertinence et la spécialisation des réponses, rendant ainsi les interactions avec les systèmes IA plus utiles et pertinentes.

Derniers articles du blog

Découvrez nos articles sur les dernières tendances, avancées ou applications de l’IA aujourd’hui.

Louis
Data Scientist
Aqsone
Squad Com'
Technique

Interprétabilité des LLMs : le rôle des Sparse Autoencoders

En savoir plus
Vue aérienne du Golden Gate Bridge rouge au-dessus de l'eau turquoise, avec des voitures en mouvement.
Diane
Business Developer
Aqsone
Squad Com'
Innovation

L'Intelligence Artificielle au service des achats industriels

En savoir plus
Un ouvrier en casque rouge face à des grues de chantier et des conteneurs dans un port maritime.
Nicolas
Data Scientist
Aqsone
Squad Com'
Portrait

Découvrez Nicolas avec son portrait chinois

En savoir plus