- 简介推理是大型语言模型的基本能力。以往的研究主要集中在提升诸如数学或代码生成等狭窄技能,而对于许多其他推理任务的性能改进仍然具有挑战性,这是由于训练数据的稀疏性和碎片化。为了解决这一问题,我们提出了CodeI/O,这是一种新颖的方法,通过将原始代码转换为代码输入-输出预测格式,系统地浓缩嵌入在上下文相关的代码中的各种推理模式。通过训练模型以自然语言形式的链式思维(Chain-of-Thought, CoT)理由来预测给定代码和测试用例的输入/输出,我们使模型接触到普遍的推理基本要素——如逻辑流程规划、状态空间搜索、决策树遍历和模块化分解——同时将结构化推理与特定于代码的语法分离,并保持程序的严谨性。实验结果表明,CodeI/O在符号、科学、逻辑、数学与数值以及常识推理任务上均表现出一致的改进。通过匹配现有的真实输出或将预测的输入重新执行代码,我们可以验证每个预测,并通过多轮修订进一步增强链式思维,从而实现CodeI/O++并获得更高的性能。我们的数据和模型可在https://github.com/hkust-nlp/CodeIO获取。
-
- 图表
- 解决问题该论文试图解决大型语言模型在除数学和代码生成之外的多种推理任务上的性能提升问题,因为这些任务的训练数据稀疏且分散。这并不是一个全新的问题,但论文提出了一个新的方法来应对这一挑战。
- 关键思路关键思路是通过CodeI/O方法系统地浓缩嵌入在上下文相关代码中的多样化推理模式,将原始代码转换为自然语言的输入-输出预测格式。这种方法使模型能够学习通用的推理原语(如逻辑流程规划、状态空间搜索等),同时脱离特定编程语言的语法限制,保持程序性严谨。相比现有研究,CodeI/O的独特之处在于它通过自然语言链式思考(Chain-of-Thought, CoT)的方式暴露模型于广泛的推理模式中。
- 其它亮点论文的亮点包括:1) 实验结果显示CodeI/O在符号、科学、逻辑、数学与数值以及常识推理任务上都有显著改进;2) 提出了CodeI/O++,通过匹配现有真实输出或重新执行代码来验证预测,并通过多轮修订进一步提高CoTs的质量;3) 数据集和模型均已开源,可从GitHub获取。未来值得深入的研究方向包括扩展到更多类型的推理任务以及探索更复杂的推理模式。
- 近期相关研究包括《Enhancing Language Models with External Knowledge for Complex Reasoning》、《Improving Neural Code Generation with Program Synthesis》、《Learning to Infer Executable Programs from Natural Language Instructions》等。这些研究都旨在通过不同方式增强语言模型的推理能力,而本论文提出的CodeI/O提供了一种新的视角和方法。
- 3
NEW
提问交流
提交问题,平台邀请作者,轻松获得权威解答~
向作者提问

提问交流