神经代码搜索评估数据集
本文提出一个数据清洗框架,包含基于规则的句法过滤器和基于模型的语义过滤器,将其应用于神经代码搜索数据集,以提高数据集质量和模型性能。实验证明,使用我们的框架训练神经代码搜索模型可平均提高 19.2%的 MRR 和 21.3%的 Answer@1。
Feb, 2022
提出并研究了注释代码搜索:使用自然语言查询检索与简短描述其意图的代码片段。通过在三个基准数据集上研究如何利用描述来更好地捕捉代码片段的意图,建立了一种用自然语言描述注释的领域特定检索模型。发现相对于不使用描述但仅尝试从未注释的代码中计算片段意图的最新代码检索方法,我们的模型可以获得显著更相关的搜索结果(平均倒数排名的绝对增益高达 20.6%)。
Aug, 2020
本研究使用神经机器翻译模型,创建了一个包括四种自然语言和四种编程语言的多语言代码搜索数据集,并使用 Transformer 模型预训练和微调,然后在多个代码搜索测试集上进行评估。结果显示,预训练模型在自然语言和编程语言数据上表现最佳。通过应用反向翻译数据过滤,研究表明翻译质量在一定程度上影响模型的性能,但数据规模更为重要。
Jun, 2023
语义代码搜索是软件工程中提高生产力的重要任务。该论文介绍了 CoSQA+,它通过将高质量的查询与多个合适的代码配对,来解决现有代码搜索数据集存在的问题,并利用大型语言模型自动化进行配对注释、过滤和代码生成,提高了模型性能。此外,还提出了一个新的评估标准 MMRR 来评估一对多代码搜索的性能。
Jun, 2024
通过引入 CoSQA 数据集,我们提出了一种名为 CoCLR 的对比学习方法,该方法的作用是作为一种数据增强器,以产生更多人工生成的训练实例,从而增强查询 - 代码匹配,实验表明,使用 CoSQA 进行训练可将代码问题回答的准确性提高 5.1%,并且使用 CoCLR 进一步提高 10.5%。
May, 2021
提出了 CodeQA,一个免费的自由格式问题回答数据集,旨在实现源代码理解:给定代码片段和问题,需要生成文本答案。包含 119,778 个 Java 问题 - 答案对和 70,085 个 Python 问题 - 答案对的 CodeQA 数据集。通过语法规则和语义分析将代码注释转换为问题 - 答案对。对数据集进行了系统分析,并展示了几个神经网络的实验结果。尽管关于问题回答和机器阅读理解的研究发展迅速,但很少有先前的工作关注代码问题回答。这个新数据集可以作为源代码理解研究的有用基准。
Sep, 2021
该研究描述了一种通用的语义代码搜索方法以及 CodeSearchNet Corpus,这个语料库包含来自六种编程语言的六百万个开源代码函数和自动生成的 2 百万个函数的查询式自然语言,该方法支持自然语言查询并能输出相应的代码建议。
Sep, 2019
大型语言模型在生产性活动的代码生成方面表现出强大的能力。然而,当前的代码合成基准主要面向算法和数据科学的入门任务,在真实世界的编码中对具有挑战性的要求不够满足。为了填补这一差距,我们提出了 NaturalCodeBench(NCB)作为一个具有挑战性的代码基准,旨在模拟真实编码任务的复杂性和多样性。NCB 由来自在线编码服务的自然用户查询中精心挑选的 402 个高质量问题组成,涵盖了 6 个不同领域。我们还引入了半自动化流程来提高测试用例构建的效率,相比手动解决方案,效率提高了 4 倍以上。我们对 39 个大型语言模型进行了系统实验,发现在 NCB 上,具有接近 HumanEval 评分的模型之间的性能差距仍然可能很大,表明对实际代码合成场景的关注不足或在 HumanEval 上过度优化。另一方面,即使是表现最佳的 GPT-4 在 NCB 上仍然远未令人满意。评估工具和开发集可在此 URL 获取。
May, 2024
提出了一个新的 SearchBySnippet 数据集并建立了一个单一编码器模型 SnippeR,用于针对代码搜索的基准测试。在这一设置中,现有的架构即使是经过精细调整后也远远不及最简单的 BM25 基准。
May, 2023
本研究构建了一个名为 CodeQueries 的数据集,并提出了基于神经网络的代码语义查询系统,结果表明神经模型可以对代码语法错误进行容错,但代码规模增大、存在不相关的代码以及训练例子减少均会限制模型性能。
Sep, 2022