← 最新论文
🤖 machine learning

Is Code Better Than Language for Algorithmic Reasoning

本文表明,对于工具增强型语言模型而言,代码在算法推理方面相较于自然语言的性能优势主要源于可靠的外部执行,而非中间代码表示本身,因为代码模拟推理相比自然语言推理并未产生显著增益。

原作者: Terry Tong, Yu Feng, Surbhi Goel, Dan Roth

发布于 2026-06-16
📖 1 分钟阅读☕ 轻松阅读

原作者: Terry Tong, Yu Feng, Surbhi Goel, Dan Roth

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

想象一下你正在试图解决一个非常棘手的数学谜题。你有两种主要的解决方式:

  1. “演说家”模式(The "Talker" Method): 你要求一位聪明的助手用纯正的英语进行逻辑思考,一步步地在脑海中推导,然后告诉你答案。
  2. “程序员”模式(The "Coder" Method): 你要求同一个助手编写一段计算机程序来解决这个谜题,然后你让计算机实际运行这段程序来获取答案。

长期以来,人们注意到“程序员”模式通常效果更好。但没人确定其中的原因究竟是什么。是因为编写代码迫使助手思考得更清晰了?还是因为让计算机运行代码比信任助手在脑海中进行数学计算要可靠得多?

这篇论文设计了一个巧妙的实验,旨在弄清楚哪个因素才是真正的功臣。

三条路径实验

作者创建了一条“三车道高速公路”来测试这一点,使用了包含 40 个算法谜题(如排序列表、寻找路径或进行复杂数学运算)的基准测试。

  • 路径 1(纯粹的演说家): 助手完全使用英语解决问题。它进行思考,写下一段推理过程,然后给出答案。
    • 结果: 它的正确率约为 17%
  • 路径 2(伪装的程序员): 助手编写了代码(如 Python),但随后假装在运行它。助手并没有将代码交给计算机,而是阅读自己的代码并在脑海中模拟执行步骤,最后用英语写出结果。
    • 结果: 它的正确率约为 17%
    • 重大发现: 这与路径 1 的结果几乎完全相同。编写代码并没有帮助助手更好地思考;它只是改变了思考的形式。
  • 路径 3(真正的程序员): 助手编写了与路径 2 中完全相同的代码,但这一次,它将代码交给了一个真实的计算机(Python 运行时)去执行。
    • 结果: 它的正确率约为 49%

“为什么”背后的奥秘

论文使用了几种极具创意的手段来解释这些结果:

1. “翻译”类比(表示法 vs. 执行)
把“追踪过程”(推理步骤)想象成一份食谱。

  • 路径 1 是用长篇累牍、辞藻华丽的故事写成的食谱。
  • 路径 2 是同样的食谱,但被写成了一份严格、结构化的清单。
  • 路径 3 是那份严格的清单,但不再是让人类厨师去阅读并猜测结果,而是交给了一个机器人厨师,由它完美地执行指令。

实验表明,将食谱从故事(英语)改为清单(代码),并没有让这位人类厨师变得更聪明。无论是在读故事还是读清单时,这位人类厨师(LLM)犯的错误都是一样的。性能的大幅跃升只发生在机器人厨师(计算机执行器)接手之后。

2. “干扰”理论(The "Nuisance" Theory)
作者认为自然语言充满了“噪声”。你可以用一千种不同的方式表达同一个意思(“把数字相加”、“求和”、“把它们凑在一起”)。这种额外的多样性会让模型感到困惑。代码则更加严谨;它表达同一事物的方式较少。
然而,论文证明了即使代码更加“干净”,模型仍然无法仅凭自身力量利用这种简洁性来解决数学问题。代码并不会神奇地赋予模型新的数学技能。

3. “恢复”测试(The "Recovery" Test)
作者观察了那些计算机得出正确答案、但人类助手(模拟代码执行)却得出错误答案的情况。这种情况发生的频率为 33%
反之,他们观察了那些计算机失败(可能是代码有误)但人类助手却猜对答案的情况。这种情况仅发生了 1.6%
这证明了计算机是一个比人类助手模拟代码执行要可靠得多的“执行器”。

结论

论文的结论是:代码之所以优于语言,并不是因为它是一种更好的“思考”方式。

使用代码的优势不在于它强迫 AI 变得更聪明,而在于代码允许 AI 将工作移交给一台不会犯数学错误的机器。

  • 瓶颈: 问题不在于 AI 不能写出好的代码,而在于 AI 很难检查自己的工作或在脑海中进行数学运算。
  • 解决方案: 真正的力量来自于工具(运行代码的计算机),而不是语言(代码本身)。

简而言之:如果你想让 AI 解决一个困难的数学问题,不要只是让它写代码并寄希望于它能算出答案。你应该让它写代码,然后让计算机实际运行它。 这才是奇迹发生的地方。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →