Les modèles de langage en tant que compilateurs : la simulation de l'exécution de pseudocode améliore le raisonnement algorithmique dans les modèles de langage
Language Models as Compilers: Simulating Pseudocode Execution Improves Algorithmic Reasoning in Language Models
April 3, 2024
Auteurs: Hyungjoo Chae, Yeonghyeon Kim, Seungone Kim, Kai Tzu-iunn Ong, Beong-woo Kwak, Moohyeon Kim, Seonghwan Kim, Taeyoon Kwon, Jiwan Chung, Youngjae Yu, Jinyoung Yeo
cs.AI
Résumé
Le raisonnement algorithmique désigne la capacité à comprendre les schémas complexes sous-jacents à un problème et à les décomposer en une séquence d'étapes de raisonnement menant à la solution. Cette nature du raisonnement algorithmique en fait un défi pour les grands modèles de langage (LLMs), même si ceux-ci ont démontré des performances prometteuses dans d'autres tâches de raisonnement. Dans ce contexte, certaines études récentes utilisent des langages de programmation (par exemple, Python) pour exprimer la logique nécessaire à la résolution d'une instance/question donnée (par exemple, Program-of-Thought), inspirées par leur syntaxe stricte et précise. Cependant, il n'est pas trivial d'écrire un code exécutable qui exprime la logique correcte à la volée lors d'un seul appel d'inférence. De plus, le code généré spécifiquement pour une instance ne peut pas être réutilisé pour d'autres, même si elles relèvent de la même tâche et pourraient nécessiter une logique identique pour être résolues. Cet article présente Think-and-Execute, un cadre novateur qui décompose le processus de raisonnement des modèles de langage en deux étapes. (1) Dans Think, nous découvrons une logique au niveau de la tâche qui est partagée par toutes les instances pour résoudre une tâche donnée, puis nous exprimons cette logique sous forme de pseudocode ; (2) Dans Execute, nous adaptons davantage le pseudocode généré à chaque instance et simulons l'exécution du code. Grâce à des expériences approfondies sur sept tâches de raisonnement algorithmique, nous démontrons l'efficacité de Think-and-Execute. Notre approche améliore mieux le raisonnement des LLMs par rapport à plusieurs bases de référence solides effectuant un raisonnement spécifique à l'instance (par exemple, CoT et PoT), suggérant l'utilité de découvrir une logique au niveau de la tâche. De plus, nous montrons que, par rapport au langage naturel, le pseudocode peut mieux guider le raisonnement des LLMs, même si ceux-ci sont entraînés à suivre des instructions en langage naturel.
English
Algorithmic reasoning refers to the ability to understand the complex
patterns behind the problem and decompose them into a sequence of reasoning
steps towards the solution. Such nature of algorithmic reasoning makes it a
challenge for large language models (LLMs), even though they have demonstrated
promising performance in other reasoning tasks. Within this context, some
recent studies use programming languages (e.g., Python) to express the
necessary logic for solving a given instance/question (e.g.,
Program-of-Thought) as inspired by their strict and precise syntaxes. However,
it is non-trivial to write an executable code that expresses the correct logic
on the fly within a single inference call. Also, the code generated
specifically for an instance cannot be reused for others, even if they are from
the same task and might require identical logic to solve. This paper presents
Think-and-Execute, a novel framework that decomposes the reasoning process of
language models into two steps. (1) In Think, we discover a task-level logic
that is shared across all instances for solving a given task and then express
the logic with pseudocode; (2) In Execute, we further tailor the generated
pseudocode to each instance and simulate the execution of the code. With
extensive experiments on seven algorithmic reasoning tasks, we demonstrate the
effectiveness of Think-and-Execute. Our approach better improves LMs' reasoning
compared to several strong baselines performing instance-specific reasoning
(e.g., CoT and PoT), suggesting the helpfulness of discovering task-level
logic. Also, we show that compared to natural language, pseudocode can better
guide the reasoning of LMs, even though they are trained to follow natural
language instructions.Summary
AI-Generated Summary