分享自:

SWE-Bench:语言模型能否解决现实世界的GitHub问题?

期刊:ICLR 2024

学术报告:SWE-Bench——语言模型能否解决真实GitHub问题?


作者及发表信息

本研究的核心作者包括Carlos E. Jimenez(普林斯顿大学及普林斯顿语言与智能研究所)、John Yang(同前)、Alexander Wettig等,团队来自普林斯顿大学、芝加哥大学等机构。研究成果以会议论文形式发表于ICLR 2024,标题为《SWE-Bench: Can Language Models Resolve Real-World GitHub Issues?》。


学术背景

科学领域:本研究属于自然语言处理(NLP)与软件工程交叉领域,聚焦于大语言模型(Large Language Models, LLMs)在真实软件开发环境中的能力评估。

研究动机:当前语言模型的评估基准(如HumanEval)多局限于短代码片段生成,无法反映实际软件工程中跨文件、多功能的复杂问题解决需求。因此,作者提出SWE-Bench,通过真实GitHub问题(issues)和拉取请求(pull requests, PRs)构建任务实例,测试模型在代码编辑、长上下文理解及跨模块协调中的表现。

目标
1. 建立一个可持续更新的评估框架,涵盖真实软件工程问题;
2. 验证现有语言模型(如Claude 2、GPT-4)解决复杂问题的能力边界;
3. 推动模型向更实用、自主的方向发展。


研究流程与方法

1. 数据收集与任务构建

  • 数据来源:从12个热门Python仓库(如Django、scikit-learn)中筛选90,000个PRs,最终保留2,294个高质量任务实例。
  • 筛选标准
    • PRs需解决至少一个GitHub issue,且包含测试文件修改;
    • 通过执行验证确保PR能通过测试(fail-to-pass测试至少1个)。
  • 任务定义:给定代码库和问题描述,模型需生成代码补丁(patch)解决问题,并通过测试验证。

2. 基准设计

  • 输入:问题描述(平均195词) + 完整代码库(平均3,010个文件)。
  • 输出:模型生成符合Unix patch格式的编辑指令。
  • 评估指标:补丁应用成功率及测试通过率。

3. 模型评估

  • 测试模型:包括Claude 2、GPT-4、ChatGPT-3.5及作者微调的SWE-Llama(基于CodeLlama)。
  • 上下文处理:采用BM25稀疏检索和“Oracle”检索(仅提供需编辑的文件)两种策略,对比模型在不同上下文长度下的表现。

4. 创新方法

  • SWE-Llama:通过19,000个非测试任务实例微调CodeLlama,支持超长上下文(>100k tokens)。
  • 轻量版SWE-Bench Lite:包含300个更独立的任务,降低评估成本。

主要结果

  1. 模型性能低下

    • 最佳模型Claude 2仅解决1.96%的任务(BM25检索),Oracle检索下提升至4.8%。
    • 模型生成的补丁通常较短(平均30.1行 vs. 黄金补丁74.5行),且极少跨文件编辑。
  2. 关键挑战

    • 长上下文干扰:增加检索文件数量会降低模型表现(如Claude 2在50k token上下文下性能下降40%)。
    • 多模态需求:部分任务含图像描述(如matplotlib issues),需模型处理非文本信息。
  3. 微调模型表现

    • SWE-Llama 13B在特定场景下与Claude 2相当,但依赖“Oracle”检索,对上下文分布敏感。

结论与价值

科学意义
- 揭示了当前语言模型在真实软件工程任务中的局限性,尤其是长上下文理解和跨文件协调能力不足。
- 提出了首个基于真实GitHub问题的评估框架,填补了传统代码生成基准的空白。

应用价值
- 为未来模型开发指明方向:需增强代码库导航、多模态理解和测试验证能力。
- 开源数据集(SWE-Bench-Train)和模型(SWE-Llama)支持社区进一步研究。


研究亮点

  1. 真实性:任务直接源自开源社区,涵盖bug修复、功能添加等多样化需求。
  2. 可扩展性:框架支持持续添加新任务,避免基准过时。
  3. 多维度评估:不仅测试功能正确性,还考察补丁质量(如代码风格、依赖兼容性)。

其他发现

  • 时间鲁棒性:模型在2023年前后的问题上表现无显著差异,表明其未依赖训练数据中的解决方案记忆。
  • 解决方案多样性:允许模型生成与黄金PR不同的合法补丁,鼓励创新性解决路径。

(报告总字数:约1500字)

上述解读依据用户上传的学术文献,如有不准确或可能侵权之处请联系本站站长:admin@fmread.com