CodeClash: 目标导向软件工程基准测试

发表
JohnJohn 提交
作者: JohnJohn Yang, Kilian Lieret, Joyce Yang, Carlos E. Jimenez, Ofir Press, Ludwig Schmidt, Diyi Yang

摘要

AI 生成总结
CodeClash 通过竞争性多轮锦标赛,评估语言模型迭代开发代码以实现开放式目标的能力。
当前对编码的基准测试是在具体的、明确指定的任务上评估语言模型(LMs),例如修复特定的错误或编写有针对性的测试。然而,人类程序员并非整日持续处理孤立的任务。相反,现实世界的软件开发是基于追求高层次目标的,例如提高用户留存率或降低成本。评估语言模型是否也能迭代开发代码以更好地实现开放式目标而无需任何明确指导,仍然是一个开放的挑战。为了解决这个问题,我们引入了 CodeClash,这是一个基准测试,其中语言模型在多轮锦标赛中竞争,以构建实现竞争目标的最佳代码库。每轮比赛分两个阶段进行:智能体编辑其代码,然后其代码库在代码竞技场中进行正面竞争,根据得分最大化、资源获取或生存等目标来确定胜者。无论是编写笔记、仔细审查文档、分析竞争日志还是创建测试套件,模型都必须自行决定如何绝对地以及相对于其对手来改进其代码库。我们运行了 1680 场锦标赛(总共 25,200 轮),评估了 6 个竞技场中的 8 个语言模型。我们的结果表明,虽然模型表现出多样化的开发风格,但它们在战略推理方面存在根本性局限。模型在长期代码库维护方面也面临困难,因为存储库会逐渐变得混乱和冗余。这些局限性是显而易见的:顶级模型在与专家人类程序员的每轮比赛中都失败了。我们开源了 CodeClash,以推进自主、面向目标的编码开发研究。
查看 arXiv 页面查看 PDF

评论

JohnJohn
论文作者
论文提交者

针对语言模型(LM)的代码评估(例如 HumanEval、SWE-bench)都是高度面向任务的——“实现一个函数”、“修复一个错误”、“编写一个测试”。

我们精确地告诉语言模型我们希望它们做什么,并根据单元测试的正确性对其进行评分。

但这种框架忽视了软件工程师的一个重要方面。当我们编写代码和开发令人印象深刻的软件系统时,我们是由目标驱动的。高层目标(例如,提高用户留存率、降低成本、增加收入)从根本上激励着我们最初进行构建。

如果我们有一种编码评估能够捕捉到真实世界软件开发的这种动态性,那会怎么样?

我们很高兴能分享我们对目标驱动型软件工程进行基准测试的尝试——CodeClash

在 CodeClash 中,2 个以上的模型通过多轮锦标赛竞争,以构建最佳代码库来实现在整个过程中实现高层目标。

preview

每轮都有两个阶段:
* 编辑阶段:模型可以根据需要更改其代码库。
* 竞争阶段:它们的代码库在代码竞技场中竞争。

赢得多数轮次的语言模型被宣布为胜利者。

感谢您的阅读!如果这让您感到兴奋,请查看论文和我们的网站以获取所有详细信息!

https://codeclash.ai/