CodeSearchNet
收藏arXiv2025-04-28 更新2025-05-13 收录
下载链接:
http://arxiv.org/abs/2504.19444v1
下载链接
链接失效反馈官方服务:
资源简介:
CodeSearchNet是一个广泛应用于代码智能任务的数据集。该数据集通过将原始的人类编写的注释替换为大型语言模型生成的注释,重建了数据集,从而提高了代码模型的预训练数据质量。这一方法通过使用大型语言模型生成的注释,提高了代码总结、代码生成、代码翻译等任务的性能,为代码智能任务的训练数据提供了新的思路。
CodeSearchNet is a dataset widely utilized in code intelligence tasks. By replacing the original human-written comments with those generated by large language models, the dataset is reconstructed, thereby improving the quality of pre-training data for code models. This approach, which uses comments generated by large language models, enhances the performance of tasks such as code summarization, code generation, and code translation, and provides new insights for training data in code intelligence tasks.
提供机构:
国防科技大学计算机学院, 中国
创建时间:
2025-04-28
搜集汇总
数据集介绍

构建方式
CodeSearchNet数据集的构建采用了大规模语言模型(LLMs)生成代码注释的方法,以替代传统的人工编写注释。具体流程包括:首先从开源软件仓库中收集代码片段,随后利用GPT-3.5-Turbo等LLMs生成与代码语义高度一致的注释。为确保数据质量,研究团队设计了标准化的提示模板,并设置了生成长度限制(max tokens=30),以匹配人工注释的简洁性。此外,通过API批量处理了约207万对代码-注释实例,覆盖Java、Python等六种编程语言,最终形成增强版数据集cgpt-CSN。
特点
该数据集的核心特点体现在其注释质量的显著提升。通过LLMs生成的注释展现出更低的代码-注释不一致率(IncRate仅1.30%),且在语义代码搜索任务中MRR得分高达0.9562,远超人工注释的0.8165。数据覆盖维度广,包含六种主流编程语言,注释文本兼具术语准确性和语义丰富性(平均15.22个单词/注释)。特别值得注意的是,LLM生成的注释在词汇多样性上优于人工注释(6,721个独特词汇 vs 5,854个),为模型训练提供了更丰富的语义表达空间。
使用方法
该数据集主要应用于代码智能任务的预训练与微调。使用时可分三个阶段:首先基于cgpt-CSN进行模型预训练(推荐CodeT5架构),采用掩码跨度预测等四种预训练任务;其次在下游任务微调时,可将代码生成、代码摘要等任务的输入替换为LLM生成的注释以提升性能;最后通过参考无关指标(IncRate/MRR)和传统指标(BLEU/USE)进行多维度评估。对于代码搜索任务,建议将注释作为查询输入训练后的语义搜索模型,其MRR指标可直接反映注释质量。
背景与挑战
背景概述
CodeSearchNet是由Husain等人于2019年创建的大规模代码搜索基准数据集,旨在推动语义代码搜索领域的研究。该数据集由来自GitHub的六种编程语言(Go、Java、JavaScript、PHP、Python和Ruby)的代码片段及其对应自然语言注释组成,共包含约200万对代码-注释数据。作为首个专注于跨模态代码搜索的基准数据集,CodeSearchNet通过提供标准化的评估框架,显著促进了代码表示学习和代码智能任务的发展。数据集由美国微软研究院主导开发,其创新性地将自然语言处理技术与软件工程需求相结合,为后续CodeBERT、GraphCodeBERT等预训练模型的诞生奠定了数据基础。
当前挑战
CodeSearchNet面临的核心挑战体现在两个维度:在领域问题层面,代码注释的时效性问题导致语义不一致,研究表明超过三分之一的Java注释未能准确描述代码核心功能;在构建过程层面,数据质量控制存在显著困难,包括:1)代码演化导致的注释滞后现象,2)自动爬取的注释质量参差不齐,3)跨编程语言的语义对齐问题。特别值得注意的是,传统基于人工参考注释的评估方法存在固有缺陷,当注释本身质量不佳时会直接影响模型性能评估的可靠性。这些挑战促使研究者开始探索利用大语言模型重构数据集的新范式。
常用场景
经典使用场景
在代码智能领域,CodeSearchNet数据集被广泛用于预训练代码模型,如CodeBERT和CodeT5。这些模型通过学习代码片段与自然语言注释之间的语义关联,提升代码理解与生成任务的性能。该数据集尤其适用于跨模态任务,如代码摘要生成、代码搜索和代码翻译,为研究社区提供了标准化的评估基准。
衍生相关工作
该数据集催生了多项经典研究,如CodeT5的跨任务统一预训练框架、GraphCodeBERT的代码结构增强表示方法。后续工作进一步探索了多模态融合(如UniXcoder结合AST)和细粒度评估指标(如基于不一致性检测的注释质量分析),推动了代码智能从单一任务向通用能力发展的范式转变。
数据集最近研究
最新研究方向
近年来,CodeSearchNet数据集在代码智能领域的研究方向主要集中在利用大型语言模型(LLMs)提升预训练数据集的语义一致性。研究表明,传统依赖人工编写代码注释的方法存在注释与代码不一致的问题,这会影响预训练模型在下游任务中的表现。通过引入LLMs生成的注释,研究人员发现这些注释在语义一致性上优于人工编写的参考注释,从而显著提升了代码摘要、代码生成和代码翻译等任务的性能。这一发现不仅验证了LLMs在构建高质量预训练数据集方面的潜力,也为代码智能任务的数据集优化提供了新的思路。
相关研究论文
- 1Large Language Models are Qualified Benchmark Builders: Rebuilding Pre-Training Datasets for Advancing Code Intelligence Tasks国防科技大学计算机学院, 中国 · 2025年
以上内容由遇见数据集搜集并总结生成



