CoSQA+: Enhancing Code Search Dataset with Matching Code

2024年06月17日
  • 简介
    本文介绍了一种重要的任务——语义代码搜索,即检索与给定自然语言查询匹配的代码,以提高软件工程中的生产力。现有的代码搜索数据集存在问题:要么使用不现实的查询,要么存在不匹配的代码,通常使用一对一的查询-代码配对,无法反映查询可能有多个有效代码匹配的现实情况。本文介绍了CoSQA+,将高质量的查询(从CoSQA中重复使用)与多个合适的代码配对。我们从不同的来源收集代码候选项,并通过将查询与这些代码配对来形成候选对。利用大型语言模型(LLMs)的能力,我们自动化对配对进行注释、过滤和代码生成,以处理没有合适匹配的查询。通过大量实验,CoSQA+已经证明优于CoSQA。在CoSQA+上训练的模型表现出了改进的性能。此外,我们提出了一种新的指标——平均多选互惠排名(MMRR),用于评估一对多的代码搜索性能。我们在https://github.com/DeepSoftwareAnalytics/CoSQA_Plus上提供了代码和数据。
  • 图表
  • 解决问题
    本论文旨在解决语义代码搜索中的问题,即如何匹配自然语言查询与多个合适的代码。此前的数据集存在问题,如查询不现实、代码不匹配等,而且通常使用一对一的查询代码匹配,无法反映查询可能有多个有效代码匹配的现实情况。
  • 关键思路
    本文提出了CoSQA+,将高质量的查询(从CoSQA中复用)与多个合适的代码配对。我们从各种来源收集代码候选项,并通过将这些代码与查询配对来形成候选对。利用大型语言模型(LLM)的强大功能,我们自动化进行了对配对进行注释、过滤和代码生成,以便为没有合适匹配的查询生成代码。CoSQA+在实验中表现出优越的质量,比CoSQA更好。在CoSQA+上训练的模型表现出更好的性能。此外,我们提出了一个新的指标Mean Multi-choice Reciprocal Rank(MMRR),用于评估一对N代码搜索性能。
  • 其它亮点
    本文的亮点包括:使用了高质量的查询和多个合适的代码进行匹配;利用大型语言模型自动化进行配对注释、过滤和代码生成;提出了新的指标MMRR,用于评估一对N代码搜索性能。此外,作者还提供了代码和数据集。
  • 相关研究
    最近在这个领域中,还有一些相关的研究,如CodeSearchNet、SOGS、CoNaLa等。
PDF
原文
点赞 收藏 评论 分享到Link

沙发等你来抢

去评论