CoSQA+:通过匹配代码增强代码搜索数据集
通过引入 CoSQA 数据集,我们提出了一种名为 CoCLR 的对比学习方法,该方法的作用是作为一种数据增强器,以产生更多人工生成的训练实例,从而增强查询 - 代码匹配,实验表明,使用 CoSQA 进行训练可将代码问题回答的准确性提高 5.1%,并且使用 CoCLR 进一步提高 10.5%。
May, 2021
基于检索的代码问答模型通过预训练模型使用构建的双模和单模数据集来匹配自然语言查询与相关代码片段。本文介绍了 ProCQA,一个从 StackOverflow 社区提取的大规模编程问答数据集,提供自然结构的混合模态问答对。为了验证其有效性,我们提出了一种模态不可知的对比预训练方法,以改善当前代码语言模型的文本和代码表示之间的对齐。与先前主要使用从 CodeSearchNet 中提取的双模和单模对进行预训练的模型相比,我们的模型在广泛的代码检索基准上表现出显著的性能改进。
Mar, 2024
本文提出一个数据清洗框架,包含基于规则的句法过滤器和基于模型的语义过滤器,将其应用于神经代码搜索数据集,以提高数据集质量和模型性能。实验证明,使用我们的框架训练神经代码搜索模型可平均提高 19.2%的 MRR 和 21.3%的 Answer@1。
Feb, 2022
本文介绍了一种新的代码到代码搜索技术,通过包括静态和动态特征以及在训练过程中利用相似和不同的示例来提高大型语言模型的性能。我们展示了第一个能够在训练期间编码动态运行时信息的代码搜索方法,在推断时间无需执行搜索语料库或搜索查询,同时还是第一个训练正负参考样本的代码搜索技术。我们通过一系列研究验证了我们方法的有效性,并展示了增强 LLMs 执行跨语言代码到代码搜索的能力。我们的评估表明,我们的方法的效果在各种模型架构和编程语言中都是一致的。此外,我们的消融研究表明,即使在训练过程中只有一个正面和负面参考样本,也会产生相当大的性能提高,这证明了相似和不同的参考是代码搜索的重要部分。重要的是,我们展示了精心制作的、经过调整的模型在性能上始终优于未调整的更大的现代 LLMs,即使是在增强最大可用 LLMs 时也是如此,这凸显了开源模型的重要性。为了确保我们研究的可重复性和可扩展性,我们介绍了一个名为 Cosco 的开源实现和培训过程
May, 2023
本文介绍了一种自然语言代码搜索模型的性能评估方法,并提供了包含查询和代码碎片对的评估数据集,以作为未来工作的标准基准。此外,本文还提供了最近工作中两种代码搜索模型的研究结果。
Aug, 2019
提出了 CodeQA,一个免费的自由格式问题回答数据集,旨在实现源代码理解:给定代码片段和问题,需要生成文本答案。包含 119,778 个 Java 问题 - 答案对和 70,085 个 Python 问题 - 答案对的 CodeQA 数据集。通过语法规则和语义分析将代码注释转换为问题 - 答案对。对数据集进行了系统分析,并展示了几个神经网络的实验结果。尽管关于问题回答和机器阅读理解的研究发展迅速,但很少有先前的工作关注代码问题回答。这个新数据集可以作为源代码理解研究的有用基准。
Sep, 2021
本研究构建了一个名为 CodeQueries 的数据集,并提出了基于神经网络的代码语义查询系统,结果表明神经模型可以对代码语法错误进行容错,但代码规模增大、存在不相关的代码以及训练例子减少均会限制模型性能。
Sep, 2022
CS1QA 是一个用于编程教育领域中的基于代码的问答数据集,由 Python 入门编程课程的聊天记录中的 9237 个问题 - 答案对和 17698 个未注释的带代码的聊天数据组成,可以用作来源码理解和问答的基准。
Oct, 2022
本文提出了一种新的从 Stack Overflow 上系统挖掘问题 - 代码对的方法,并利用双视图层次神经网络模型进行预测,成功地创建出目前最大的 Python 和 SQL 领域的问题 - 代码对数据集 StaQC,可以有效地帮助自然语言处理模型与编程语言的关联。
Mar, 2018
本文提出了 CoCoSoDa 的方法,充分利用了对比学习进行代码搜索方面应用的两个关键因素:数据扩充和负样本。该方法使用软数据扩充技术生成正样本,使用动量机制生成一致的负样本表示,使用多模式的对比学习方法,既拉紧了代表代码 - 查询对的表示,又将不成对的代码片段和查询推开。对大型数据集进行的广泛实验表明,该方法的性能显著优于 14 个基线,并在平均 MRR 分数上分别超过 CodeBERT、GraphCodeBERT 和 UniXcoder 的 13.3%、10.5%和 5.9%。
Apr, 2022