大语言模型-编程能力测评 25-10月榜

发布时间:10-09

与旧版的区别

之前的编程测试,使用6种语言,在总计36个题目上进行考察,以重试3轮,取最高分的形式进行打分。而随着编程辅助全面转向Agent模式,实际开发中也更多依赖模型在多轮下反复尝试,而非一轮决胜负。因此多轮能力强,但单轮智力不足的模型很难在旧的测试体系上取得与体感相符的分数。这导致了一些读者持续反馈榜单与体验偏差较大。

为了针对多轮工作环境,从本月起,测试采用全新方法,新方法按以下标准进行测试:

  • 语言:语言上依然选择TypeScript、Java、Golang、Python、C#和C++,共6种。
  • 题目:题目上采用3个大类:从0到1生成代码,代码跨语言迁移,代码重构。
  • 多轮:测试框架自动进行大模型输出的编译和用例测试,将编译错误,运行错误,或不通过的用例作为多轮输入,让大模型进行修改,直到所有用例通过,或达到设定最高轮数(目前是3轮)。
  • 统计:新方案关注模型首轮得分,最终多轮得分,总计消耗的轮次,和最终代码不可用的概率。

在此对新测试方法的设计思路做更详细解释。

题目选择上,删去了旧测试中需要复杂推理的问题,这类题目是为了拉开模型差距而设立。而新方法并不担心这一点,即便最终得分相同,都是满分,消耗轮数更少的模型,实际体验也更优。

我们认为,在实际开发过程中,优秀的模型应该具备一轮就写出符合要求代码的能力,如果有考虑不周之处,也应该在获知报错信息后,自主察觉到代码Bug,并做出精确修改。因此,我们通过首轮得分来反映大模型的基线智力水平。通过多轮得分来反映大模型在无干预下所能达到的最好效果。

最终效果相同,消耗轮数更少的模型,在实际开发中使用体验和协同效率更高,这通过 消耗轮次来体现。

而经过3轮依然写不出可用的代码,甚至编译无法通过,找不到Bug,通常继续增加轮次不如代码回滚,重新提问。这通过最终代码不可用率来体现。

还需要指出,本测试主要考察大模型在不同语言下的编程基本功,侧重于考察大模型对语言本身的熟悉程度,将复杂需求准确转换为代码的能力,和对运行错误的自动修复能力。本测试 不涉及任何具体行业领域,不涉及第三方SDK运用。在实际使用中还应留意模型在特定编程领域的能力。

参赛模型

题目和打分

题目

以下所有题目均在6种语言上进行测试

  • #1、数据结构应用类问题
  • #13、字符串应用类问题
  • #15、语言迁移类问题
  • #16、代码重构,原始代码500行
  • #17、数学计算类问题

打分规则:

  1. 模型优先使用官方推荐的温度值(下文有备注),如果没有推荐,则使用默认温度0.1。推理模型限制思考长度80K,输出长度15K,无法分别设置的模型,设置总输出为80K。非推理模型设置输出长度15K。模型支持的MaxToken达不到上限,就按模型上限。其他参数按模型默认。
  2. 每道题有至少1个得分点/用例,回答每正确一点即得1分。最终得分是得分除以得分点总数,再乘以10。(即每道题满分10分)
  3. 每题限定了输入和输出格式,大模型输出代码直接用于编译和运行,编译失败记0分,运行异常记0分。
  4. 代码重构类问题,对重构后的代码行数有额外计分,划分4档。仅在代码通过所有用例后,才计算附加分。

运行环境:

  • Python: 3.9.6
  • TypeScript: node v22.14.0, tsc 5.8.2
  • Golang: 1.20.7
  • Java: 1.8.0_201
  • C#: dotnet5.0
  • C++: Apple clang version 16.0.0 (clang-1600.0.26.6) 限定C++17以内的语言特性

成绩解析

按最终成绩排序:

按语言(平均分):

*图中,每种语言除第一名标绿以外,相差0.3分以内的第二名也标绿。这是考虑到测试本身有随机性,0.3分的差距可认为属于同一水平。

