PaperWeekly 4小时前
模型真能“反思代码”吗?北航发布仓库级理解生成基准,刷新LLM理解评估范式
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

大型语言模型在代码理解和生成领域进步显著,但传统基准测试忽略了实际代码仓库场景。本文介绍了LiveRepoReflection,一个评估多文件仓库代码理解和生成能力的新基准,包含1888个测试案例,涵盖6种编程语言。研究团队还创建了RepoReflection-Instruct数据集,用于训练RepoReflectionCoder,并在40多个LLM上进行了评估。结果显示,LiveRepoReflection更具挑战性,为真实世界代码生成与修复能力提供了更准确的衡量标准。

📚 LiveRepoReflection是一个针对多文件代码仓库理解和生成的高难度基准,包含1888个经过严格筛选的测试案例,涵盖6种编程语言,确保多样性、正确性和高难度。

🔧 RepoReflection-Instruct是一个大规模、质量过滤的指令调整数据集,通过两轮对话过程(代码生成和错误驱动修复)训练RepoReflectionCoder,提升模型在仓库级代码反思方面的能力。

🌐 LiveRepoReflection评测基准采用严格的筛选流程,包括自动流程生成、难度筛选和人工标注,确保测试案例的质量和难度,有效防止模型对特定数据集的过拟合。

📊 实验评估了40多个LLM,结果显示领先的闭源模型表现最佳,开源模型表现落后,但允许二次尝试时显示类似的相对提升。Python任务最简单,而C++和Rust最具挑战性。

🔍 LiveRepoReflection能够真实有效地测量模型在跨文件依赖和迭代修复场景中的反思和修复能力,为后续研究提供了坚实基础,为多文件仓库代码理解和生成树立了新的标准。

让你更懂AI的 2025-08-05 20:06 北京

全面刷新模型能力评估

大型语言模型(LLMs)在代码理解和生成领域取得了长足进步,能够跨越多种编程语言提供智能反馈、检测潜在 bug 并基于人类指令更新代码片段。代码反思(Code Reflection)作为 LLM 检查并修改其先前响应的能力,显著提升了开发效率和编程可访问性。

尽管 HumanEval、LiveCodeBench 等基准测试评估了代码生成和现实相关性,但现有工作忽略了在代码仓库中修改代码的实际场景。

考虑到提高反思能力和避免动态基准中数据污染的挑战,本文提出了 LiveRepoReflection,一个挑战性基准,用于评估多文件仓库上下文中的代码理解和生成能力,包含跨 6 种编程语言的 1,888 个经过严格筛选的测试案例,确保多样性、正确性和高难度。

我们创建了 RepoReflection-Instruct,一个大规模、质量过滤的指令调整数据集,用于训练 RepoReflectionCoder,通过涉及代码生成和错误驱动修复的两轮对话过程。我们的排行榜评估了超过 40 个 LLMs,综合反映了模型在基于仓库的代码反思方面的表现。

项目主页: 

http://livereporeflection.github.io/

论文标题:

Turning the Tide: Repository-based Code Reflection

评测数据:

https://github.com/LiveRepoReflection/LiveRepoReflection

代码链接:

https://github.com/LiveRepoReflection/LiveRepoReflection-Project


背景——仓库级代码反思任务

与传统代码生成任务相比,代码仓库反思面临更为复杂的挑战。如上图所示,相较于从头生成代码的简单任务,仓库反思要求模型理解多文件的依赖关系,并能根据编译或运行时错误进行系统性的代码修改。

LiveRepoReflection 基准通过设计严格的评估流程,测试模型是否能够:

1. 理解完整仓库结构和多文件依赖关系

2. 根据错误信息进行有针对性的代码修改

3. 在不同编程语言间保持一致的高性能


自动动态管道构建

为避免数据污染和基准过拟合问题,作者提出了一套自动动态的数据构建流程:

1. 从 Exercism 等来源提取仓库代码,优化仓库文件结构

2. 从 GitHub、Hugging Face 和 Stack Overflow 等公开来源收集代码片段

3. 按编程语言过滤数据

4. 使用随机选择的“创意型” LLM 从种子数据生成程序主题和定义

5. 使用多个“推理型” LLM 生成单元测试和参考解决方案

6. 交叉执行验证每个单元测试-解决方案对,筛选异常,保留通过率最低的测试和通过率最高的解决方案

7. 将所有内容打包为最终的仓库结构

这一流程确保了基准的高质量和动态更新能力,有效防止了模型对特定数据集的过拟合。

同时,我们尽可能标准化仓库结构,提供了 Python,Java,Rust,CPP,Go 和 JavaScript 共六种编程语言的标准结构。


LiveRepoReflection 评测基准

为确保 LiveRepoReflection 的质量和难度,研究团队采用了严格的筛选流程:

1. 可执行程序筛选:从自动流程生成的 10 万个仓库案例中,在沙箱中运行,包括环境设置、编译和测试,剔除所有 LLM 都能通过或运行时间超过 180 秒的案例,保留 1 万个高难度、高正确性的案例。

