当前位置: 首页 > news >正文

SWE-bench: Can Language Models Resolve Real-World GitHub Issues 论文笔记

介绍

(1) 发表:ICLR'24

(2) 背景

现有 benchmarks 已经饱和,无法捕获最先进的语言模型和无法做到的前沿,需要具有挑战性的新 benchmark 来更准确的反映语言模型的现实应用

工作

(1) 数据集构建

该工作从 Github 上流行的 12 个开源 python 库中收集了约 90000 个 PR,然后进行特定的过滤操作,最终得到了 2294 个任务实例(代码库有数千个文件很大,并且 PR 通常会一次更改多个文件)。为了鼓励数据集的使用,该工作还创建了一个来自 SWE Bench 的 300 个实例的 lite 子集,这些实例已被取样以更独立

后来 OpenAI 对 SWE-bench 做了一些完善操作,对所有 case 进行了人工验证,最后留下了 SWE-bench_Verified 数据集,目前官方榜单以此为准

(2) 模型输入

image-20250805160136745

在 SWE-bench 数据集中,对于每个任务实例,输入格式主要是将问题描述相关的代码文件内容组合在一起提供给模型。这些内容被组织成一种模型能够理解的格式,以帮助模型识别问题并生成解决方案

(3) 检索方式

  • 稀疏检索:采用 BM25 算法为每个任务实例检索相关文件作为上下文。实验设置了三种不同的最大上下文限制,在模型的上下文窗口允许范围内,尽可能多地检索文件,并评估模型在不同限制下的性能,最终选取最佳性能结果。实际观察发现,模型在最短上下文窗口下表现最佳
  • "Oracle" 检索:直接选择参考补丁在 GitHub 上解决问题时所编辑的文件作为上下文(相当于有已知信息,实际场景中工程师事先往往不知道这些)。几乎一半的实例中,BM25 没有检索到 "Oracle" 上下文中的任何文件

(4) 验证实验

为了更好地评估这些模型的功能,该工作对 Codellama-python 模型进行了有监督的微调(收集了另外 19000 个 PR 作为训练集)

image-20250805172127227

可以看到各个模型的整体表现不佳

总结

LLM 用于软件维护的开创性 benchmark,具有挑战性和实际意义

http://www.sczhlp.com/news/6928/

相关文章:

  • Python实现信号小波分解与重构
  • 【笔记】DP 优化 2025.8.3
  • 影像+病理+转录组+基因组+蛋白组多模态的胶质瘤分型 R包已发布可以直接使用 居然使用R语言分析的 !
  • MX-2025 盖世计划 C 班 Day 4 复盘
  • 《AI-Assisted Programming》读后感
  • .NET周刊【7月第3期 2025-07-20】
  • stm32 HAL库下 阻塞 中断(it) DMA 三种模式下的串口通讯函数逻辑梳理(不一定正确)
  • 使用DPO在SageMaker中定制Nova模型
  • 测试用例设计的7大核心方法:高效捕捉Bug的终极指南
  • 服务器网络慢到怀疑人生?Linux TCP/IP调优实战,性能提升200%+
  • 【IoTDB 线上小课 18】Apache 软件基金会是什么?开源世界的“超级孵化器”!
  • cellchat-气泡图美化
  • 贝塞尔曲线(Bzier curve)及应用
  • 思通数科AI视频卫士:用AI重塑无人机河道巡检新范式
  • heapdump深度利用之信息泄露篇
  • Transformer
  • python_Day05学习笔记
  • 第8章 指针(正在更新中......)
  • 区间 dp
  • 状压 dp
  • 使用 Docker 部署 Elasticsearch 集群
  • MBD笔记:PWM与DC-DC变换器的模型设计
  • ClickHouse 添加磁盘扩容存储
  • 作业感想
  • 软考系统分析师每日学习卡 | [日期:2025-08-06] | [今日主题:索引文件]
  • 我遇到的winapps问题解决方案
  • 完整教程:力扣面试150(45/150)
  • const char* 指针作为函数参数也能被修改?
  • C# 中 typeof 的正确打开方式:你真的了解它吗?
  • Docker部署Minio Java操作Minio - br