ProjectEval: A Benchmark for Programming Agents Automated Evaluation on Project-Level Code Generation

TL;DR

提出ProjectEval,基于用户交互模拟的项目级代码生成自动评估基准,涵盖三层输入和284个测试用例。

cs.SE 🔴 高级 2025-03-10 48 次浏览
Kaiyuan Liu Youcheng Pan Yang Xiang Daojing He Jing Li Yexing Du Tianrun Gao
AI评测 代码生成 大模型 自动化 项目级评估

核心发现

方法论

本研究构建了ProjectEval基准,通过结合大语言模型(如GPT-4o)与人工审查,设计了三层输入(自然语言、清单、骨架)和模拟用户交互的测试流程。评估指标包括执行成功率(Pass@K)和代码相似度(CodeBLEU、Levenshtein距离等),实现了自动化、可解释的项目级代码评估。采用284个真实任务和多样化测试用例,结合用户交互模拟,突破了传统仅依赖单元测试或人工评判的局限。

关键结果

  • 在20个任务中,GPT-4o的Pass@5平均达到了12.49%,整体正确率较低,显示出当前模型在复杂项目中的不足。
  • 多层次输入(自然语言、清单、骨架)显著提升了评估的细粒度和可解释性,尤其在用户交互模拟中表现优异。
  • 实验表明,系统性工程理解和全面分析能力是实现实用项目的关键,模型在复杂任务中的表现仍有较大提升空间。

研究意义

本研究填补了项目级代码生成评估中自动化和可解释性不足的空白,为未来开发更具实用性的编程代理提供了标准和工具。通过模拟用户交互,评估结果更贴近实际应用场景,有助于推动大模型在工业界的落地应用,解决传统评测方法的局限性,促进智能软件开发的创新。

技术贡献

提出结合多层输入和用户交互模拟的评估框架,创新性地引入自动化测试套件和多指标融合机制,显著提升评估的自动化程度和解释性。设计了284个真实任务,丰富了项目级评估场景,为模型性能分析提供了细粒度指标,推动了自动化评测技术的发展。

新颖性

首次提出基于用户交互模拟的项目级自动评估基准,突破了传统单元测试和人工评判的限制,结合多层输入和多指标融合,增强了评估的实用性和解释性,具有较强创新性。

局限性

  • 当前模型在复杂项目中的成功率仍较低,尤其在多任务、多模块集成场景下表现不足,反映出模型理解和推理能力的局限。
  • 评估依赖模拟用户交互,实际应用中可能存在偏差,未来需结合真实用户反馈进行优化。
  • 测试用例设计和任务复杂度有限,未来应扩展多样化场景和更复杂的用户需求。

未来方向

未来将结合多模态信息和强化学习技术,提升模型的项目理解和执行能力。计划引入真实用户反馈机制,优化评估流程,扩展任务规模,推动评估体系的工业化应用,促进智能软件开发的持续创新。

AI 总览摘要

随着大规模语言模型(LLMs)在编程领域的快速发展,评估其项目级代码生成能力成为行业和学术界的核心挑战。传统的评测方法多依赖单元测试或人工判定,难以全面反映模型在复杂项目中的实际表现。为此,本文提出了ProjectEval,一种基于用户交互模拟的自动化评估基准,旨在模拟真实用户场景,全面衡量模型的理解、分析和工程实现能力。

ProjectEval设计了三层输入(自然语言提示、任务清单、代码骨架),结合自动化测试套件和参数分析,支持网站和批处理任务。通过结合大模型(如GPT-4o)与人工审查,构建了284个真实任务,涵盖多样化复杂场景。评估指标包括执行成功率(Pass@K)和代码相似度(CodeBLEU、Levenshtein距离),实现了自动化、细粒度和可解释的评估体系。

实验结果显示,GPT-4o在20个任务中的平均Pass@5为12.49%,表现仍有限,反映出模型在项目理解和工程实现方面的不足。多层次输入显著提升了评估的细节和解释性,验证了系统工程理解和分析能力的重要性。研究表明,未来提升模型的项目级能力需结合多模态信息和强化学习技术,优化用户交互体验。

该基准不仅丰富了项目级代码生成的评估手段,也为工业界提供了更贴近实际的性能衡量工具,有助于推动智能编程代理的落地应用。尽管目前仍存在模型性能不足和任务复杂度限制,但本研究为未来智能软件开发提供了坚实基础,开启了自动化、可解释、实用的项目级评估新时代。

深度分析

研究背景

近年来,随着大规模预训练模型(如GPT系列、Codex、CodeGen)在代码生成中的突破,研究者逐步关注模型在复杂项目中的应用能力。早期的HumanEval和MBPP等基准主要评估单个函数或算法实现,缺乏对项目整体理解的考察。随着模型能力的提升,出现了一些项目级评估工具(如DevBench、ProjectDev),但多依赖人工评审或单一测试单元,难以真实反映工业应用中的复杂场景。本研究基于此背景,提出了更贴近实际的自动化、可解释的项目级评估体系,旨在推动模型在复杂软件开发中的应用。

核心问题

