中文

面向软件工程的多语言训练

软件工程 2022-02-04 v4 机器学习

摘要

利用大量开源软件数据训练的机器学习模型,现已成为自动化诸多软件工程任务的一种引人关注的方法。过去几年中,若干软件工程任务都采用了该方法,随着模型和训练方法的改进,性能逐步提升。更多且更多样化、干净、带标签的数据更利于训练;但构建高质量数据集耗时且具有挑战性。增强干净带标签数据的数量与多样性的方法通常具有广泛适用性。对于某些语言(如 Ruby),带标签数据较匮乏;而对于其他语言(如 JavaScript),可用数据可能更聚焦于某些应用领域,因而多样性较低。作为规避此类数据瓶颈的途径,我们给出的证据表明,执行相同功能的不同人类编写代码相当相似,且尤其保留了标识符命名模式;我们进一步给出的证据表明,标识符是软件工程任务训练数据中极为重要的元素。我们利用这一颇为幸运的现象,寻找证据表明可用的多语言训练数据(跨不同语言)可用于提升性能。我们针对三项不同任务进行研究:代码摘要、代码检索与函数命名。我们注意到,这种数据增强方法与不同任务、语言和机器学习模型具有广泛兼容性。

关键词

引用

@article{arxiv.2112.02043,
  title  = {Multilingual training for Software Engineering},
  author = {Toufique Ahmed and Premkumar Devanbu},
  journal= {arXiv preprint arXiv:2112.02043},
  year   = {2022}
}

备注

Accepted at International Conference on Software Engineering (ICSE-2022)