Le prompting par chaîne de pensée (CoT, pour « chain-of-thought ») demande à un modèle d’écrire son raisonnement avant de donner une réponse finale. L’idée a été décrite par Wei et ses collègues chez Google en 2022, qui ont montré que des exemples résolus avec des étapes intermédiaires amélioraient les résultats sur des problèmes d’arithmétique et de logique.
Pourquoi écrire les étapes aide
Un modèle de langage produit un token à la fois, conditionné par tout ce qui précède. S’il doit répondre immédiatement, la réponse est prédite sans travail intermédiaire. S’il écrit d’abord les étapes, celles-ci font partie du contexte à partir duquel la réponse est prédite. Raisonner sur la page, c’est de la mémoire de travail.
Chaîne de pensée zero-shot
La forme la plus simple ajoute une instruction de raisonner d’abord.
A warehouse ships 240 orders a day. 15% need gift wrap, which adds
4 minutes each. How many staff hours a day does gift wrap take?
Work through the problem step by step, then give the final answer
on its own line as "Answer: <number> hours".
Deux détails comptent. Demandez le raisonnement avant la réponse, et donnez à la réponse un marqueur fixe pour que votre code puisse la trouver.
Chaîne de pensée few-shot
Ici les exemples montrent le raisonnement autant que le résultat, de sorte que le modèle imite la méthode.
Q: A plan costs $12 a month or $120 a year. How much does the yearly
plan save over 2 years?
Reasoning: Monthly for 2 years is 12 x 24 = $288. Yearly for 2 years
is 120 x 2 = $240. The difference is 288 - 240 = $48.
Answer: $48
Q: {{question}}
Reasoning:
Utilisez-la quand la tâche a une procédure précise que vous voulez voir suivie.
Raisonnement structuré
Pour les réponses que du code lira, séparez la réflexion du résultat avec des balises ou des champs.
Think through the eligibility rules inside <reasoning> tags.
Then give the decision inside <decision> tags as "approve" or "reject".
En JSON, placez le champ de raisonnement avant le champ de verdict. Les champs sont générés dans l’ordre : un raisonnement placé après le verdict ne peut pas l’influencer. Voir les prompts de sortie structurée.
Les modèles de raisonnement changent le conseil
De nombreux modèles actuels raisonnent en interne avant de répondre, souvent sous un réglage appelé « thinking », « reasoning effort » ou « extended thinking ». Pour ces modèles :
- N’ajoutez pas « réfléchis pas à pas ». Ils le font déjà, et l’instruction peut allonger la sortie sans l’améliorer.
- Décrivez l’objectif et les contraintes, et laissez le modèle choisir son approche.
- Utilisez le contrôle du fournisseur pour fixer la quantité de raisonnement à dépenser, au lieu de la formulation du prompt.
- Demandez quand même une courte justification dans la sortie quand une personne doit vérifier la réponse.
La chaîne de pensée explicite reste utile avec des modèles plus petits et plus rapides qui ne raisonnent pas en interne, et chaque fois que vous avez besoin du raisonnement visible dans la réponse.
Quand la chaîne de pensée aide et quand elle n’aide pas
| Tâche | Aide-t-elle ? |
|---|---|
| Arithmétique ou logique à plusieurs étapes | Oui |
| Décisions avec plusieurs règles à appliquer | Oui |
| Débogage : trouver la cause à partir des symptômes | Oui |
| Classification ou extraction simples | Rarement ; elle ajoute du coût |
| Écriture créative | Non |
| Recherche d’un fait dans un texte fourni | Non |
Le coût est réel : le raisonnement, ce sont des tokens de sortie, généralement facturés plus cher que les tokens d’entrée, et ils ajoutent de la latence.
Une mise en garde sur les explications
Le raisonnement écrit est un récit plausible, pas une trace garantie de la façon dont la réponse a été produite. Un modèle peut arriver à une conclusion et écrire une justification qui sonne juste. Traitez le raisonnement comme quelque chose à vérifier, surtout lorsqu’une décision touche des personnes.
Autoconsistance
L’autoconsistance, décrite par Wang et ses collègues en 2022, s’appuie sur la chaîne de pensée. Exécutez plusieurs fois le même prompt de raisonnement avec l’échantillonnage activé, pour que les chemins diffèrent, puis retenez la réponse finale la plus fréquente.
- Envoyez N fois le prompt CoT, par exemple 5, avec une température supérieure à zéro.
- Extrayez la réponse finale de chaque réponse.
- Renvoyez la réponse qui apparaît le plus souvent.
Des chemins de raisonnement différents font des erreurs différentes, mais les chemins corrects tendent à s’accorder. Le vote filtre l’erreur occasionnelle.
Utilisez-la quand le problème a une seule bonne réponse comparable exactement (un nombre, une étiquette, un oui ou un non) et que la précision vaut N fois le coût.
Passez-vous-en quand les réponses sont du texte libre sur lequel on ne peut pas voter, ou quand un seul appel est déjà fiable. Si les voix sont également partagées, voyez-y le signe que la question est ambiguë ou que le prompt est insuffisamment spécifié.
Du raisonnement aux pipelines
Quand les étapes d’un problème sont connues d’avance, ne demandez pas à un seul prompt de toutes les raisonner. Donnez à chaque étape son propre prompt. C’est l’enchaînement de prompts. Quand les étapes dépendent d’informations que le modèle doit aller chercher, combinez raisonnement et outils : c’est le prompting ReAct.
Vérifiez d’abord le prompt
Le raisonnement ne peut pas réparer une question floue. Un prompt CoT avec un objectif vague ou des règles contradictoires raisonne soigneusement vers la mauvaise réponse. Passez-le dans l’analyseur de prompts PromptFlowEngine avant de dépenser des tokens en raisonnement.