2. 难度筛选:10 个主流强推理 LLM 对每个代码程序案例进行测试,每个 LLM 有一次修改机会。根据通过率将案例分为“简单”、“中等难度”和“高难度”,保留 2300 个高质量、高难度、高多样性的案例。

3. 人工标注:8 位研究生在完整代码运行沙箱环境中对每个案例进行检查,确认代码程序案例的合理性、环境配置、文件结构、参考答案和单元测试的正确性,最终保留 1,888 个测试案例。

与现有 Aider Polyglot 基准相比,LiveRepoReflection 在多个维度上实现了显著提升:问题数量增加了 8 倍以上,提供了更丰富的问题描述和示例上下文,平均每个仓库包含更多文件,更真实地模拟了实际代码库的复杂结构。


RepoReflectionCoder 训练

为训练高性能的 RepoReflectionCoder,研究团队构建了 RepoReflection-Instruct 指令语料库:

1. 高质量数据筛选:从约 50 万个自动管道生成的代码示例中,通过严格的拒绝采样保留符合五项标准的高质量数据:

2. 质量评分机制:使用加权评分函数评估每个代码程序,考虑执行能力、新颖性、难度、代码风格和困惑度的逆向指标。

3. 数据去污染:通过 MinHash 算法和 LSH 索引高效过滤与测试集相似度高于 0.8 的候选文本,确保训练数据与测试集的纯净度。

4. 多轮交互生成:使用四个顶级模型模拟 84 万多轮编码对话,包括直接生成(40%)、错误驱动修复(40%)、风格标准化(10%)和对话总结(10%)。


实验结果

LiveRepoReflection 提供了两种评估格式:全文件代码生成和基于补丁的增量编辑。

实验评估了 GPT-4.5、Claude-3.7、OpenAI o 系列 / GPT4 系列、Gemini、Qwen 系列以及 Grok 等 40 多个 LLM,采用四个关键指标:

1. Pass@1:LLM 首次尝试完成的编码任务比例

2. Pass@2:查看失败代码和错误消息后二次尝试的成功率

3. 修复权重(FW):二次尝试成功中错误诊断和修正的相对贡献

4. 格式合规(WF):LLM 严格遵循系统提示中指定编辑格式的百分比

结果显示:

1. 领先的闭源模型在一次性和反馈后准确率方面始终表现最佳

2. 开源模型表现落后,但在允许二次尝试时显示类似的相对提升

3. 各系统发现 Python 任务最简单,而 C++ 和 Rust 最具挑战性

4. 几乎每个模型的格式合规率都超过 90%

5. RepoReflectionCoder 明显优于基础 Qwen2.5-Coder,但仍落后于顶级闭源表现者。

与 Aider Polyglot 基准相比,LiveRepoReflection 更具挑战性,几乎所有模型在新基准上的表现都低于老基准,证明了其更高的难度水平和对真实世界代码生成与修复能力的评估价值。


结论与展望

本研究提出了 LiveRepoReflection,一个针对多文件代码仓库理解和生成的高难度基准,通过自动化流程和人工验证确保了测试案例的多样性、正确性和挑战性。同时,研究团队构建了RepoReflection-Instruct 指令集并训练了 RepoReflectionCoder,在基于仓库的代码反思能力方面取得显著性能提升。

实验结果表明,LiveRepoReflection 能够真实有效地测量模型在跨文件依赖和迭代修复场景中的反思和修复能力,为后续研究提供了坚实基础。尽管模型性能还有提升空间,但本研究为多文件仓库代码理解和生成树立了新的标准。

作者与机构

张蔚,北京航空航天大学和上海人工智能实验室联合培养在读博士一年级,主要研究方向为代码智能,曾经在通义千问实习。

杨健,北京航空航天大学计算机学院副教授,在 ICLR、NeurIPS、ACL 等国际期刊/会议发表第一/通讯作者 20 余篇,谷歌学术引用 8000+ 次,并担任 NeurIPS、ACL 等国际会议的领域主席。曾作为阿里星入职 Qwen,积极推动代码大模型开源。

李舟军,北京航空航天大学计算机学院教授,信息安全系主任,智能信息处理研究所副所长。国务院学位委员会首届网络空间安全学科评议组成员,中国人工智能学会语言智能专委会副主任委员,深圳智能思创创始人与首席科学家。

更多阅读

#投 稿 通 道#

 让你的文字被更多人看到 


如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。

总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。 

PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析科研心得竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。

📝 稿件基本要求:

• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注 

• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题

• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算

📬 投稿通道:

• 投稿邮箱:hr@paperweekly.site 

• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者

• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿


△长按添加PaperWeekly小编


🔍

现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧


·

阅读原文

跳转微信打开

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

AI代码反思 LiveRepoReflection 代码生成 多文件仓库
相关文章