← 最新论文
🤖 AI

Beyond Pass Rate: A Multilingual, Execution-Grounded Evaluation of Open Code LLMs

本文对九个开源代码大语言模型在超过 2,700 道 LeetCode 题目上进行了大规模、多语言且基于执行的评估,结果显示当前模型的表现显著落后于人类水平,且其排名和失败模式在不同语言和题目难度之间存在显著差异,从而凸显了单一指标排行榜的局限性。

原作者: Sayed Erfan Arefin

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

原作者: Sayed Erfan Arefin

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

想象一下你是一名编程团队的主教练,你需要招聘一名新的助理程序员。标准的面试方式是给他们一个简短的谜题,然后看他们是否能解开。如果解开了,就给一个“通过”;如果没解开,就给一个“失败”。

这篇论文指出,这种“通过/失败”的方法就像是仅凭能否煮熟一个鸡蛋来评判一位厨师。这无法告诉你他是否能烹饪复杂的佳肴、是否能处理辛辣食材,或者是否能保持厨房整洁。

以下是研究人员所做的工作,用通俗易懂的方式进行了解释:

大实验:一场大规模的编程奥林匹克

研究人员没有只给一个谜题,而是搭建了一个大规模的“编程奥林匹克”。

  • 参赛者: 他们邀请了 9 个不同的开源 AI 模型(即“助手”)来参赛。
  • 竞技场: 他们使用了来自 LeetCode(一个流行的编程练习网站)的 2,707 道免费编程问题。
  • 语言: 他们不仅仅使用一种语言(比如英语);他们在 12 种不同的编程语言(如 Python、Java、C++ 等)中对 AI 进行了测试。
  • 规模: 总计,他们运行了超过 325,000 次尝试。这就像是让每一位参赛者在每种语言中尝试每一个谜题。

研究结果:情况很复杂

研究人员发现,并不存在一个单一的“最佳”AI。谁能胜出完全取决于你在寻找什么。

1. “全才”与“专才”

  • Yi-Coder-9B-Chat 是表现最稳定的“平均型”选手。如果你要求它解决各种随机混合的问题,它的总正确率最高。
  • Qwen2.5-Coder-14B-Instruct 是“困难模式”的专家。它并没有赢得最多的简单问题,但当谜题变得非常困难时,这个 AI 才是最值得关注的对象。它还能解决种类最广泛的不同问题,即便它并不一定能把每一个都做得完美。
  • Gemma-2-27B-IT 是个“洁癖”。虽然它解决的问题数量不是最多,但它编写的代码最整洁,也最遵循规则。

2. 人类差距
即使是这项研究中最优秀的 AI,平均也只能正确解决约 23% 的问题。相比之下,人类程序员大约能解决其中的 57%。这意味着 AI 离能够独立工作的可靠程度还很远;它们更像是需要大量监督的初级实习生。

3. “编译错误”之墙
研究人员观察了 AI 失败的原因。他们发现了一个令人惊讶的模式:63% 的失败发生在代码运行之前。
这就好比一辆车因为发动机缸体裂了而无法启动。你甚至无法测试这辆车跑得快还是慢,因为它根本发动不起来。大多数 AI 失败是因为编写了带有基础语法错误(如拼写错误、缺少括号)的代码,而不是逻辑错误。它们在被测试正确性之前,就因为无法“编译”(转化为可运行的程序)而失败了。

4. “洁净代码”悖论
这里有一个转折:编写代码最“干净”的 AI(Gemma)并不是解决问题最多的那个。反之,解决问题最多的 AI(Qwen)写的代码比较“乱”,且代码清理工具会给它报出更多警告。

  • 类比: 想象两个学生在参加考试。学生 A 写了一篇格式非常整齐、完美的论文,但答案错了。学生 B 写了一篇凌乱、有涂改痕迹的论文,但答案对了。
  • 论文表明,“功能性成功”(得到正确答案)和“静态质量”(编写整洁的代码)是两回事。你不能假设一个编写整洁代码的模型一定会解决你的问题,也不能假设一个能解决问题的模型一定会写出整洁的代码。

5. 语言很重要
一个擅长写 Python 的 AI 可能在写 C++ 时表现很差。当被要求使用不同语言时,排名也会发生变化。这证明了你不能简单地说“模型 X 是最好的”。你必须说“模型 X 对 Python 最好,但模型 Y 对 Java 更好”。

核心结论

论文得出结论,我们需要停止使用单一的“分数”来评判编程 AI。就像你不会仅凭一个缝合伤口的能力来评判一名医生(忽略了其诊断疾病的能力)一样,我们也不应该仅仅根据“通过率”来评判编程 AI。

为了真正理解这些工具,我们需要观察:

  • 它们擅长哪些语言。
  • 它们如何处理难题。
  • 它们的失败是因为拼写错误还是逻辑错误。
  • 它们编写的代码是否足够整洁以供维护。

研究人员建立了一个庞大且详细的数据库来记录这些结果,以便其他人可以准确了解这些模型成功或失败的具体方式和原因,而不仅仅是看排行榜上的一个数字。

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

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

试用 Digest →