Large Language Models are Qualified Benchmark Builders: Rebuilding Pre-Training Datasets for Advancing Code Intelligence Tasks
作者: Kang Yang, Xinjun Mao, Shangwen Wang, Yanlin Wang, Tanghaoran Zhang, Bo Lin, Yihao Qin, Zhang Zhang, Yao Lu, Kamal Al-Sabahi
分类: cs.SE, cs.CL
发布日期: 2025-04-28
备注: Awarded the ACM SIGSOFT Distinguished Paper Award in ICPC 2025
💡 一句话要点
利用大语言模型重建预训练数据集,提升代码智能任务性能
🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)
关键词: 代码智能 预训练模型 大型语言模型 代码注释生成 数据集重建
📋 核心要点
- 现有代码预训练模型依赖的人工注释易过时,影响模型性能,亟需更有效的注释生成方法。
- 利用大语言模型生成高质量代码注释,替换人工注释,提升预训练数据集的质量和一致性。
- 实验表明,使用LLM增强的数据训练的模型在代码摘要、生成和翻译任务中均优于基线模型。
📝 摘要(中文)
预训练代码模型严重依赖高质量的预训练数据,特别是连接代码和自然语言的人工编写的参考注释。然而,随着软件的演进,这些注释经常变得过时,从而降低模型性能。大型语言模型(LLM)擅长生成高质量的代码注释。本文研究了用LLM生成的注释替换人工编写的注释是否能改善预训练数据集。由于标准指标无法评估参考注释的质量,因此提出了两个新的无参考评估任务:代码-注释不一致性检测和语义代码搜索。结果表明,LLM生成的注释在语义上比人工编写的注释与代码更一致,这已通过人工评估得到证实。利用这一发现,本文使用LLM生成的注释重建了CodeSearchNet数据集,并重新预训练了CodeT5。评估表明,在代码摘要、生成和翻译任务中,使用LLM增强的数据训练的模型优于使用原始人工注释训练的模型。这项工作验证了使用LLM重建预训练数据集以推进代码智能,挑战了传统上对人工参考注释的依赖。
🔬 方法详解
问题定义:现有代码预训练模型依赖于人工编写的代码注释,这些注释在软件迭代过程中容易过时,导致代码和注释之间的语义不一致,从而降低预训练模型的性能。现有的评估指标难以有效衡量代码注释的质量,缺乏有效的手段来提升预训练数据的质量。
核心思路:利用大型语言模型(LLM)强大的自然语言生成能力,自动生成高质量的代码注释,并用其替换人工编写的注释,从而提升预训练数据集的质量和代码-注释一致性。核心在于利用LLM的语义理解能力,生成与代码语义更匹配的注释。
技术框架:该方法主要包含以下几个阶段:1) 使用LLM生成代码注释。2) 使用提出的无参考评估指标(代码-注释不一致性检测和语义代码搜索)评估LLM生成注释的质量。3) 使用LLM生成的注释重建CodeSearchNet数据集。4) 使用重建的数据集重新预训练CodeT5模型。5) 在代码摘要、生成和翻译等下游任务上评估重新预训练的模型的性能。
关键创新:主要创新点在于:1) 提出利用LLM自动生成代码注释,替代人工编写的注释,从而提升预训练数据集的质量。2) 提出两个新的无参考评估任务:代码-注释不一致性检测和语义代码搜索,用于评估代码注释的质量。3) 验证了使用LLM增强的预训练数据可以有效提升代码智能任务的性能,挑战了传统上对人工参考注释的依赖。
关键设计:具体使用的LLM模型未知,但强调了其生成高质量代码注释的能力。在重建CodeSearchNet数据集时,使用LLM生成的注释替换了原始的人工注释。在预训练CodeT5模型时,使用了标准的代码预训练流程。代码-注释不一致性检测任务的具体实现细节未知,语义代码搜索任务的具体实现细节也未知。损失函数和网络结构等细节与原始CodeT5模型保持一致。
🖼️ 关键图片
📊 实验亮点
实验结果表明,使用LLM生成的注释重建的CodeSearchNet数据集,并重新预训练的CodeT5模型,在代码摘要、生成和翻译任务中均取得了显著的性能提升。具体提升幅度未知,但强调了优于使用原始人工注释训练的模型。人工评估也证实了LLM生成的注释在语义上比人工编写的注释与代码更一致。
🎯 应用场景
该研究成果可广泛应用于代码智能领域,例如提升代码搜索、代码摘要、代码生成、代码翻译等任务的性能。通过自动生成高质量的代码注释,可以降低人工标注成本,加速代码智能模型的开发和部署。此外,该方法还可以应用于软件维护和文档生成等领域,提高软件开发效率和质量。
📄 摘要(原文)
Pre-trained code models rely heavily on high-quality pre-training data, particularly human-written reference comments that bridge code and natural language. However, these comments often become outdated as software evolves, degrading model performance. Large language models (LLMs) excel at generating high-quality code comments. We investigate whether replacing human-written comments with LLM-generated ones improves pre-training datasets. Since standard metrics cannot assess reference comment quality, we propose two novel reference-free evaluation tasks: code-comment inconsistency detection and semantic code search. Results show that LLM-generated comments are more semantically consistent with code than human-written ones, as confirmed by manual evaluation. Leveraging this finding, we rebuild the CodeSearchNet dataset with LLM-generated comments and re-pre-train CodeT5. Evaluations demonstrate that models trained on LLM-enhanced data outperform those using original human comments in code summarization, generation, and translation tasks. This work validates rebuilding pre-training datasets with LLMs to advance code intelligence, challenging the traditional reliance on human reference comments.