Large language models (LLMs) have recently demonstrated an impressive ability to perform arithmetic and symbolic reasoning tasks, when provided with a few examples at test time ("few-shot prompting"). Much of this success can be attributed to prompting methods such as "chain-of-thought'', which employ LLMs for both understanding the problem description by decomposing it into steps, as well as solving each step of the problem. While LLMs seem to be adept at this sort of step-by-step decomposition, LLMs often make logical and arithmetic mistakes in the solution part, even when the problem is decomposed correctly. In this paper, we present Program-Aided Language models (PAL): a novel approach that uses the LLM to read natural language problems and generate programs as the intermediate reasoning steps, but offloads the solution step to a runtime such as a Python interpreter. With PAL, decomposing the natural language problem into runnable steps remains the only learning task for the LLM, while solving is delegated to the interpreter. We demonstrate this synergy between a neural LLM and a symbolic interpreter across 13 mathematical, symbolic, and algorithmic reasoning tasks from BIG-Bench Hard and other benchmarks. In all these natural language reasoning tasks, generating code using an LLM and reasoning using a Python interpreter leads to more accurate results than much larger models. For example, PAL using Codex achieves state-of-the-art few-shot accuracy on the GSM8K benchmark of math word problems, surpassing PaLM-540B which uses chain-of-thought by absolute 15% top-1. Our code and data are publicly available at http://reasonwithpal.com/ .
翻译:大型语言模型(LLMS)最近展示了令人印象深刻的算术和象征性推理任务能力, 当在测试时提供了几个例子( “ 点火提示 ” ) 时, LLMs( LLMs) 已经展示了执行计算和符号推理任务的能力。 大部分成功可以归功于快速的方法, 比如“ 思考链 ”, 使用 LLM 来理解问题描述, 将其分解成步骤, 并解决问题的每一个步骤。 虽然LLMs( LMs) 似乎在这种逐步分解的过程中表现出了令人印象深刻的算术和符号推理能力, 但LMs(LM) 往往在解决方案部分中做出逻辑和算术错误的错误, 即便问题已经正确解析。 在本文中, 程序辅助语言模型(PLM) 和符号解析模型(PLM) 之间, 使用13个数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 、 、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 数学、 、 、 、 、 数学、数学、 、 、 、 、 数学、数学、 数学、 、 、 等所有等所有 等所有等所有 等的推、 数学、 数学、