Après avoir exploré dans la première partie de cet article les techniques avancées de Few-shot prompting (fournir au LLM des exemples pour qu’il comprenne plus facilement la tâche attendue) et de chain-of-thought (faire raisonner le modèle par étapes pour optimiser ses capacités de raisonnement), nous vous présentons aujourd’hui quelques techniques avancées de retrieval augmented generation (RAG).

Comme décrit dans notre article précédent « Utiliser ChatGPT sur ses données d’entreprise, c’est possible ? », la RAG consiste à enrichir les requêtes d’utilisateurs avec des informations de contexte pertinentes récupérées d’une base de connaissance, avant de les transmettre à un LLM et afin d’améliorer la qualité des réponses de celui-ci.

Schéma fonctionnement d'un LLM après la saisie d'une requête

Néanmoins, ce qui a été présenté précédemment (et qui est représenté par le schéma ci-dessus) est la version la plus simple de la RAG : un ensemble de documents ou de fragments de documents est récupéré de la base de connaissance par recherche par similarité, et fourni directement en contexte au LLM. Cette méthode est déjà suffisante dans nombre de cas, mais elle peut aussi s’avérer limitée, en particulier lorsque la base de connaissances devient volumineuse (centaines de milliers de documents et plus).

Plusieurs problèmes tendent alors à apparaître :

  • Même s’il est réalisé de manière optimisée par une base de données vectorielle, un calcul de similarité est une opération relativement couteuse par rapport à une recherche textuelle classique. De plus, une recherche par similarité ne produit pas toujours de meilleurs résultats : lorsqu’une requête contient des mots-clés très spécifiques (par exemple : « comment reconnaître une morille ? »), une recherche par mots-clés ramènera probablement des informations suffisamment pertinentes pour que le LLM puisse formuler une réponse. Il est alors possible de mettre en place une RAG hybride, qui combine plusieurs types de recherche :
    • Soit en exécutant différentes recherches en parallèle puis en combinant les résultats, par exemple avec un algorithme privilégiant les résultats apparaissant le plus souvent (comme avec la fonctionnalité de reciprocal rank fusion d’ElasticSearch)
    • Soit en fournissant différents outils de recherche au LLM, et en lui laissant choisir le ou les plus appropriés selon la requête de l’utilisateur. Ce choix peut d’ailleurs être réalisé par un mécanisme de type CoT / ReACT, présenté dans la première partie de cet article. Cette technique est appelée self-querying retrieval.
Schéma fonctionnement Prompt LLM
  • Lorsque la base d’informations source devient volumineuse, il peut devenir difficile de trouver directement toutes les informations pertinentes, et seulement celles-ci. Cela pose d’autant plus de difficultés que la requête porte sur un sujet général, ou bien qui apparait à de nombreux endroits dans la base de connaissances.Une étape de compression/filtre de contexte peut alors être insérée, pour augmenter la pertinence du contexte envoyé au LLM. Cette étape peut être réalisée par le LLM lui-même : on lui demande d’évaluer la pertinence de chaque document récupéré par rapport à la requête initiale. Mais un tel travail peut également être réalisé par un modèle entrainé spécifiquement pour réaliser cette tâche (et probablement plus petit que le LLM, donc moins coûteux à utiliser).
Schéma fonctionnement prompt LLM

Ci-dessous un extrait de prompt utilisé pour un filtre de contexte. L’application devra extraire la réponse finale du LLM (Pertinent : OUI/NON/PEUT-ÊTRE) pour conserver ou supprimer les éléments du contexte, avant de composer la requête finale. On peut remarquer que ce prompt combine CoT et few-shot prompting.

extrait de prompt utilisé pour un filtre de contexte

Conclusion : vers des pipelines LLM

Les différentes techniques de prompt engineering examinées dans les deux parties de cet articles – le few-shot prompting, le CoT, la RAG, ainsi que leurs déclinaisons telles que la self-consistency, ReACT, ou la compression de contexte – peuvent être envisagées comme des modules permettant la construction de systèmes plus vastes. Ces modules peuvent être assemblés et combinés en pipelines sophistiqués et adaptés aux besoins spécifiques de chaque cas d’usage.

L’art de construire des applications augmentées par LLM consiste à analyser précisément les cas d’usage et les données disponibles, pour concevoir et implémenter des pipelines appropriés. Par l’utilisation des techniques de prompt engineering, ces pipelines peuvent associer LLMs, modèles d’IA d’autres types, programmes traditionnels et systèmes de stockage et de requêtage de données.

Les entreprises qui maîtriseront l’art de ces assemblages seront celles qui tireront le meilleur parti des capacités des LLM, transformant ainsi l’intelligence artificielle en un puissant levier opérationnel. Les prochains articles de cette série vont s’intéresser aux principaux cas d’usage adressables dès aujourd’hui, ainsi qu’aux architectures correspondantes.

Photo de profil Yann Fontana

Yann Fontana

Architecte data

SUR LE MÊME THÈME

GPT n’est pas le seul LLM !

GPT n’est pas le seul LLM !

GPT n’est pas le seul LLM !

Prompt engineering : libérez le génie de l’IA (1/2)

Prompt engineering : libérez le génie de l’IA (1/2)

Prompt engineering : libérez le génie de l’IA (1/2)

Prompt Engineering : Few-shot prompting et chain-of-thought (Partie 1)

Prompt Engineering : Few-shot prompting et chain-of-thought (Partie 1)

Prompt Engineering : Few-shot prompting et chain-of-thought (Partie 1)