Language Models as Compilers: Simulating Pseudocode Execution Improves Algorithmic Reasoning in Language Models

Fuente: arXiv
Saved in:
Bibliographic Details
Main Authors: Chae, Hyungjoo, Kim, Yeonghyeon, Kim, Seungone, Ong, Kai Tzu-iunn, Kwak, Beong-woo, Kim, Moohyeon, Kim, Seonghwan, Kwon, Taeyoon, Chung, Jiwan, Yu, Youngjae, Yeo, Jinyoung
Format: Preprint
Published: 2024
Subjects:
Online Access:
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866916191127207936
author Chae, Hyungjoo
Kim, Yeonghyeon
Kim, Seungone
Ong, Kai Tzu-iunn
Kwak, Beong-woo
Kim, Moohyeon
Kim, Seonghwan
Kwon, Taeyoon
Chung, Jiwan
Yu, Youngjae
Yeo, Jinyoung
author_facet Chae, Hyungjoo
Kim, Yeonghyeon
Kim, Seungone
Ong, Kai Tzu-iunn
Kwak, Beong-woo
Kim, Moohyeon
Kim, Seonghwan
Kwon, Taeyoon
Chung, Jiwan
Yu, Youngjae
Yeo, Jinyoung
contents 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.
format Preprint
id arxiv_https___arxiv_org_abs_2404_02575
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle Language Models as Compilers: Simulating Pseudocode Execution Improves Algorithmic Reasoning in Language Models
Chae, Hyungjoo
Kim, Yeonghyeon
Kim, Seungone
Ong, Kai Tzu-iunn
Kwak, Beong-woo
Kim, Moohyeon
Kim, Seonghwan
Kwon, Taeyoon
Chung, Jiwan
Yu, Youngjae
Yeo, Jinyoung
Computation and Language
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.
title Language Models as Compilers: Simulating Pseudocode Execution Improves Algorithmic Reasoning in Language Models
topic Computation and Language
url https://arxiv.org/abs/2404.02575