利用 ChatGPT 增强代码智能任务
软件工程
2023-12-27 v1
摘要
预训练代码模型已成为各种代码智能任务中的关键工具。然而,其有效性取决于预训练数据集的质量,特别是作为编程语言与自然语言之间桥梁的人工参考注释。一个重大挑战是,随着软件演进,此类注释可能与相应代码变得不一致。这种差异可能导致模型训练次优,从而降低其性能。大语言模型(LLMs)已展示出生成高质量代码注释的卓越能力。鉴于此,我们试图利用 LLM 的力量来解决数据集的质量问题。具体而言,我们提出问题:我们能否通过将原始注释替换为 LLM 生成的注释来重建预训练数据集,以获得更有效的预训练代码模型?为回答这一问题,我们首先进行全面评估,比较 ChatGPT 生成的注释与人工参考注释。由于现有的基于参考的指标将参考注释视为黄金标准,我们引入了两项辅助任务作为新的无参考指标来评估注释质量,即代码 - 注释不一致性检测和代码搜索。实验结果表明,与人工参考相比,ChatGPT 生成的注释展现出更优越的代码语义一致性,表明利用 ChatGPT 提升预训练数据集质量的潜力。我们利用 ChatGPT 生成的注释重建了广泛使用的 CodeSearchNet 数据集。随后的实验涉及使用我们优化的数据集对 CodeT5 进行重新预训练。在四项生成任务和一项理解性代码智能任务上的评估结果显示,经 ChatGPT 增强数据预训练的模型在代码摘要、代码生成和代码翻译任务上优于其对应模型。
引用
@article{arxiv.2312.15202,
title = {Enhancing Code Intelligence Tasks with ChatGPT},
author = {Kang Yang and Xinjun Mao and Shangwen Wang and Tanghaoran Zhang and Bo Lin and Yanlin Wang and Yihao Qin and Zhang Zhang and Xiaoguang Mao},
journal= {arXiv preprint arXiv:2312.15202},
year = {2023}
}
备注
10 pages, 5 figures