论文
薛定谔的代码存储库:大语言模型是否已学习或记住了 SWE-bench?
Schrödinger's Code Repository: Have LLMs Learned SWE-bench or Memorized It?
摘要
存储库级编码基准已成为评估编码代理的标准,但它们本质上会遭受数据泄漏,因为它们是建立在反复用于训练的流行开源存储库之上的。因此,出色的表现可能反映了对规范存储库线索的记忆,而不是强大的存储库推理。我们提出了 SchrodingerRepo(薛定谔存储库),这是一个用于在动态实例化存储库表示下测试编码代理的评估框架。 SchrodingerRepo 没有重复使用测试存储库的静态表示,而是将测试存储库视为评估时潜在变量,仅在代理进入评估环境时才动态实例化。实例化的存储库保留了原始的可执行行为,同时通过四个转换级别消除了熟悉的线索,例如命名约定、文件布局和实现模式:问题陈述重建、命名空间重新映射、文件内布局重新排序和功能保留代码重写。我们在 SWE-bench Verified 和 SWE-QA 上评估热门的大语言模型。结果表明,删除熟悉的存储库线索会持续降低代理性能,并大幅增加跨模型的交互成本。进一步分析表明,额外成本主要是由于存储库探索和本地化难度增加造成的。这些发现表明,当前的编码代理可能部分依赖于记忆的存储库端线索,突出了在动态实例化的存储库表示下进行评估的需要。