Réponse courte
Le raisonnement par étapes (chain of thought) consiste à amener un modèle de langage à écrire les étapes intermédiaires d’un problème avant de donner la réponse finale, soit en lui montrant des exemples résolus qui contiennent ces étapes, soit en ajoutant une formule comme « Réfléchissons étape par étape ». Sur les problèmes à plusieurs étapes, comme les problèmes écrits de mathématiques, les grands modèles deviennent ainsi beaucoup plus exacts.
Question de suivi Pourquoi la formule « réfléchissons étape par étape » aide-t-elle?
Posez une question factuelle simple à un grand modèle de langage, et il répond généralement bien. Posez-lui un problème écrit en trois étapes, et il lance souvent avec assurance un nombre erroné. Deux articles de recherche parus cette année montrent qu’un petit changement dans le prompt fait une grande différence : laissez le modèle écrire d’abord son raisonnement, et il résout beaucoup plus de ces problèmes correctement.
Ce changement s’appelle le raisonnement par étapes (chain of thought, littéralement « chaîne de pensée »). Une chaîne de pensée, c’est simplement la série d’étapes intermédiaires qui mènent d’une question à sa réponse, écrites en langage courant, comme lorsqu’on réfléchit à voix haute à un problème sur une feuille de brouillon.
D’où vient l’idée?
En janvier, Jason Wei, Denny Zhou et leurs collègues de Google Research ont publié un article intitulé « Chain of Thought Prompting Elicits Reasoning in Large Language Models ». Ils ont pris le prompt few-shot habituel, où le modèle voit une poignée d’exemples résolus avant une nouvelle question, et y ont changé une seule chose : chaque réponse donnée en exemple montrait sa démarche au lieu du seul nombre final.
Leur propre illustration rend la différence évidente. Avec des exemples ordinaires, un modèle interrogé sur une cafétéria qui avait 23 pommes, en a utilisé 20 et en a acheté 6 de plus a répondu 27. Avec des exemples étape par étape, il a écrit que 23 moins 20 laisse 3, que 3 plus 6 font 9, et a répondu 9, ce qui est juste.
Le résultat phare est venu de PaLM, le modèle de 540 milliards de paramètres de Google. Avec huit exemples étape par étape rédigés à la main, il a atteint un nouveau record sur GSM8K, un ensemble de problèmes écrits de mathématiques de niveau primaire, battant même une version de GPT-3 spécialement entraînée pour cette tâche. L’annonce de PaLM par Google, en avril, faisait état de 58 % de ces problèmes résolus, près de la moyenne de 60 % qu’elle cite pour des enfants de 9 à 12 ans.
Puis, à la fin de mai, Takeshi Kojima et ses collègues de l’Université de Tokyo et de Google ont montré qu’on n’a peut-être pas besoin d’exemples du tout. Ajouter la seule phrase Let’s think step by step (« Réfléchissons étape par étape ») après la question suffisait à déclencher une chaîne de pensée.
Un exemple concret à essayer
Voici un nouveau problème écrit, posé d’abord de la façon ordinaire :
Q : Une boulangerie cuit 4 plaques de 12 muffins. Elle vend 30 muffins et en donne 5 à une banque alimentaire. Combien de muffins reste-t-il?
R : La réponse estLe prompt oblige le modèle à s’engager immédiatement sur un nombre. Dans les tests de Kojima, ce format de réponse immédiate n’a résolu que 17,7 % d’un ensemble de problèmes d’arithmétique à plusieurs étapes avec text-davinci-002. Voici maintenant la même question, avec la formule :
Q : Une boulangerie cuit 4 plaques de 12 muffins. Elle vend 30 muffins et en donne 5 à une banque alimentaire. Combien de muffins reste-t-il?
R : Réfléchissons étape par étape.Une bonne réponse passe maintenant par les étapes :
| Étape | Raisonnement |
|---|---|
| 1 | 4 plaques de 12 muffins, ça fait 48 muffins. |
| 2 | 30 vendus plus 5 donnés, ça fait 35 muffins partis. |
| 3 | 48 moins 35 laisse 13. |
| Réponse | 13 muffins |
Si vous n’avez besoin que du nombre pour un tableur ou une application, l’équipe de Kojima a utilisé un second court prompt : recollez le raisonnement et ajoutez « Par conséquent, la réponse (en chiffres arabes) est » pour obtenir une réponse finale nette.
À essayer : dans le Playground avec text-davinci-002, lancez les deux versions du problème de la boulangerie à une température de 0. Écrivez ensuite un problème plus difficile de votre cru, en quatre ou cinq étapes, et comparez de nouveau. Vérifiez chaque ligne du raisonnement, pas seulement la réponse finale.
Les limites à connaître
Le raisonnement par étapes n’est pas une panacée. L’équipe de Wei a constaté qu’il n’aide que les très grands modèles, à partir d’environ 100 milliards de paramètres; les modèles plus petits écrivaient des étapes fluides mais illogiques et faisaient moins bien qu’avec des prompts ordinaires. Les gains étaient les plus importants sur les problèmes plus difficiles, à plusieurs étapes, et faibles, voire négatifs, sur les problèmes à une seule étape. Et le raisonnement écrit peut être faux : quand les chercheurs ont examiné 50 mauvaises réponses d’un modèle, environ la moitié des chaînes ne comportaient qu’une petite erreur, comme une faute de calcul, mais les autres contenaient de graves erreurs de compréhension du problème.
Pourquoi la formule « réfléchissons étape par étape » aide-t-elle?
L’explication la plus simple, c’est l’espace. Un modèle de langage produit un jeton à la fois, et chaque nouveau jeton est façonné par tout ce qui a été écrit avant lui. Quand un prompt exige la réponse immédiatement, le modèle doit y arriver d’un seul coup. Quand il écrit d’abord les étapes, chaque étape fait partie du texte qu’il lit ensuite; la réponse finale peut donc s’appuyer sur des morceaux déjà résolus plutôt que sur un saut. L’article de Wei décrit cela comme une façon de laisser le modèle consacrer plus de calcul aux problèmes qui demandent plus d’étapes.
Une deuxième raison probable est que la formule oriente le modèle vers un type de texte familier : les explications détaillées, où un raisonnement ordonné précède la conclusion. Le modèle poursuit alors dans ce style. La formulation exacte compte : l’équipe de Kojima a testé huit variantes avec text-davinci-002 sur un ensemble de problèmes d’arithmétique. « Réfléchissons étape par étape » a obtenu le meilleur résultat, faisant passer l’exactitude de 17,7 % à 78,7 %, alors que « Réfléchissons-y de façon logique » atteignait 74,5 % et que les formules qui n’invitaient pas au raisonnement faisaient beaucoup moins bien.
Ce n’est pas magique, et cela ne transforme pas un modèle en calculatrice. Des exemples étape par étape rédigés à la main battent encore la formule d’une ligne, et le modèle peut toujours écrire des étapes convaincantes qui mènent à une mauvaise réponse. L’intérêt pratique, c’est que les étapes sont visibles, ce qui permet de les vérifier : une bonne raison d’utiliser la formule chaque fois qu’une question comporte plus d’un élément en jeu.
Sources
- Chain of Thought Prompting Elicits Reasoning in Large Language Models — Google Research (arXiv), 28 janvier 2022
- Large Language Models are Zero-Shot Reasoners — University of Tokyo and Google Research (arXiv), 24 mai 2022
- Pathways Language Model (PaLM): Scaling to 540 Billion Parameters for Breakthrough Performance — Google AI Blog (Google Research), 4 avril 2022