现有评估方法多局限于单元测试或人工判定,难以全面衡量模型在实际项目中的表现。尤其在多任务、多模块集成、用户交互复杂的场景下,模型的理解、分析和工程实现能力不足,导致评估结果偏离实际应用需求。缺乏多层次、多指标的细粒度评估体系,限制了模型性能的深入分析和优化。如何设计一个既自动化、又具有良好解释性的评估框架,成为行业亟待解决的问题。

核心创新

本研究的核心创新在于:1)引入多层次输入(自然语言提示、任务清单、骨架),丰富模型理解的维度;2)结合用户交互模拟,提升评估的真实性和实用性;3)设计多指标融合机制(Pass@K、CodeBLEU、Levenshtein距离),实现细粒度评估;4)构建284个真实复杂任务,覆盖多场景,增强评估的代表性。这些创新突破了传统单一测试或人工判定的局限,为项目级代码生成的自动评估提供了新思路。

方法详解

  • �� 任务设计:从公开场景和自定义场景中收集20个复杂项目任务,配备详细描述和测试用例。
  • �� 输入层次:设计三层输入(自然语言提示、任务清单、骨架),由大模型生成详细描述和测试代码。
  • �� 评估流程:模型生成代码后,自动转换为可执行项目,模拟用户交互(如浏览器操作或命令行交互)进行测试。
  • �� 指标计算:结合Pass@K和多指标(CodeBLEU、Levenshtein距离)评估模型输出的准确性和相似性。
  • �� 人工审查:结合人工修正和验证,确保评估的可靠性和解释性。

实验设计

采用284个真实任务,覆盖网站和批处理场景,使用GPT-4o等多模型进行测试。指标包括Pass@K(平均14.2测试用例通过率)和代码相似度。通过不同输入层次的模型输出比较,分析模型在理解、分析和工程实现的能力。还进行了不同模型(如Llama、Gemma、GPT-3.5、GPT-4o)性能对比,验证评估体系的有效性。实验还包括不同任务难度和场景的性能分析,确保评估的全面性。

结果分析

GPT-4o在20个任务中的平均Pass@5为12.49%,表现虽优但仍有限,显示模型在复杂项目中的不足。多层次输入显著提升了评估的细节和解释性,验证了系统工程理解和分析能力的重要性。模型在不同场景下表现差异明显,提示未来需结合多模态信息和强化学习技术提升能力。评估体系的多指标融合为模型性能分析提供了丰富的维度。

应用场景

该评估体系可用于工业界模型性能的真实场景测试,帮助开发者优化模型架构和训练策略,提升自动化软件开发效率。未来可结合持续集成(CI)流程,实现模型在实际开发中的持续评估和优化,推动智能编程代理的商业落地。

局限与展望

目前模型在复杂、多任务场景中的成功率仍较低,评估依赖模拟用户交互,可能偏离真实用户体验。测试用例设计有限,未来需扩展多样化场景和复杂需求。此外,评估成本较高,模型推理和测试时间较长,限制了大规模推广。未来需优化测试流程和模型能力,解决这些瓶颈。

通俗解读 非专业人士也能看懂

想象你在一家厨房里做饭。每次做菜都需要准备食材、按照食谱操作,还要确保菜做好了。传统评估就像是厨师自己试吃,或者用简单的味道测试。现在,ProjectEval像是请一个虚拟的厨师(模型)来做菜,它不仅要按照不同的食谱(输入层次)做,还要模拟顾客(用户)试吃,确保菜的味道和外观都符合要求。通过这种方式,不仅可以自动检查菜是否合格,还能告诉你哪里做得好,哪里需要改进。这种方法让评估变得更真实、更细致,也更容易理解和改进。

简单解释 像给14岁少年讲一样

想象你在学校的科学实验室里做实验。以前,只是老师看你做的实验是否成功,或者用一些简单的测试来判断。而现在,你用一个智能机器人帮你做实验,它不仅会按照说明书操作,还会模拟你在实验中遇到的问题,比如漏掉的步骤或者错误的操作。这个机器人还能告诉你哪里做得好,哪里还可以改进。这样,你就可以更快、更准确地知道你的实验结果,也能学到更多的知识。这个研究就像是让机器人帮你评估你的“实验”——写代码,确保它们不仅能运行,还能满足用户的需求。这样一来,软件开发就变得像科学实验一样,有了更科学、更自动化的评估方法。

原文摘要

Recently, LLM agents have made rapid progress in improving their programming capabilities. However, existing benchmarks lack the ability to automatically evaluate from users' perspective, and also lack the explainability of the results of LLM agents' code generation capabilities. Thus, we introduce ProjectEval, a new benchmark for LLM agents project-level code generation's automated evaluation by simulating user interaction. ProjectEval is constructed by LLM with human reviewing. It has three different level inputs of natural languages or code skeletons. ProjectEval can evaluate the generated projects by user interaction simulation for execution, and by code similarity through existing objective indicators. Through ProjectEval, we find that systematic engineering project code, overall understanding of the project and comprehensive analysis capability are the keys for LLM agents to achieve practical projects. Our findings and benchmark provide valuable insights for developing more effective programming agents that can be deployed in future real-world production.

cs.SE cs.CL