CoRNStack:用于更优代码检索和排序的高质量对比数据集
计算与语言
2025-03-05 v3 信息检索
摘要
有效的代码检索在推动代码生成、错误修复和软件维护方面发挥着关键作用,尤其是随着软件系统复杂度的增加。虽然当前的代码嵌入模型在检索小规模、明确定义任务的代码片段方面表现突出,但在更具挑战性的实际应用中(如 GitHub 仓库内的错误定位)常常表现不佳。我们假设,其关键问题之一是模型在训练时依赖噪声且一致性不足的数据集,这阻碍了其在更复杂检索场景中的泛化能力。为此,我们引入 CoRNStack,一个跨越多种编程语言的大规模高质量对比训练数据集。该数据集通过一致性过滤消除噪声正样本,并进一步加入挖掘的硬负样本,以促进更有效的学习。我们展示,使用 CoRNStack 对代码嵌入模型进行对比式训练可实现在多种代码检索任务中实现最先进的性能。此外,该数据集可用于训练代码排序模型,而这一领域相较于文本排序研究尚不充分。我们的微调代码排序模型显著提高了检索结果的排序质量。最后,通过联合使用我们的方法构建的代码检索器和排序器,我们在函数定位方面实现了对 GitHub 问题的显著提升,这是实际软件开发中的重要组成部分。
引用
@article{arxiv.2412.01007,
title = {CoRNStack: High-Quality Contrastive Data for Better Code Retrieval and Reranking},
author = {Tarun Suresh and Revanth Gangi Reddy and Yifei Xu and Zach Nussbaum and Andriy Mulyar and Brandon Duderstadt and Heng Ji},
journal= {arXiv preprint arXiv:2412.01007},
year = {2025}
}
备注
Published as a conference paper at ICLR 2025. First and second author had equal contribution