分享自:

CodeArena:用于大语言模型代码生成的集体评估平台

期刊:proceedings of the 63rd annual meeting of the association for computational linguistics (volume 3: system demonstrations)

本文档介绍了一项名为“CodeArena”的原创性研究工作。该研究由来自南洋理工大学、新加坡国立大学、香港大学、莫纳什大学和TikTok的研究人员共同完成,成果发表于2025年7月27日至8月1日召开的“第63届计算语言学协会年会(系统演示卷)”会议论文集(Proceedings of the 63rd Annual Meeting of the Association for Computational Linguistics (Volume 3: System Demonstrations))。

一、 学术背景与研究目标

该研究属于人工智能领域,具体聚焦于大语言模型(LLM)的代码生成能力评估。随着LLM在理解和生成编程代码方面展现出卓越能力,它们已成为提升开发者生产力的重要工具。为了量化评估不同LLM的代码生成性能,学术界和工业界涌现了多种评估基准(benchmark),例如HumanEval、BigCodeBench等,它们通过执行预定义的测试用例来检验生成代码的功能正确性。此外,也有工作开始关注生成代码的效率(如Mercury基准)和安全性(如CyberSecEval)。

然而,现有的评估方法存在三个主要局限:1) 基准污染(Benchmark Contamination):评估数据集中的题目可能泄露并混入LLM的训练数据,导致模型在已知题目上表现异常优异,无法反映其真实泛化能力。2) 数据消散(Data Dissipation):大多数基准在评估后仅记录最终分数,丢弃了生成的代码解决方案,而这些数据对于深入研究LLM代码生成能力(如分析效率分布、用于模型微调)至关重要。3) 系统可访问性(System Accessibility):现有基准评估协议各异,通常需要本地执行或手动提交结果,缺乏统一的、自动化友好的在线评估平台。虽然LeetCode、Codeforces等在线判题(OJ)平台提供了丰富的题目和即时评测,但它们并非为LLM的自动化批量提交设计,缺乏相应的应用程序编程接口(API)。

针对上述挑战,本研究团队提出了构建“CodeArena”平台的目标。该研究旨在开发一个专门为LLM代码生成设计的在线动态评估框架,其核心目标包括:引入一种集体评估机制来动态校准模型得分,以减轻基准污染带来的评分偏差;建立一个公开的解决方案和测试用例存储库,促进研究数据的开放共享;并提供一套自动化友好的API,以简化和标准化LLM代码评估的工作流程。

二、 详细工作流程

CodeArena是一个基于开源OJ框架DMOJ构建的在线代码评估平台。其系统架构分为四层:API层、运行时层、动态评估层和数据层。整个研究的工作流程可以围绕平台的设计、实现和评估展开。

1. 平台框架构建与核心机制设计: 研究首先设计了CodeArena的整体架构(如图1所示)。其关键创新在于“动态评估层”。传统的OJ平台或基准通常为每个问题设定固定的分数,但这无法应对因数据泄露导致的分数膨胀问题。CodeArena提出了一种“挑战分数(Challenge Score, CS)”机制。对于一个给定基础分数(BPS)的问题i,其挑战分数计算公式为:CS_i = BPS_i × (1 - AC_i),其中AC_i是该问题的解决率(已解决数/总提交数)。这意味着,一个问题被越多模型解决(AC_i越高),每个成功解决者从中获得的分数奖励就越少。这种设计确保了即使某个问题被广泛泄露(所有模型都能解决),它对最终排行榜的影响也会被最小化,从而有效缓解基准污染问题。

此外,平台还计算“效率分数(Efficiency Score, ES)”,基于当前解决方案的运行时间在所有成功解决方案中的百分位排名来奖励更高效的代码。每个用户的最终“动态分数(Dynamic Point, DP)”是其所有成功解决问题获得的挑战分数与效率分数之和。这种动态评分机制是本研究方法上的核心创新。

