RAGtime

Une solution de testabilité des LLM utilisée pour comparer des IA
entre elles et entre différentes versions d’une même solution,
permettant d’éviter des régressions de qualité.

Le problème

Le succès phénoménal de ChatGPT suite à sa mise en service en novembre 2022 a incité les entreprises et les administrations à se doter de chatbots internes aux performances équivalentes et adaptés à leurs données internes. De plus, pour une partie d’entre elles, l’utilisation de systèmes hors de leur cloud n’est pas envisageable pour des raisons de sécurité et de propriété des données.

L’approche RAG, pour Retrieval Augmented Generation, ou Génération Augmentée par la Recherche, s’est développée pour répondre à ces contraintes. Le RAG permet de proposer des chatbots qui utilisent les données internes de la structure tout en interagissant à la manière d’un chatbot.

Si l’approche RAG fonctionne très bien et a donné lieu à l’émergence de nombreux projets / startups / produits, elle pose néanmoins un certain nombre de difficultés, notamment celle de son évaluation. Dans le contexte du RAG en effet, les réponses renvoyées par le système sont des phrases ou des paragraphes entiers pouvant porter sur une multitude de sujets selon la taille du corpus de connaissance, générées de manière originale en fonction d’une infinité possible de questions. Comment alors s’assurer que la réponse renvoyée par le RAG est correcte pour une question donnée ?

Les difficultés les plus fréquentes dans ce genre de système sont :

  • les hallucinations, lorsque le LLM “invente” une information qui peut être fausse ou sans lien avec les chunks récupérés
  • les biais, lorsque le LLM renvoie un texte partial
  • les discours problématiques, insultants, racistes ou toxiques

Il est possible de contrôler autant que possible les textes renvoyés par un LLM, la plupart du temps à l’aide de vérification humaine consommatrice en temps et par essence jamais exhaustive. Que faire alors lorsqu’une nouvelle version du RAG est livrée, suite à une mise à jour de la brique d’indexation et/ou de de génération ? Il n’est pas imaginable de recommencer tous les tests manuels qui avaient permis la mise en production de la version précédente.

La bonne idée

Ragtime est un logiciel d'automatisation des tests conçu pour évaluer les systèmes de RAG (Retriever-Augmented Generation). Contrairement aux tests traditionnels basés sur des réponses fixes, Ragtime valide les réponses en les comparant à des faits réels, offrant ainsi une évaluation plus précise.
Ce processus intelligent permet à Ragtime de détecter et d'identifier les erreurs liées au Retriever, au modèle LLM ou au corpus documentaire, optimisant ainsi la performance et la fiabilité des systèmes de RAG. Grâce à cette approche flexible, Ragtime devient un outil essentiel pour améliorer l'efficacité des modèles d'IA dans des contextes variés.

À propos

RAGtime est un projet soutenu par la DINUM et mené en collaboration avec ReciTAL.

Informations clés
  • Porteur : DINUM
  • Chef de produit : Pierre-Etienne Devineau
  • Participants : ReciTAL
Objectifs du projet
  • Rendre l’équipe Albert autonome sur les tests de sa plateforme.
  • Créer un repo Github Ragtime avec une communauté dynamique.
  • Développer une méthodologie éprouvée.
  • Produire deux LLM fine-tunés.
Stratégie
  • FactGenerator extrait des faits vérifiables à partir des réponses validées par des humains pour tester un RAG de manière agnostique.
  • Les faits extraits sont revus par des utilisateurs humains pour valider leur cohérence et pertinence.
  • Le Validator compare la nouvelle version du RAG (quel que soit le changement) avec les faits validés pour tester sa performance.
  • FactGenerator et Validator utilisent des grands modèles de langue (LLM).
  • Le projet inclut la création d'une bibliothèque pour une mise en œuvre simple de l’approche et l’intégration de LLM open source fine-tunés pour FactGenerator et Validator.
Montant
  • Budget pour 6 mois : 100 000€ pour une équipe externe (experts NLP, développement et déploiement) pour la mise en service.
  • Équipe interne : La DINUM mobilisera une équipe avec une masse salariale équivalente.