← 最新论文
💻 computer science

From LLMs to Agents in Programming: The Impact of Providing an LLM with a Compiler

本文表明,为大语言模型配备编译器能将其转化为有效的迭代智能体,从而显著提高代码编译成功率并减少不同规模模型的语法错误,这表明获取开发工具可以增强性能,同时可能减少对大规模、高能耗模型的需求。

原作者: Viktor Kjellberg, Miroslaw Staron, Farnaz Fotrousi

发布于 2026-01-26
📖 1 分钟阅读☕ 轻松阅读

原作者: Viktor Kjellberg, Miroslaw Staron, Farnaz Fotrousi

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

想象一下,你正在雇佣一位非常有才华但缺乏经验的学徒厨师,让他根据一份书面食谱来烹饪一道菜。

问题:“一锤子买卖”型厨师
在过去,如果你要求大型语言模型(一种人工智能)编写计算机代码,这就像是要求那位学徒厨师仅凭一次尝试就完成烹饪。他们会看一眼食谱,猜测配料,然后直接上菜。如果他们忘了放盐、用了错误的锅,或者把吐司烤焦了,你直到品尝时才会发现。如果菜肴无法入口(代码无法运行),由于厨房已经关闭,厨师便没有办法进行修正。他们只能寄希望于自己第一次就能做对。

解决方案:拥有“试吃员”的“自我纠错”型厨师
这篇论文探讨的是:如果我们给那位学徒厨师配备一名“试吃员”(编译器),能立刻告诉他,“嘿,你忘了放盐,”或者“你在混合面糊之前就把蛋糕放进烤箱了”,会发生什么?

研究人员设计了一个实验,给 16 种不同的 AI “厨师”(从微小的、节能型的到庞大的、超复杂的各类模型)提供了一份包含 699 个烹饪挑战(C 语言编程任务)的任务清单。

  • 基准组: 这些厨师必须完成烹饪并立即上菜。没有第二次机会。
  • 智能体组: 这些厨师被允许进行烹饪,接受来自“试吃员”(编译器)的批评,修正错误,然后再次尝试。他们最多可以尝试五次,直到菜肴完美无瑕。

美味的研究结果

  1. 成功率大幅飙升:
    给厨师配备一名试吃员带来了巨大的变化。成功的菜肴数量提升了 5% 到近 80%,具体取决于厨师的类型。

    • 令人惊喜的是: 最大的赢家并不一定是那些规模最大、最昂贵的厨师。一位名为 Qwen 3(拥有 40 亿个“脑细胞”)的中型厨师,通过拥有一个编译器来帮助自己,从最初表现最差的厨师之一(成功率仅为 18%)跃升为表现最好的厨师之一(成功率达 97%)。在某些情况下,它甚至超越了拥有 700 亿参数的巨型厨师。
  2. 口味并未改变(食物本身没变):
    你可能会担心,如果厨师不断地修改菜肴,他们是否会彻底改变食谱。但研究人员检查了“风味特征”(代码的含义和逻辑)。他们发现,这些厨师并没有改变食谱;他们只是修复了错误。最终的菜肴仍然完全符合顾客的要求,只是去掉了烧焦的边缘或缺失的配料。

  3. 哪些类型的错误被修复了?
    试吃员在识别特定、明确的错误方面表现得非常出色:

    • 语法错误: 比如漏掉了一个逗号或分号。编译器会说:“你这里漏掉了一个句点,”然后厨师就会将其修复。这类错误减少了 75%
    • 缺失配料: 比如调用了一个不存在的函数。编译器会说:“你要求使用‘魔法粉末’,但我们这里没有这个,”然后厨师就会将其修复。这类错误减少了 87%

    然而,如果错误比较模糊,厨师仍然会感到棘手,例如厨师用另一种语言(如 Python 而不是 C)写了食谱,或者输出结果只是一段纯文本而没有任何代码。在这种情况下,编译器的反馈有时过于笼统,导致厨师无法理解。

核心启示
这篇论文的主要教训是,你并不总是需要一台庞大、昂贵且耗能巨大的超级计算机来编写优秀的程序代码。如果你给一个较小的、更便宜的 AI 一个检查工作的工具(编译器),并让它从错误中学习,它就能变得和那些巨型模型一样高效。

这就像是意识到,一个拥有好老师的聪明学徒,往往比一个从不被允许检查自己工作的天才更有效。这种方法在完成工作的同时,节省了能源和计算能力。

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

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

试用 Digest →