Языковые модели как компиляторы: моделирование выполнения псевдокода улучшает алгоритмическое мышление в языковых моделях.
Language Models as Compilers: Simulating Pseudocode Execution Improves Algorithmic Reasoning in Language Models
April 3, 2024
Авторы: 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
Аннотация
Алгоритмическое мышление относится к способности понимать сложные паттерны задачи и декомпозировать их на последовательность логических шагов к решению. Такая природа алгоритмического мышления представляет собой вызов для больших языковых моделей (LLM), несмотря на то, что они продемонстрировали многообещающую производительность в других задачах рассуждения. В этом контексте некоторые недавние исследования используют языки программирования (например, Python) для выражения необходимой логики решения данного экземпляра/вопроса (например, Программа-Мысли), вдохновляясь их строгими и точными синтаксисами. Однако написание исполняемого кода, выражающего правильную логику на лету в рамках одного вызова вывода, является нетривиальной задачей. Кроме того, сгенерированный специально для экземпляра код не может быть использован повторно для других, даже если они относятся к той же задаче и могут требовать идентичной логики для решения. В данной статье представлена концепция "Думай и Выполняй", новая платформа, которая декомпозирует процесс рассуждения языковых моделей на два этапа. (1) На этапе Думай мы находим логику на уровне задачи, которая обща для всех экземпляров решения данной задачи, и затем выражаем эту логику псевдокодом; (2) На этапе Выполняй мы дополнительно настраиваем сгенерированный псевдокод для каждого экземпляра и моделируем выполнение кода. Проведя обширные эксперименты по семи задачам алгоритмического рассуждения, мы демонстрируем эффективность "Думай и Выполняй". Наш подход лучше улучшает рассуждение LMs по сравнению с несколькими сильными базовыми вариантами, выполняющими рассуждение для каждого экземпляра (например, CoT и PoT), что указывает на полезность обнаружения логики на уровне задачи. Также мы показываем, что по сравнению с естественным языком, псевдокод может лучше направлять рассуждение LMs, даже если они обучены следовать инструкциям на естественном языке.
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