Press "Enter" to skip to content

谷歌DeepMind的研究人员提出了代码链(CoC):一种简单但意外有效的扩展,改进了语言模型(LM)的代码驱动推理能力

来自Google DeepMind、斯坦福大学和加州大学伯克利分校的研究人员开发了一个名为Code Chain的代码链,旨在解决提高语言模型的代码驱动推理能力的问题。Code Chain鼓励将语义子任务以灵活的伪代码格式化为程序,解释器可以明确捕捉到未定义行为,并交给模拟器(作为“LMulator”)来模拟。Code Chain在使用大型和小型模型时都具有良好的扩展性,并通过以编码思维回答问题来扩大语言模型能够正确回答的推理问题的范围。

类似于Chain of Thought、least-to-most和ScratchPad等工作利用提示来改善推理,通过将任务分解为中间步骤或跟踪中间结果来进行。在Github上训练的语言模型被提示编写和执行代码,这有助于解决涉及数字或符号推理的复杂问题。

为了解决给定的问题,Code Chain在代码结构中生成推理子步骤。这段代码提供了推理的框架,可以是明确的代码、伪代码或自然语言形式。Code Chain通过将代码的优点与语言模型的强大语义和常识知识相结合,使代码在全新的领域中得以使用,可以轻松表达在代码中难以表达的规则(例如,哪些食物是水果?)。

Code Chain的核心贡献不仅仅是生成推理代码,而是如何执行它。代码编写完毕后,尝试通过代码解释器执行代码-在这项研究中,研究人员考虑了Python,但这种方法对任何解释器都是通用的。如果代码成功执行,则更新程序状态并继续执行。如果代码无法执行或引发任何异常,则使用语言模型来模拟执行。语言模型的输出更新程序状态,并继续执行。

Code Chain方法的整体性能优于其他方法,在超过的任务数量和整体超过基准线的数量上超过人类基准线。Code Chain在几项研究中取得了最新成果。与Chain of Thought提示相似,随着模型大小的增加,性能有所提高。跨任务提示导致所有方法的性能下降,但Code Chain在大规模上仍然优于Chain of Thought和直接提示,接近人类的平均性能。

Code Chain是通过编写代码和使用解释器执行代码或使用模拟执行的语言模型,以在语言模型中进行推理的方法。Code Chain可以利用规则的表达结构和强大的工具。此外,通过模拟非可执行代码的执行,Code Chain可以应用于正常情况下不涉及代码的问题(例如,语义推理问题)。

Leave a Reply

Your email address will not be published. Required fields are marked *