中文

利用现代机器学习充分利用小型软件工程数据集

软件工程 2021-06-30 v1

摘要

本文为面临在小型数据集上训练机器学习模型问题的软件工程(SE)研究人员与从业者提供了一个起点。由于标注数据成本高昂,软件工程中存在许多小型(< 1 000 样本)与中型(< 100 000 样本)数据集。尽管深度学习已在诸多机器学习任务中确立最先进水平,但直到最近才证明其在小型数据集上有效,这主要归功于预训练——一种利用丰富无标注数据与稀缺标注数据的半监督学习技术。本工作中,我们在 SE 文献中选取的 13 个较小数据集上评估预训练的 Transformer 模型,涵盖源代码与自然语言。结果表明,预训练 Transformer 具有竞争力且在某些情况下优于先前模型,尤其涉及自然语言的任务;而对于源代码任务,特别是极小型数据集,传统机器学习方法往往更占优势。此外,我们尝试了若干应有助于小型数据集训练的技术,包括主动学习、数据增强、软标签、自训练与中间任务微调,并就其在何时有效给出建议。我们还发布了所有数据、脚本,以及最重要的供社区在其自身数据集上复用的预训练模型。

关键词

引用

@article{arxiv.2106.15209,
  title  = {Making the most of small Software Engineering datasets with modern machine learning},
  author = {Julian Aron Prenner and Romain Robbes},
  journal= {arXiv preprint arXiv:2106.15209},
  year   = {2021}
}