Se rendre au contenu

Exploration LLM/RAG

Entreprise


Groupe international multidisciplinaire de conseil, d’ingénierie et de management de projet qui intervient dans les secteurs du bâtiment, des infrastructures, de l'eau, de l'industrie et de l’environnement.

Le groupe exerce ses missions dans neuf domaines d’activité : bâtiment, multi-sites, industrie, eau, maritime, environnement, énergie, transport, ville.

Mission

Depuis sa création, l’entreprise a accumulé plusieurs centaines de milliers de documents liés à ses projets et réalisations, tels que devis, notes techniques, cahiers des charges, documentations, factures, plans, etc.

Avec la démocratisation des modèles de langage de grande taille (LLM), l’entreprise a décidé d’explorer cette technologie pour développer un outil de type chatbot, capable de rechercher efficacement des documents via un langage naturel.

L’objectif est d’améliorer l’efficacité et la flexibilité lors de la gestion de nouveaux projets, en retrouvant rapidement des documents similaires afin de mieux capitaliser sur le savoir-faire existant. 

En 2024, la société a exprimé le désir de doter ses équipes d'un agent conversationnel, basé sur un LLM, capable d'accéder à ses millions de documents internes, afin de simplifier la recherche d'informations au sein de cette vaste bibliothèque de connaissances. Par ailleurs, cet agent sera également en mesure d'assister à la rédaction de nouveaux documents en se basant sur les informations présentes dans cette bibliothèque.

Avant de s’engager pleinement dans le développement de cette solution, le groupe souhaite constituer une « task force » chargée de valider la faisabilité du projet et d’explorer les solutions et modèles IA existants.

Mon travail à donc porter sur plusieurs sujets :

  • Définir une stratégie d’intégration du corpus documentaire au sein d’un LLM
  • Conseiller l'entreprise dans le choix d’un modèle d’IA adapté au traitement de ses documents
  • Orienter l'entreprise sur la stratégie de découpage des documents, également appelée "chunking"


Définir une stratégie d’intégration

Au cours de cette phase, nous avons analysé plusieurs stratégies d’intégration de documents à un modèle de langage préexistant. Parmi ces approches, nous avons concentré nos efforts sur l’entraînement d’un modèle spécifique ainsi que sur l’utilisation d’une méthode dite « RAG » (Retrieval-Augmented Generation).


Choix d'un modèle IA

Cette étape est d’une importance capitale pour le bon fonctionnement de l’approche RAG. En effet, un modèle d’IA doit être utilisé pour vectoriser (embedding en anglais) les documents de la société. Si ce modèle n’est pas performant, les documents ne seront pas retrouvés de manière efficace par l’agent conversationnel et les réponses aux questions seront négativement impacté. En prenant en compte les contraintes exposés par les document de la société, nous avons menée une étude comparative des différents modèles de vectorisation et avons pu identifier de très bon candidats pour mener à bien le projet.


Stratégie de découpage (chunking)

Le “chunking” ou fragmentation en français est une méthode permettant de décomposer des informations complexes en éléments plus petits afin d’améliorer le traitement et la compréhension. Dans le contexte de l'IA, la fragmentation des informations peut améliorer la capacité du système d'IA à analyser, récupérer et générer du contenu.


Lors de cette étape nous avons étudier plusieurs stratégies de fragmentation :


  • Fragmentation par taille fixe : les documents sont découpés selon une taille fixe de caractères avec un recouvrement plus ou moins important entre chaque fragment.


  • Fragmentation sémantique : approche nouvelle au moment des faits et proposée par Greg Kamradt’s. L’idée globale est de se servir un modèle de vectorisation permettant de détecter le changement de contexte au sein d’un document. 


Mon travail en collaboration avec le client, nous à donc permis de voir plus clair sur les stratégies et les outils à adoptés pour mettre en place un système RAG au sein d'un LLM. Ceci permet d'envisager plus sereinement le développement d'une solution industrielle future sur les prochaines années.


Environnement technique

Snowflake

Python, Notebooks

Cloud Microsoft Azure

Azure DevOps

HugginFace

Ce projet résonne avec vos besoins ? Discutons-en !