大多数编码代理基准测试忽略了大规模重构。这个没有。

大多数编码代理基准测试忽略了大规模重构。这个没有。

💡 原文英文,约1200词,阅读约需5分钟。
📝

内容提要

新基准SWE-Bench ProMax评估AI编码代理的大规模重构能力,结果显示最佳模型仅解决41.2%任务。该基准包含170个实例、7种语言,经多阶段筛选确保质量。专家指出,AI在理解大型代码库、处理时间相关问题和注意力机制上存在局限,建议结合结构化工具和人工验证提升性能。

🔎

延伸解读

基准测试的“饱和”问题

SWE-Bench ProMax 的推出,反映了当前编码基准测试面临的一个核心问题:许多基准已“饱和”,前沿模型可能因训练数据泄露而轻松得分,导致评估失真。该基准通过多阶段筛选,确保任务具有足够复杂性和跨文件范围,从而提供一个“未饱和”的挑战。这提醒开发者,高分并不等于真实能力,选择基准时需关注其设计是否贴近实际任务。

重构为何难倒AI

文章指出,大规模重构要求零容错、零行为变化和完全可逆性,而当前LLM在理解大型代码库时存在根本局限。专家认为,将代码视为纯文本的“token邻近”并不保证结构理解,且注意力机制在长上下文下易遗漏关键信息。此外,时间相关的问题(如竞态条件)也常被忽略。这些因素共同导致AI在重构任务上表现不佳。

提升AI重构能力的路径

专家建议采用多层级方法:先分析代码库生成详细规格,利用检索增强生成(RAG)而非纯注意力机制,并引入人工验证。同时,强调开发“结构化感知”的工具,让LLM驱动确定性工具(如LSP和代码图)执行小步变更,而非直接生成多文件diff。这为开发者提供了改进AI编码代理的可行方向。

Q&A

SWE-Bench ProMax是什么?

SWE-Bench ProMax是一个新的AI编码代理基准测试,专注于大规模代码重构,包含170个实例,覆盖Python、Java、TypeScript、Go、C、C++和Rust七种编程语言。

SWE-Bench ProMax与现有基准测试有何不同?

SWE-Bench ProMax专门针对大规模重构任务,而大多数现有基准测试倾向于快速运行且任务简单,无法覆盖复杂的跨文件重构。它通过多阶段筛选确保质量,包括精确化问题描述、人工审查测试套件、过滤低复杂度任务。

AI编码代理在SWE-Bench ProMax上的表现如何?

最佳模型在SWE-Bench ProMax上的解决率仅为41.2%,表明当前AI编码代理在大规模重构任务上仍有很大提升空间。

为什么大规模重构对AI编码代理来说很难?

大规模重构难在需要零容忍错误、零行为变化和完全可逆性。AI模型在理解大型代码库、处理时间相关问题和注意力机制上存在局限,例如可能忽略重要信息或混淆。

专家建议如何提升AI编码代理的重构能力?

专家建议采用多层级方法:先分析和映射代码库以生成详细规格,使用检索增强生成(RAG)来回忆相关代码,引入人工验证,并实施完整的测试套件。此外,让LLM驱动确定性、结构感知的工具,如查询语言服务器协议(LSP)和代码图工具,而不是直接生成多文件差异。

为什么现有基准测试可能高估AI编码代理的能力?

现有基准测试可能因测试缺陷、训练数据泄漏或任务过于简单而高估AI能力。例如,近60%的未解决SWE-bench Verified实例包含有缺陷的测试,且许多前沿模型可能已经记住了常见基准的答案。

🏷️

标签

➡️

继续阅读