论构建高质量训练数据集对神经代码搜索的重要性
软件工程
2022-02-15 v1 人工智能
摘要
神经代码搜索的性能显著受其所基于的训练数据质量的影响。要建立从自然语言到编程语言的精确映射,需要大量高质量的查询与代码对语料。由于可用数据有限,大多数广泛使用的代码搜索数据集都是折中构建的,例如使用代码注释替代查询。我们对一个著名代码搜索数据集的实证研究表明,超过三分之一的查询含有噪声,使其偏离自然用户查询。通过含噪数据训练的模型在真实场景应用中面临严重的性能退化。提升数据集质量并使其样本的查询在语义上与真实用户查询一致,对神经代码搜索的实际可用性至关重要。本文提出一个数据清洗框架,由随后的两个过滤器组成:基于规则的句法过滤器和基于模型的语义过滤器。这是首个将语义查询清洗应用于代码搜索数据集的框架。在实验上,我们在两个广泛使用的代码搜索模型和三个人工标注的代码检索基准上评估了框架的有效性。使用我们框架过滤后的数据集训练流行的 DeepCS 模型,在三个验证基准上平均将其性能提升了 19.2% 的 MRR 和 21.3% 的 Answer@1。
引用
@article{arxiv.2202.06649,
title = {On the Importance of Building High-quality Training Datasets for Neural Code Search},
author = {Zhensu Sun and Li Li and Yan Liu and Xiaoning Du and Li Li},
journal= {arXiv preprint arXiv:2202.06649},
year = {2022}
}
备注
11 pages, accepted to ICSE 2022