De nombreuses entreprises souhaitent mettre en place une solution RAG (Retrieval Augmented Generation) basée sur l’IA générative et les données de l’entreprise. Elles cherchent à exploiter au mieux les données et les connaissances internes afin de les valoriser et d’améliorer leur productivité et leurs performances grâce au RAG.

Pour déployer un RAG, trois grandes briques sont essentielles :

  • Des données vectorisées issues de bases et de documents de référence,
  • Un LLM,
  • Une solution de requêtage (Prompting).

La mise en place de solutions RAG a été largement simplifiée par l’arrivée de frameworks LLM tels que LangChain, LlamaIndex et Ollama, qui facilitent le développement de solutions d’IA générative et de RAG.

L’accès à des LLM puissants et open source n’a jamais été aussi simple, et leur mise en place ne nécessite plus des infrastructures coûteuses. Un investissement de quelques milliers d’euros permet de démarrer rapidement et efficacement un projet de RAG interne.

Parmi les usages typiques des RAG modernes, on retrouve :

  • La mise en place de hotlines et de services client intelligents,
  • La recherche dans la documentation existante de l’entreprise,
  • L’assistance technique ou fonctionnelle,
  • La capitalisation sur l’expérience de l’entreprise,
  • L’optimisation de l’utilisation d’un logiciel interne,
  • L’interrogation des règles métiers de l’entreprise.

Cependant, la mise en place d’un RAG donnant des réponses de qualité aux questions des utilisateurs nécessite de bien maîtriser chacune des briques et des étapes de mise en place.

Bien alimenter son RAG

Sélection des données

La qualité des données est essentielle pour la mise en œuvre d’un RAG. Toute information erronée sera traitée avec la même importance qu’une information correcte par le LLM, ce qui peut fausser les résultats. Une donnée fausse, répétée plusieurs fois, risque de prendre le dessus sur des informations exactes.

Ainsi, les données fournies au RAG doivent être vérifiées par un expert ou provenir de sources sûres et validées. Il est contre-productif d’alimenter un RAG avec des données périmées ou non validées.

Critères de validation des sources :

  • Appartiennent-elles bien à l’entreprise ?
  • Sont-elles pertinentes pour le sujet traité par le RAG ?
  • Ont-elles été validées ?
  • Sont-elles toujours d’actualité ?

Sécurisation des données

Les données fournies au RAG doivent être expurgées des informations confidentielles :

  • Mots de passe,
  • Noms de machines, adresses IP, ports,
  • Données clients : numéros de téléphone, numéros de compte, de contrat, etc.

Il faut également s’assurer qu’elles ne contiennent pas de contenus malveillants :

  • Liens cachés vers des sites frauduleux,
  • Données dissimulées (ex. texte blanc sur fond blanc),
  • Contenus frauduleux dans des images.

Vectorisation des données

De nombreuses solutions permettent de vectoriser les données, allant d’approches basiques à des méthodes avancées.

Cette étape est cruciale pour garantir la qualité des réponses du LLM. Une mauvaise vectorisation entraînera des résultats incohérents.

La phase de vectorisation comprend :

  1. Le découpage des données en « chunks » : les documents sont fragmentés en sections de taille variable, avec des relations logiques entre elles.
  2. Le chargement dans une base de données vectorielle.

Des solutions d’analyse sémantique peuvent améliorer le découpage, et plusieurs essais sont souvent nécessaires pour ajuster les paramètres.

Selon le type de contenu (texte, graphique, tableau, document légal, procédure technique), les paramètres doivent être ajustés. Pour les données graphiques ou tableaux, des solutions OCR et des LLM de lecture peuvent être employées.

On peut améliorer la précision en fournissant des métadonnées sur le contexte et le sujet du document.

Choix de la base de données vectorielle

Le choix d’une base vectorielle influence la rapidité et la qualité des réponses. Si la quantité de données est importante, une base spécialisée est recommandée.

Options disponibles :

  • Solutions en mémoire : Bibliothèques Python comme Faiss, idéales pour des tests ou POC.
  • Bases de données vectorielles : Pgvector pour PostgreSQL, Chromadb, Redis, etc.

Fonctionnalités essentielles :

  • Recherche de similarité vectorielle,
  • Opérations sur les vecteurs,
  • Intégration avec des frameworks IA.

Choisir son LLM

Le choix du LLM doit tenir compte de plusieurs facteurs :

  • Puissance machine disponible,
  • Budget alloué,
  • Langues
  • Spécialisation (généraliste, scientifique, financier, etc.).

Le choix entre LLM généraliste et un LLM spécialisé change fortement la qualité des réponses mais aussi le coût de mise en place et de maintenance.

Les LLM peuvent être déployés localement (ex. Llama) ou utilisés via des API cloud, avec un suivi rigoureux des coûts.

Des tests et des comparaisons devront être réalisés pour trouver la bonne solution entre les différentes possibilités

On part généralement d’un LLM Généraliste pour aller vers un LLM spécialisé en avançant pas à pas.

Contrôle et tests du RAG

Pour garantir la fiabilité du RAG, il est essentiel de :

  • Mettre en place des robots de vérification,
  • Définir des jeux de données de tests (questions/réponses attendues),
  • Évaluer les résultats et mesurer le niveau d’hallucination du système.

Des jeux de tests couvrant les différents aspects du RAG :

  • Les données sources sont-elles bien dans les réponses et les analyses du LLM ?
  • Le découpage en chunk et l’intégration sont-ils corrects et optimaux ?
  • Le LLM donne-t-il des réponses cohérentes ?
  • ..

Les tests permettent de valider les choix de données, de vectorisation, de base et de LLM pour assurer une performance optimale.

Une automatisation des tests et des vérifications régulières seront nécessaires, dans un premier temps, pour évaluer sa solution et sa qualité puis permettre de l’optimiser

Chaque étape de mise en œuvre est importante et doit être testée et affinée pour avoir les résultats les plus justes.

Une fois toutes les étapes optimisées, le gain de productivité, de temps de recherche dans ses connaissances, la facilité d’accès et de consultation d’informations complexes et volumineuses seront sans équivalent.