- 简介在源代码上训练大语言模型(LLMs)能显著提升其通用推理能力,但这种泛化的内在机制尚不明确。本文中,我们提出了“通过反向传播编程”(Programming by Backprop,简称PBB)作为这一现象的一个潜在驱动因素——即仅通过源代码训练模型,使其学会评估程序的输入,而从未见过任何输入/输出(I/O)示例。为了探索这一设想,我们在两组代表简单数学问题和算法的程序数据集上对大语言模型进行了微调:一组包含源代码和I/O示例(有I/O),另一组则仅有源代码(无I/O)。我们发现了一些证据表明,在多种实验设置下,大语言模型具备一定程度的无需I/O即可评估程序的能力,并得出了几个观察结论。 首先,当程序以代码形式而非语义等价的语言描述提供时,PBB的效果要明显更好。其次,大语言模型可以在前向推理过程中隐式地评估无I/O程序并直接生成输出,而在通过上下文中的思维链(chain-of-thought)逐步执行程序时,这种能力更为可靠。我们进一步证明,与从模仿自然数据分布的I/O对进行训练相比,PBB使得模型在面对不同输入时对程序的评估更加稳健。我们的研究结果揭示了一种通过代码训练提升推理能力的机制:它使大语言模型能够内化可复用的算法抽象。未来仍有大量工作空间来提升大语言模型从符号化过程(symbolic procedures)中学习的能力,而这方面的进展也将开辟其他可能性,例如通过对形式化的宪法原则进行训练来实现模型对齐(model alignment)。
- 图表
- 解决问题这篇论文旨在探讨为什么训练大型语言模型(LLMs)时加入源代码能够显著增强其通用推理能力,但这一泛化能力背后的机制尚不清楚。作者试图验证一个假设:通过仅训练源代码而非输入输出示例,模型可以学习到程序的执行逻辑,从而提升其推理能力。这是一个相对较新的问题,尤其是在从代码中学习算法抽象的角度。
- 关键思路论文提出了一种称为“通过反向传播编程”(Programming by Backprop, PBB)的方法作为代码训练提升推理能力的潜在机制。其核心思想是:模型可以通过仅训练源代码来学会评估程序在给定输入下的行为,而无需任何输入输出(I/O)示例。这种思路不同于传统的监督式代码理解方法,强调了模型对算法结构的内在建模能力。
- 其它亮点{"实验设计包括两个数据集:一个包含源代码和I/O示例(w/ IO),另一个仅有源代码(w/o IO)。结果显示LLMs能够在没有I/O的情况下评估程序。",发现代码形式比语义等价的自然语言描述更有效,表明代码的符号结构对PBB至关重要。,模型可以在前向推理中隐式执行程序,且通过思维链(Chain-of-Thought)显式模拟执行路径效果更好。,PBB训练出的模型在面对不同输入时表现出比传统I/O训练更强的鲁棒性。,论文建议未来工作可探索如何让模型更有效地从符号化程序中学习,并指出这可能为基于正式原则的模型对齐提供新方向。}
- {"CodeT: Code Generation with Test-Time Editor (2022)","Program of Thoughts: Compositional Reasoning with Large Language Models (2023)","Language Models are Few-Shot Learners (GPT-3 paper, 2020)","Can Neural Networks Learn to Solve Mazes? (2021)","Neural Turing Machines (Alex Graves et al., 2014)","Teaching Algorithmic Reasoning via In-Context Learning (ICL) (2023)"}
沙发等你来抢
去评论
评论
沙发等你来抢