下面对各模型的表现做简要说明:

  1. GPT-5 Mini:编程能力全面领先,并且基本都在第一轮就写出正确代码,一遍过。30题中仅有12个进入第2轮,且仅有3个进入第3轮。并且在总共15次多轮修改中,其代码得分稳定上升,没有退化。也就是GPT-5 Mini具备把代码稳定的改的更好的能力。进入多轮主要是代码边界考虑不充分,小Bug为主。
  2. Sonnet4.5:Sonnet各方面相比其他模型,领先优势也较大。在多轮分数与GPT-5 Mini相差不大的前提下,其平均耗时显著更低。尤其非推理模式下,平均30秒,几乎是在测模型中第三低值,代表了极为优秀的实战可用性。Sonnet在相对复杂问题下,考虑的相对不够充分,首轮用例通过率较低,且一般要跑到第3轮才能基本满分。这导致其总轮数消耗偏高。但如果只看代码重构,代码迁移类问题,Sonnet推理和非推理则基本都是一遍过,可用性高,而且重构代码能找到关键思路,以更优思路和更合理代码组织实现相同功能,刚好补上GPT-5 Mini的短板。
  3. Gemini系列:Gemini系列最终成绩不低,但问题相对较多。最显著问题在于多轮不稳定,Pro和Flash都有3个题目,在3轮修改后得分反而低于首轮。而且即便Pro,也有4题出现多轮修改成绩不提升,错误原地打转的现象。Flash则多至7题。这与前面提到GPT-5 Mini的稳定提升表现形成鲜明对比。重构类问题,Pro和Flash在第一轮必然会犯错,改坏原逻辑,甚至出现低级语法错误。一般需要2到3轮的修复才能正常。Flash非推理版情况更差一些,golang上反复犯语法错误。
  4. DeepSeek V3.2:V3.2同样做不到稳定改善,甚至推理版有时过度思考,犯错更多,得分提升相对非推理版十分有限。不过相对而言,推理版在稍复杂的问题上,初见得分更高,毕竟有深度思考优势在。但在需要抓细节的场景,比如重构,V3.2偏高的上下文幻觉就开始作妖,导致越推理错的越多,使用轮数比基础版还多。甚至在#16题Java考察上,前2轮稳定拿分,到第3轮反而0分。
  5. GLM4.6:作为一款专为Agent而生的模型,4.6的多轮表现非常亮眼,尤其推理版,把原本不高的首轮成绩,经过多轮修复,提到了与DeepSeek V3.2相当的水平。并且速度更快,语言也没有明显偏科,整体可用性更胜一筹。
  6. Qwen3系列:发布更早的Qwen3-Coder在常规编程上还比较可用,但涉及复杂思考就显著不如大哥Max。比如#17考察数学运算,需要自己实现数学表达式解析,Coder就干的一塌糊涂,Max则游刃有余。同时Max基本能做到代码质量稳定提升,仅1次倒退,而Coder则有4次倒退,并且分散在各个语言上,不集中。
  7. Kimi K2:K2是一款有明显偏科的模型,他的golang严重拖了总分的后腿。但如果不看总分,K2还是有许多亮点。最显著就是其首轮表现相当可用,与DeepSeek V3.2相差无几。但多轮下来退步现象时有发生,概率不低。甚至如果让K2只跑2轮,成绩反而略高于3轮。实战中如果使用K2,更推荐在多轮时适当给更多指向性辅助信息,而不要让K2自己尝试。K2在人工参与下,能发挥出更高水准。
  8. Grok Code Fast 1:GCF1是在旧版测试中被严重低估的模型,但也不算冤枉,其首轮成绩确实倒数,但多轮下来最终也能拉到相当可用的地步。他是与GPT-5 Mini唯二,多轮不退步的模型。

Others

新的测试方法实现了100%自动化,测试框架会实现从问题组织,到过程管理,到用例运行,再到根据不同的运行结果,发起不同的下一轮对话。基本是一个微型Agent框架了。

得益于新框架的测试效率,将我原本预计需要几周才能做完的新版评测,压缩到2天时间,今后的新模型也都可以在半小时内得到结果。

当然也提醒读者注意,新版测试虽然更贴近体感,但依然做不到给每个模型一个全面准确的评估,新测试也只是截取了日常编程中的一个切面,在切面上管中窥豹,其中必有错讹,请读者海涵。

好文章,赞一下
3325
人工导购
咨询服务