2. 问题收集与质量控制流程: 为了构建评估数据集,研究团队为“基准策划者(Benchmark Curators)”用户组设计了一套工作流程。首先,他们从现有的代码评估数据集(如APPS、Mercury)以及在线编程平台(如Codeforces、LeetCode的周赛)收集编程问题。然后,实施了一个严格的多级筛选流程以确保问题质量:a) 公开性:仅选取公开可用的免费问题。b) 任务类别:专注于算法代码生成任务。c) 充足的参考解决方案:每个任务必须拥有超过16个参考(“oracle”)解决方案,用于后续验证。d) 测试用例有效性与数量:必须能为每个任务在限定时间(360秒)内生成至少100个有效的测试用例。e) 代码行覆盖率:生成的测试用例对参考解决方案的代码行覆盖率必须达到60%以上。只有通过所有筛选条件的问题才会被纳入最终的基准集。

3. 测试用例生成流程: 由于大多数在线平台不公开其测试用例,研究团队为基准策划者开发了自动化的测试用例生成工作流。对于每个收集到的问题,他们使用GPT-4o模型来生成对应的“测试用例生成器”函数。例如,对于“两数之和”问题,GPT-4o会生成一个能随机创建符合题目约束的输入数组和目标的Python函数。随后,通过反复随机调用这个生成器函数来产生大量多样化的测试用例。为确保每个生成测试用例的有效性,会将其输入到所有参考解决方案中执行,并仅保留那些所有参考方案输出一致的测试用例。这种方法借鉴了Mercury基准的工作,并被证明不会对特定LLM引入偏差。

4. 代码提交与评估执行流程: 对于“代码生成器(Code Generators,即LLM或人类程序员)”用户,平台的工作流程如下(对应图1):a) 问题获取:通过GET API /api/problem/ 检索问题描述。b) 代码生成:用户(或集成的LLM)根据问题描述生成候选解决方案。c) 解决方案提交:通过POST API /api/submission 提交生成的代码,平台返回一个submission_id用于追踪。d) 隔离执行:提交的代码在一个沙箱隔离的运行时环境中针对预生成的测试用例执行。运行时层支持多种编程语言(Python, C, C++, Go, Haskell),并报告运行时间和内存开销。e) 解决方案持久化:执行结果(通过/失败、性能指标)被保存到数据层。f) 动态评估:动态评估层处理执行结果,根据公式更新提交用户的动态分数(DP)。g) 状态查询:用户可使用submission_id查询提交的详细状态。平台还提供了专门的Python库codearena来简化API调用。

5. 用户权限与数据开放: 平台定义了三类用户组,并赋予不同的API权限:基准策划者拥有创建和管理问题、测试用例的权限;代码生成器可以提交解决方案,其中注册的LLM账户对每个问题仅允许一次提交以确保公平性,而人类用户可无限次尝试;数据读者可以访问平台上的所有解决方案和测试用例数据。平台鼓励开放数据,为感兴趣的研究者提供了试用账户。

三、 主要研究结果

研究团队将CodeArena平台投入运行,并展示了初步的评估结果和分析。

1. 模型性能排行榜: 研究使用APPS和Mercury基准初始化了平台的问题集,并预注册了多个主流开源和闭源LLM作为代码生成器。如表1所示,截至2024年7月30日的排行榜显示,闭源模型(如DeepSeek-Coder, GPT-4o)整体上遵循规模定律,性能显著优于开源模型。然而,开源模型的表现并不总是与参数规模正相关,例如“DeepSeek-Coder-V2-Lite”虽然参数量相对较小,但通过了最多的问题(90.63%)。排行榜按动态分数(DP)排序,这综合反映了模型解决难题的能力(挑战分数)和代码效率(效率分数),而不仅仅是简单的通过率。

