近两年,大语言模型的编程能力发展飞快,例如 DeepMind 的 AlphaCode 曾宣称达到人类竞技编程选手的水平;OpenAI 的顶尖模型屡屡被报道能通过谷歌高级编程面试,并在 LeetCode 挑战中表现出较高能力。然而,当我们将目光从大模型刷榜转向解决真实的、复杂的工程项目时,一个核心问题随之浮现:这些号称擅长编程的模型在面对真实工程场景时,其准确性、健壮性和实际应用价值究竟如何?
研究发现,现有的代码基准数据集在面对复杂的工程场景时普遍存在缺乏多样性和可控性的双重问题:
总之,我们发现现有的代码基准测试大多“偏科”了。它们要么只关注单个函数的补全,忽略了开发者修复 Bug 、根据单元测试反向开发的真实场景;要么采用随机挖空的方式,难以触及代码的核心逻辑。这导致我们无法科学、完整、全面地测评 LLM 在真实工程场景中的代码能力,尤其是在可靠性和适用性方面,我们亟需一个能解决此难题的方案。
为了应对上述挑战, Meituan-M17 团队、上海交大联合发布了一个全新的大模型工程级别代码基准测试 CoreCodeBench 数据集,托管到 AGI-Eval 社区。
目前该研究已经发表成论文:《CoreCodeBench: A Configurable Multi-Scenario Repository-Level Benchmark》。
它专注于评估大语言模型在真实工程项目中的综合代码能力,覆盖了从代码开发到代码修正的多个核心阶段。
△ 图 1: CoreCodeBench 题型展示
△ 图 2: CoreCodeBench 模型能力榜单
通过在 CoreCodeBench 上对当前主流大语言模型的全面评测,我们得出了以下关键结论:
下面我们将详细介绍 CoreCodeBench 是如何构建的,以及取得的实验结果和深度分析。
数据集构建方法:CorePipe 流程
为了构建一个既关注多样化工程问题,又聚焦于核心代码的基准,CoreCodeBench 中设计了从工程代码仓库到多种函数题型的全自动化构建流程CorePipe。
△ 图 3: CorePipe 自动化生产数据流程示意图
如上图所示,CorePipe 基于函数调用树,系统化地生成覆盖三大核心场景的单函数与多函数题目,确保每一道题目都直击“要害”:
精选真实项目:我们从 PyPI 对应的 GitHub 仓库中筛选出高活跃度、高测试覆盖率和高技术复杂度的顶级开源项目。
定位核心代码:通过动态和静态追踪代码的执行,我们首先构建函数调用图,再利用抽象语法树(AST)抽取出关键函数中的核心代码,精准定位项目中那些“牵一发而动全身”的核心代码块。我们能精准定位项目中那些“牵一发而动全身”的核心函数。
模拟三大真实场景:
引入多函数难题:
我们将上述单函数问题按照真实的函数调用关系组合起来,创造出更复杂的多函数题目,全面考验模型在宏观层面的代码组织和规划能力。
为确保评测的科学性,我们采用了信息增益分数(IG Score)作为核心指标,并通过 IG Filter(信息增益过滤)和专业工程师人工审核(最终合格率78.55%)对题目质量进行充分的监测,兼具可读性、准确性和完整性。
2.1 单函数与多函数任务分析
△ 表 1: CoreCodeBench 单函数和多函数任务榜单
如上图可以看出,实验结果有力地支持了我们的核心结论, Claude 3.7 在所有任务中表现突出。
但所有模型在多函数任务上的普遍表现下滑差于单模型任务,这可能是因为多函数任务需同时处理多个函数间的依赖关系、调用逻辑和协同实现,对大语言模型的跨函数推理和规划能力要求更高,以及在 BugFix 任务上的集体短板,清晰地勾勒出当前技术的能力边界。
2.2 模型规划能力洞察
多函数任务的实验分析揭示,模型缺乏对实现顺序的规划能力。
大多数模型严格遵循输入提示中的函数顺序生成代码。当前模型在多函数代码生成时缺乏灵活规划能力与分层推理能力,往往采用默认的顺序输出策略,而非基于逻辑或功能依赖进行优化。
这种“顺序执行”而非“逻辑执行”的策略,是其与人类工程师在解决复杂问题思路上的一大差异。
2.3 极限挑战
△ 图 4: CoreCodeBench-Difficult 数据集的模型结果
我们通过放宽多函数问题的复杂度限制,构建了 CoreCodeBench-Difficult 数据集。
在该测试中,所有模型的通过率均低于 30 %,这不仅印证了该基准在揭示模型局限性方面的有效性,也为未来技术的突破提供了严苛的测试平台。
2.4 LLM 代码能力全景雷达图
△ 图 5: 前沿 LLM 代码能力雷达图
我们将模型的六个核心场景表现绘制成雷达图,可以直观地看到:
为进一步分析各评测维度之间的关系,我们计算了所有模型在六个维度上的皮尔逊相关系数并绘制热力图。
△ 图 6: 代码能力项相关度分析
如上图所示可以观察得到,相关系数的测算结果表明,CoreCodeBench 的六个核心场景之间既存在一定的相关性,也体现出各自的差异性:
CoreCodeBench 的构建与应用,旨在为大语言模型的代码能力评估提供一把更科学、更全面、更贴近真实的“工程标尺”。回顾我们的研究,我们系统性地揭示了当前顶尖 LLM 在真实工程场景中的核心短板:无论是多么先进的模型,都在逻辑错误修复方面步履维艰;在面对多函数协同任务时,其跨函数推理与规划能力都显得捉襟见肘;并且,它们普遍缺乏人类工程师所具备的灵活规划与分层推理能力。
然而,这些被揭示的局限性并非技术的终点,而是为下一代大语言模型的发展指明了清晰的优化方向。我们相信,通过在 CoreCodeBench 这类更贴近真实工程需求的基准上进行训练和迭代,大语言模型将能更快地从一个“代码片段生成器”,进化成一个真正具备分析、规划和解决复杂工程问题的“虚拟软件工程师”,从而在软件开发领域释放出更深远的变革力量。
AGI-Eval 评测社区将持续致力于高质量评估研究,推动大语言模型技术向更广阔的未来发展。关注我们,检索更多评测内容!
— 完 —
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。