⏶8
SweRank:基于代码排序的软件问题定位
发表
由
Tarun Suresh 提交
作者: Revanth Gangi Reddy, Tarun Suresh, JaeHyeok Doo, Ye Liu, Xuan Phi Nguyen, Yingbo Zhou, Semih Yavuz, Caiming Xiong, Heng Ji, Shafiq Joty
摘要
软件问题定位,即识别与自然语言问题描述(例如,错误报告、功能请求)相关的精确代码位置(文件、类或函数)的任务,是软件开发中一个关键但耗时的方面。尽管最近基于大型语言模型(LLM)的代理方法展现出潜力,但由于复杂的 Muti-step reasoning 和依赖闭源大型语言模型,它们通常会产生显著的延迟和成本。另一方面,传统的代码排名模型,通常针对查询到代码或代码到代码的检索进行优化,难以处理问题定位查询冗长和描述失败性质的特点。为了弥合这一差距,我们引入了 SweRank,一个用于软件问题定位的高效且有效的检索-重排序框架。为了方便训练,我们构建了 SweLoc,一个从公共 GitHub 仓库整理而成的大规模数据集,其中包含真实世界的问题描述及其相应的代码修改。在 SWE-Bench-Lite 和 LocBench 上的实证结果表明,SweRank 达到了最先进的性能,优于先前的排名模型以及使用像 Claude-3.5 这样的闭源大型语言模型的昂贵代理系统。此外,我们证明了 SweLoc 在增强各种现有检索器和重排序器模型进行问题定位方面的效用,使该数据集成为社区的宝贵资源。
激动地宣布 SWERank,我们的用于软件问题定位的代码排序框架。
论文:https://bit.ly/3S0x1fV
GitHub 项目主页:https://bit.ly/42SESm3
AI 生成的播客:https://bit.ly/3GMF51H
代码、数据和模型:即将推出!
精确定位软件问题在代码中的确切位置是软件开发过程中关键但通常耗时的一部分。当前用于定位的基于 Agent 的方法可能缓慢且昂贵,依赖于复杂步骤和通常是闭源的模型。
我们引入 SWERank,这是一个检索-重排序框架,它由 SWERankEmbed(一个双编码器代码检索器)和 SWERankLLM(一个列表式 LLM 代码重排序器)组成。
SWERank 比其他基于 Agent 的方法成本效益显著更高,并且性能显著优越。我们 7B 的 SweRankEmbed 检索器甚至超越了使用 Claude-3.5 运行的 LocAgent!