P

Program Of Thought : Définition et Exemples

Technique de prompting où le modèle génère du code exécutable pour résoudre un problème de raisonnement, au lieu de produire une chaîne de pensée en langage naturel.

Définition complète

Le Program of Thought (PoT) est une méthode de prompting avancée introduite par Chen et al. en 2022, qui sépare le raisonnement de l'exécution des calculs. Plutôt que de demander au modèle de résoudre un problème étape par étape en langage naturel (comme dans le Chain of Thought), on lui demande de générer un programme — généralement en Python — qui encode la logique de résolution. Ce programme est ensuite exécuté par un interpréteur externe pour obtenir la réponse finale.

L'intuition derrière cette approche est simple : les modèles de langage sont excellents pour comprendre un problème et formuler une stratégie de résolution, mais ils commettent fréquemment des erreurs de calcul arithmétique ou logique. En déléguant l'exécution à un interpréteur de code, on combine le meilleur des deux mondes — la compréhension linguistique du LLM et la précision computationnelle d'un moteur d'exécution.

Le PoT s'est révélé particulièrement efficace sur les benchmarks de raisonnement mathématique comme GSM8K et AQuA, où il surpasse significativement le Chain of Thought classique. Il excelle également dans les problèmes impliquant des itérations, des structures de données complexes ou des calculs financiers — des domaines où le raisonnement en langage naturel atteint ses limites.

Cette technique s'inscrit dans un mouvement plus large d'augmentation des LLM par des outils externes. Elle est aujourd'hui intégrée nativement dans plusieurs frameworks d'agents IA et constitue l'un des fondements de l'approche « code as reasoning » qui gagne en popularité dans la communauté.

Étymologie

Le terme « Program of Thought » a été introduit dans l'article de recherche « Program of Thoughts Prompting: Disentangling Computation from Reasoning for Numerical Reasoning Tasks » publié par Wenhu Chen et al. en 2022. Le nom fait directement écho au « Chain of Thought » (chaîne de pensée) en remplaçant la chaîne textuelle par un programme informatique, soulignant ainsi le passage du raisonnement verbal au raisonnement programmatique.

Exemples concrets

Résolution d'un problème mathématique complexe

Résous ce problème en écrivant un programme Python.

Problème : Un magasin propose une réduction de 15% sur tous les articles. Si un client achète 3 chemises à 45€ chacune et 2 pantalons à 62€ chacun, combien paie-t-il après réduction et avec une TVA de 20% ?

Écris le code Python pour calculer le montant final.

Raisonnement sur des dates et durées

Écris un programme Python pour résoudre ce problème :

Marie est née le 14 mars 1990. Elle a commencé son premier emploi exactement 23 ans et 147 jours après sa naissance. Quel jour de la semaine était-ce ?

Analyse financière avec itérations

Génère un programme Python pour répondre à cette question :

Un investisseur place 10 000€ avec un taux d'intérêt composé de 4,5% par an. Chaque année, il ajoute 2 000€. Au bout de combien d'années son capital dépasse-t-il 50 000€ ?

Usage pratique

Pour appliquer le Program of Thought, demandez explicitement au modèle de générer du code exécutable plutôt qu'une réponse en langage naturel. Formulez votre prompt avec une instruction comme « Écris un programme Python pour résoudre ce problème » et exécutez le code généré dans un environnement sécurisé. Cette technique est particulièrement recommandée pour tout problème impliquant des calculs, des itérations ou de la manipulation de données structurées.

Concepts liés

Chain of ThoughtCode InterpreterTool UsePAL (Program-Aided Language Models)ReAct

FAQ

Quelle est la différence entre Program of Thought et Chain of Thought ?
Le Chain of Thought (CoT) demande au modèle de raisonner étape par étape en langage naturel, tandis que le Program of Thought (PoT) lui demande d'exprimer ce raisonnement sous forme de code exécutable. Le CoT garde tout le processus dans le texte, ce qui le rend sujet aux erreurs de calcul. Le PoT délègue les calculs à un interpréteur, ce qui garantit une précision computationnelle tout en conservant la capacité du modèle à comprendre et structurer le problème.
Faut-il savoir programmer pour utiliser le Program of Thought ?
Non, il n'est pas nécessaire de savoir programmer pour utiliser cette technique. Le modèle génère le code pour vous, et de nombreux environnements (comme les Code Interpreters intégrés à ChatGPT ou Claude) exécutent automatiquement le code produit. Cependant, une compréhension basique du code peut vous aider à vérifier la logique de la solution proposée et à formuler des prompts plus précis.
Dans quels cas le Program of Thought est-il plus performant que les autres techniques ?
Le PoT excelle dans les tâches de raisonnement numérique et mathématique, la manipulation de dates et de durées, les problèmes nécessitant des boucles ou des itérations, et l'analyse de données structurées. En revanche, pour des tâches purement linguistiques comme la rédaction créative, l'analyse de sentiments ou le résumé de texte, le Chain of Thought classique reste plus approprié car ces tâches ne bénéficient pas de l'exécution de code.

Voir aussi

Recevez de nouveaux prompts chaque semaine

Rejoignez notre newsletter.