Depuis l’arrivée de ChatGPT et la démocratisation des LLM, Large Language Models, les nombre de cas d’usage concrets en entreprises ne cesse de croitre. On voit de plus en plus l’intérêt de ces modèles et de l’intelligence artificielle générative en général dans un contexte professionnel, notamment pour de la productivité ou de l’automatisation.
Malgré cet engouement on sent qu’il reste encore beaucoup de travail pour assurer une adoption plus large de ces outils là. Les entreprises n’ont pas réellement besoin de modèles de langages généralistes, elles ont besoin de modèles de langages spécialisés sur certains corps de métier bien spécifique et qui soient capable de comprendre le contexte en temps réel.
Actuellement, une des solutions les plus prometteuses à ce problème se base sur les systèmes de RAG, Retrieval Augmented Generation.
Qu’est-ce que la Retrieval Augmented Generation (RAG) ?
Avant d’explique le fonctionnement des RAG expliquons rapidement le fonctionnement d’un modèle de langage classique.
Un LLM est un modèle de réseau de neurones basé sur les Transformers dont l’objectif est de compléter une séquence de mot. Mathématiquement il s’agit de construire une distribution de probabilité sur les mots d’un vocabulaire et d’associer à chaque mot sa probabilité d’être le prochain dans la séquence.
Pour faire cela, les textes sont transformés en tokens mathématiques pour pouvoir être traités de manière vectorielle et compris par le réseau de neurones.
Cette explication brève a simplement pour objectif de rappeler qu’un LLM n’a aucune composante de logique ou de compréhension dans sa version de base. C’est la qualité des données d’entrées qui permette de feindre une logique et une compréhension sémantique.
Ce fonctionnement entraîne une baisse importantes des performances dans pas mal de situations. Si je demande à un LLM « Qui a gagné la dernière coupe du monde ? », son fonctionnement fait qu’il essayera de me donner le nom d’un pays qui est mathématiquement souvent associé à la notion de « coupe du monde » dans son dataset. Il répondra probablement « Brésil » ou « France », mais sans aucune compréhension.
De la même manière, si je demande à un LLM de me donner le résultat de l’opération 1 + 1, certes il me répondre 2 dans son premier message, mais si je lui explique dans le message suivant que la réponse est 3 il demandera pardon et confirmera que la réponse est bien 3.
Ce phénomène a un nom, c’est l’hallucination. Elle existe surtout dans les premiers modèles de LLM, dans leurs versions brutes. Aujourd’hui ce problème est un peu atténué mais reste présent.
Les modèles de RAG permettent de faire en sorte que la réponse fournie par le LLM soit consolider par une base qui contient du contexte fiable sur le sujet en question.
Lorsque je pose ma question au modèle de langage avec un pipeline de RAG intégré, l’algorithme va d’abord transformer ma question en tokens mathématiques pour la vectoriser. Il va ensuite faire une recherche sémantique dans la base de contexte pour trouver des paragraphes qui seraient proches mathématiquement (il s’agit de calculer des distances entre des vecteurs). Une fois qu’il a trouvé des paragraphes qui pourraient permettre de donner une réponse plus précise et fiable, il reformule le prompt initial de l’utilisateur en y ajoutant le contexte trouvé. C’est comme ça que la réponse finale est fournie à l’utilisateur.
Les systèmes basés sur des pipelines de RAG sont assez performants et permettent de créer des assistants plus fiables et capable d’intégrer de nouvelles bases de connaissances en continu. Concernant le second point, on parle aussi de real-time training, apprentissage en temps réel.
Quelles sont les applications de la Retrieval Augmented Generation (RAG) ?
Les pipelines de RAG sont utiles à chaque fois que l’on cherche à créer un assistant qui soit fiable concernant l’information qu’il donne à l’utilisateur. C’est ce qui a rendu cette technique largement utilisée en entreprise.
Résumé de réunions interactif
Parmi les cas d’usage les plus intéressants on trouve les résumeur de réunions interactif. Les RAG permettent de poser des questions sur la base de transcription qui ont été faites automatiquement pendant une réunion.
Des outils comme Fireflies.ai par exemple, permettent de poser des questions du type : « qu’est ce que Martin a dit concernant les nouvelles features qui doivent être lancées ? ». Et le modèle peut non seulement vous donner une réponse fiable, mais il pourra aussi vous donner ses sources en intégrant dans sa réponse l’extrait audio du passage qui répond à la question.
Documentation interne en entreprise
La documentation interne en entreprise est l’autre gros sujets que les RAG permettent de traiter.
C’est le besoin qui revient le plus souvent quand on discute avec les grosses entreprises : construire un système de documentation interne fiable et qui permet de vraiment trouver l’information.
Pourquoi la documentation interne en entreprise est un problème aujourd’hui ?
- On perd du temps en recherchant les informations
- On refait/recode des choses qui ont déjà été faites
- On met en danger la sécurité des données de l’entreprise en se les partageant n’importe où : Whatsapp/Gmail/WeTransfer/etc.
Les LLM (et les modèles d’IA en général) vont permettre une interaction plus naturelle avec les données d’une entreprise et faire gagner énormément de temps à travers des pipelines de RAG.
Des outils comme Dust, permettent d’agréger toutes les bases de connaissances d’une entreprise au même endroit, via des interactions de type chat. On peut connecter le Github, le Slack, les emails, le Google Drive et tout un tas d’autres outils au pipeline de RAG pour centraliser l’information.
Assistant au contact des clients
Lorsque l’on met un assistant au contact d’un client la qualité des réponses fournies doit être irréprochable. On ne peut pas se permettre de laisser un assistant se tromper sur le prix d’une prestation ou sortir de son cadre d’intervention.
Dans ce cas précis, les RAG vont amener de la pertinence aux réponses fournies en extrayant le contexte de l’entreprise directement dans les bases de connaissances.
La possibilité d’avoir un apprentissage en temps réel est très intéressante pour ce cas d’usage et permet de traiter plus facilement les données changeantes en continu.
Par exemple, si on est un site de e-commerce qui vend des t-shirts, il est impossible de ré-entraîner un modèle de langage à chaque fois que les produits, les prix ou le stock évoluent, on doit pouvoir faire ce travail facilement et sans intervention humaine sur les pipelines algorithmiques et les modèles.
Quelles sont les limites aux systèmes de RAG actuellement ?
Malgré les avancées significatives apportées par les systèmes de Retrieval Augmented Generation, il est important de reconnaître qu’ils comportent des limites non négligeables.
Premièrement, la qualité et l’actualité des données dans la base de contexte sont cruciales ; un corpus désuet ou de faible qualité peut conduire à des réponses inexactes ou trompeuses.
De plus, ces systèmes peuvent souffrir d’une latence plus élevée due au processus de récupération des informations pertinentes, ce qui peut être problématique dans des applications nécessitant une réponse en temps réel.
Enfin, il existe un risque de sur-spécialisation où le système devient tellement affiné sur une niche spécifique qu’il perd de sa capacité à généraliser ou à s’adapter à de nouvelles tâches ou domaines, ce qui limite son utilité pour des applications plus générales ou en constante évolution.
Conclusion
En conclusion, au-delà des systèmes de RAG, il est essentiel de mentionner l’essor des techniques de « function calling » qui révolutionnent la manière dont les modèles de langage interagissent avec des fonctions externes pour accomplir des tâches spécifiques.
Cette approche s’inscrit dans la continuité des modèles de RAG. Elle permet aux modèles de langage de non seulement comprendre et générer du texte, mais également d’exécuter des fonctions programmées qui étendent leurs capacités au-delà de la simple génération de texte.
C’est dans ce contexte que des outils comme Langchain ont émergés. Langchain est une plateforme open-source qui facilite la mise en place de pipelines de RAG en permettant aux développeurs de facilement intégrer et orchestrer ces fonctionnalités avancées dans des applications concrètes.
Cela ouvre la voie à des modèles de langage encore plus puissants et adaptatifs, capables de fournir des réponses non seulement contextuelles mais également actionnables, en tirant parti de bases de données dynamiques et de fonctions spécifiques selon les besoins des utilisateurs.
Leave a Comment