2. 动态分数变化分析: 研究追踪了从2024年7月30日到11月30日多个检查点上,主要开源和闭源LLM的动态分数变化趋势(如图4所示)。分析发现,与闭源模型相比,开源模型的DP分数随时间呈现明显的下降趋势,其中“DeepSeek-V2-Lite”的下降最为显著。相反,闭源模型的DP分数在整个评估期间保持稳定,甚至在最终检查点有所提升。这一现象可能揭示了开源模型在持续学习或应对新问题方面的挑战,或者反映了闭源模型在迭代更新中保持了更强的鲁棒性。这验证了CodeArena动态评估机制的价值——它能够捕捉模型性能随时间相对变化趋势,而静态的一次性评估可能无法反映这种动态。

3. 问题难度主观性的验证: 研究还通过分析LeetCode原始难度等级与模型实际接受率(AC)的关系,验证了引入动态评估的必要性。如图5所示,属于“简单”、“中等”、“困难”不同等级的问题,其实际被LLM解决的比例(AC)并没有显示出清晰的区分度。这表明人类主观定义的问题难度可能无法准确反映对LLM的真实挑战。CodeArena的挑战分数机制通过模型的集体表现(解决率)来动态定义问题的“实际难度”,从而提供了更客观的评估标准。

四、 研究结论与价值

本研究的结论是成功设计并实现了CodeArena,一个用于LLM代码生成的在线动态评估平台。该平台通过定期集成新问题来保持评估集的新鲜度,并通过创新的动态评分机制(挑战分数)有效缓解了基准污染问题。同时,平台作为一个开放的解决方案和测试用例存储库,为社区提供了宝贵的研究数据。此外,其提供的自动化友好API极大简化了模型评估流程。

该研究的科学价值在于提出并实现了一种更健壮、更公平的LLM代码生成评估范式。它不再孤立地看待单个模型的得分,而是将其置于所有参与模型的整体表现中进行校准,这使得评估结果对数据泄露和问题难度定义的主观性更具鲁棒性。其应用价值在于为LLM代码生成研究社区提供了一个持续运行、可扩展、标准化的评估基础设施,有望成为推动该领域发展的社区驱动平台。

五、 研究亮点

本研究的亮点主要体现在以下几个方面: 1. 创新的集体评估机制:提出的“动态分数”和“挑战分数”概念是核心方法论创新。它通过模型群体的表现来动态校准个体分数,为解决困扰领域已久的基准污染问题提供了一个新颖且有效的思路。 2. 系统化的平台构建:不仅提出了理论方法,还完整地构建了一个功能齐全的在线系统(CodeArena),涵盖了从问题收集、质量控制、测试生成、代码执行、动态评分到数据开放的完整工作流。 3. 强调开放与自动化:将“开放数据存储库”和“自动化友好API”作为核心贡献,直接针对现有评估方法在数据消散和系统可访问性方面的痛点,极大地促进了研究的可重复性和协作效率。 4. 实证验证:通过运行平台并展示初步的排行榜和动态分数趋势图,为所提出机制的有效性提供了实证支持,并揭示了开源与闭源模型在持续评估中可能存在的不同表现模式。

六、 其他有价值内容

研究也坦诚地指出了CodeArena平台的局限性。首先,其问题依赖外部数据源(如LeetCode, Codeforces),可能存在可用性和质量问题。其次,评估质量依赖于GPT-4o等工具生成的测试用例,这些用例可能不够详尽,无法覆盖所有边界情况。这些自我剖析指明了未来改进的方向,例如开发更强大的测试用例生成方法或建立更高质量的内部问题库。

此外,文档包含了详细的伦理声明,强调平台遵守数据管理规范,尊重知识产权(仅使用原创或已获授权的问题),并通过统一的提示词和标准化环境来确保评估的公平性,体现了研究的严谨性和社会责任感。附录部分还提供了完整的闭源模型API列表、用于评估的统一提示词模板、模型推理配置细节以及用户组的详细定义,增加了研究的透明度和可复现性。

上述解读依据用户上传的学术文献,如有不准确或可能侵权之处请联系本站站长:admin@fmread.com