Comment diminuer les hallucinations et améliorer la précision des IA avec le prompt chaining

Comment diminuer les hallucinations et améliorer la précision des IA avec le prompt chaining Le prompt chaining tire parti de la capacité des LLM à s'autocorriger naturellement. Il améliore le taux de précision et la clarté des résultats tout en réduisant drastiquement le risque d'hallucinations.

Tous les LLM peuvent halluciner. Vous l'avez sûrement déjà constaté en utilisant ChatGPT, Claude ou Gemini... Mais lorsque vous vous en rendez compte et demandez à l'IA de vérifier si une source ou une information inventée existe vraiment, elle se corrige et avoue ses torts. C'est précisément la base du prompt chaining, une nouvelle technique de prompting des modèles de langage développée pour améliorer la précision, la clarté et diminuer les risques d'hallucinations.

Qu'est ce que le prompt chaining ?

Le prompt chaining, bien que déjà popularisé en 2024, reste peu utilisé dans les projets d'IA générative. Son fonctionnement est pourtant simple et robuste. Le but est de découper un prompt complexe en différents prompts individuels. Le résultat de chaque prompt étant chaîné (ajouter) au prompt suivant. L'objectif est d'avoir des prompts individuels très simples permettant au modèle de ne traiter qu'une tâche à la fois. La précision générale en est drastiquement augmentée, et le risque de voir des résultats inventés diminue fortement. Il est possible de "chaîner", un, deux, trois voire des dizaines de prompts dans les cas les plus complexes.

Schéma de fonctionnement d'un prompt chaining. © IBM

Pour chaîner un prompt, rien de plus simple. Il suffit d'identifier les différentes tâches à accomplir pour arriver au résultat final. Une fois le prompt découpé en sous prompts, il suffit de les soumettre un par un au modèle avec le résultat précédent de chaque sortie. Le tout se déroule de façon automatique dans votre script avec différents appels API.  Anthropic conseille de formuler des instructions simples et claires dans chaque prompt et d'ajouter des balises XML autour des précédentes sorties du modèle pour aider l'IA à comprendre le contexte. Le processus de prompt chaining nécessite plus de temps à l'élaboration que l'utilisation d'un prompt simple (n'hésitez pas à itérer plusieurs fois pour trouver la formule gagnante) mais le gain de précision est véritablement notable.

Exemple très basique d'un prompt chaining efficace pour réaliser une veille quotidienne avec GPT-4o d'OpenAI :

Prompt 1 (avec GPT-4o + recherche web) : "Réaliser une veille d'actualité sur [SUJET] sur les 24 dernières heures. Utilisez uniquement des sources notoirement crédibles. Rédigez une note de veille complète avec un langage clair et précis."

Prompt 2 : "Voici ci-dessous une veille d'actualité sur le sujet <veille>$Sortie1</veille>. Comment pourrait-on améliorer la clarté et la pertinence de cette veille d'actualité ? Suggérez 10 conseils concrets et actionnables simplement pour améliorer la clarté et la pertinence du texte. Donnez en sortie uniquement et uniquement 10 conseils."

Prompt 3 : "Voici ci-dessous, le texte rédigé d'une veille des 24 dernières heures au sujet de [SUJET]. Vous trouverez également des conseils d'amélioration, ci-après. Appliquez les 10 conseils d'amélioration au texte. Ne donnez en sortie que le texte corrigé. Voici le texte de veille à corriger : <veille>$Sortie1</veille>. Voici les modifications à effectuer : <modifications>$Sortie2</modification>"

Pourquoi le prompt chaining est-il aussi efficace ?

Le prompt chaining est probablement l'une des méthodes les plus puissantes pour obtenir des réponses fiables et pertinentes sur une multitude de questions. Mais pourquoi est-ce aussi efficace ? Attention is all you need, comme dirait le papier de recherche fondateur des LLM. En effet, les modèles de langage reposent sur un mécanisme d'attention leur permettant de se concentrer efficacement sur des éléments clés d'une séquence. En découpant une tâche complexe en plusieurs étapes simples, le prompt chaining permet au modèle de focaliser pleinement son attention sur chaque sous-problème, réduisant la charge cognitive et favorisant un raisonnement structuré, étape par étape.

Dans quel cas faut-il utiliser le prompt chaining ? La recherche a montré que les cas d'usage où plusieurs étapes (même très simples) sont nécessaires pour parvenir au résultat sont généralement mieux gérés par des techniques de prompt chaining. Par exemple pour la rédaction d'un texte, l'analyse de données sous plusieurs dimensions ou encore la création d'agent simple utilisant des outils. Enfin, l'utilisation du prompt chaining s'avère encore plus pertinent sur les cas d'usage où la traçabilité de la réponse est un élément clé. Identifier quelle étape pose problème peut s'avérer par exemple plus complexe avec la chain-of-thought. Le prompt chaining prend donc tout son sens. En revanche, il est moins utile d'utiliser le prompt chaining avec des modèles de raisonnement. Ces derniers étant entraînés à raisonner étape par étape, le gain d'efficacité sera alors minime.

Pour aller plus loin, la technique du "LLM as a judge"

Forme dérivée du prompt chaining, la technique du "LLM as a judge" permet d'aller encore plus loin dans la pertinence des résultats. Le but étant de générer une première réponse avec un modèle A et de la corriger avec un modèle B.

Exemple :

Prompt avec LLM A : "Génère la biographie de Warren Buffett en 100 mots."

Prompt avec LLM B : "La biographie ci-dessous présente-t-elle des éléments non factuels ? Réponds simplement OUI ou NON. Aucun autre élément de texte. <biographie>$Sortie1</biographie>"

Si, le prompt avec le LLM B répond "NON", on peut adresser la réponse à l'utilisateur, si il répond "OUI", on peut soit refuser d'afficher la réponse soit modifier légèrement le prompt pour identifier les éventuelles erreurs et les corriger dans le texte cible.

Mais pourquoi ne pas utiliser dans ce cas le même LLM ? Un même modèle tend naturellement à valider ses propres réponses, puisqu'il reproduira les mêmes erreurs ou approximations dans son jugement que dans sa génération initiale. En effet, chaque modèle présente des "angles morts" spécifiques selon leur architecture ou leurs données d'entraînement notamment. L'utilisation d'un second modèle, idéalement avec plus de paramètres, permet ainsi d'éviter le biais d'auto-confirmation. Attention toutefois, même un modèle évaluateur plus performant peut potentiellement halluciner (de façon beaucoup plus rare).