论文

SynH-Rank:通过多样化数据合成和分层排名训练进行质量感知代码搜索

SynH-Rank: Quality-Aware Code Search via Diverse Data Synthesis and Hierarchical Ranking Training

模型训练合成数据

摘要

代码搜索通过实现高效的代码重用来提高开发人员的工作效率。当前的代码搜索系统通常使用检索然后重新排序管道,其中重新排序器专注于对查询和代码之间的语义相关性进行建模。然而,这些重新排序器忽略了关键的非功能性质量,例如执行速度、内存使用和可维护性,而这些对于实际软件开发至关重要。研究表明,开发人员期望结果能够保持高编码标准并满足特定需求,例如资源优化,这凸显了质量意识代码搜索的重要性。实现质量感知代码搜索面临两个主要挑战:用于有效训练的质量注释数据集的稀缺以及标准对比学习目标的局限性,这些目标无法捕获高质量、低质量和不相关代码之间的顺序关系。尽管对比学习擅长区分相关代码和不相关代码,但其二元目标不支持细微的质量区别。为了应对这些挑战,我们提出了 SynH-Rank,这是一种质量感知的代码重新排名框架,它将 LLM 驱动的多样化数据合成与分层排名训练相结合。 SynH-Rank 采用三级标记方案来显式建模层次结构:高质量相关 > 低质量相关 > 不相关。此外,我们引入了一个包含 4,209 对的新基准和两个新颖的指标:用于评估高质量代码优先级的质量偏好准确性 (QPA) 和用于评估复杂约束下性能的多条件准确性 (MCA)。实验结果表明,与骨干模型相比,SynH-Rank 将 QPA 提高了 20.15%,比标准的仅相关性对比训练高出 15.80%,同时增强了传统的相关性指标和多条件泛化性。