Comment faire du RAG dans ChaGPT ?

Comment faire du RAG dans ChaGPT ? La technique du retrieval-augmented generation peut être utilisée au sein de l'assistant intelligent d'OpenAI. Le point sur la technique à suivre.

Permettant d'associer une base de connaissances ad hoc à un modèle de langue généraliste (LLM), le RAG, pour retrieval-augmented generation, peut tout à fait être utilisé dans le cadre de la version publique de ChatGPT, tout du moins dans sa formule orientée API. De même, il est aussi possible d'appliquer cette méthode à l'édition Azure de l'assistant d'OpenAI. "Ces différentes versions de ChatGPT pourront toutes deux ingérer un contexte en provenance d'une base de documents", confirme Ghiles Cherfaoui, tech lead data et data science au sein de l'ESN Inetum.

Pour gérer du RAG dans ChatGPT, on pourra développer une solution de recherche (retrieval) qui se connectera à l'API de la solution pour intégrer aux invites des données glanées dans l'index de la base documentaire. Des données évidemment en cohérence avec la question posée. Autre solution, on pourra recourir aux GPTs, une fonctionnalité incluse dans ChatGPT+, conçue pour cloner ChatGPT en vue, dans un second temps, de l'associer à une infrastructure de RAG, avec à la clé une base de données spécifiques.

Les GPTs se présentent sous la forme d'instances privées du ChatGPT d'OpenAI qui donneront accès au prompt system de la plateforme. "Ce qui permettra d'associer l'assistant à un processus de RAG en mode invite", explique Jean-François Gaudy, directeur de l'innovation chez Inetum. "Au sein d'une compagnie d'assurance par exemple, on pourra injecter dans l'invite toutes les informations nécessaires pour extraire les données clés d'un sinistre, en vue in fine d'automatiser la déclaration d'incident." Il pourra s'agir notamment de l'ensemble des documents relatifs à la description du sinistre en question.

Principale différence avec une solution de RAG classique : la vectorisation des documents nécessaire pour la génération du résultat final ne sera pas réalisée en amont au sein de la base de fichiers, mais à la volée au moment où le contenu sera intégré au prompt de ChatGPT. Ce qui se traduira par un temps de réponse nettement plus long, de plusieurs secondes a minima.

Parmi les bonnes pratiques à suivre, il est recommandé d'opter pour la version de ChatGPT avec un nombre de tokens en adéquation avec les besoins du projet. "La version 3.5 de GPT est équipé d'un buffer de tokens (de 4 096 tokens, ndlr) qui ne sera pas suffisant pour faire du Rag", prévient Didier Gaultier, head of AI au sein d'Orange Business. "Il est donc plutôt conseillé de partir sur la version GPT 4 de ChatGPT qui se révélera nettement plus adaptée (elle s'élève à 8 192 tokens, ndlr)."

Techniquement, le RAG consiste à découper les documents contenus dans la base de connaissances en sous-parties ou chunks. La taille de ces derniers sera tributaire du nombre de tokens pris en charge par ChatGPT. Plus la finesse des chunks sera grande, plus l'intégration au prompt sera aisée. "De la finesse des chunks dépendra aussi la pertinence de la réponse", insiste Didier Gaultier.

Dans Azure OpenAI, le principal avantage réside dans la mise en conformité avec les contraintes éventuelles de confidentialité. "Azure OpenAI pourra garantir un niveau de confidentialité qui recouvrira à la fois les documents de référence du RAG, mais aussi les prompts et les réponses du LLM", commente Didier Gaultier. "Nous avons développé notre propre front-end pour gérer le RAG dans ChatGPT sur Azure, en nous basant sur les API Azure OpenAI dans la mesure où Azure Studio ne nous paraissait pas suffisant."

Dernier avantage d'Azure OpenAI : le clone de ChatGPT qu'il permet de mettre en œuvre permettra de bénéficier de l'infrastructure de stockage du cloud de Microsoft pour gérer les documents.