论文标题
评估ML4SE模型的项目级微调
Assessing Project-Level Fine-Tuning of ML4SE Models
论文作者
论文摘要
软件工程(ML4SE)的机器学习是一个积极发展的研究领域,侧重于帮助程序员进行工作。为了在实践中应用开发的方法,他们需要实现合理的质量才能帮助而不是分散开发人员的注意力。尽管开发新方法来代码表示和数据收集可以提高模型的整体质量,但它没有考虑到我们可以从当前项目中获得的信息。 在这项工作中,我们研究了如果我们针对特定项目,则如何提高模型的质量。我们开发一个框架来评估质量改进,模型在对特定项目的方法名称预测任务进行微调后可以得到。我们评估了三种不同复杂性的模型,并在三种设置中比较了它们的质量:在大型Java项目的大数据集中培训,进一步对特定项目的数据进行了微调,并从头开始训练了此数据。我们表明,每次项目的微调可以极大地提高模型的质量,因为它们捕获了项目的领域和命名约定。我们开放用于数据收集的工具以及运行实验的代码:https://zenodo.org/record/6040745。
Machine Learning for Software Engineering (ML4SE) is an actively growing research area that focuses on methods that help programmers in their work. In order to apply the developed methods in practice, they need to achieve reasonable quality in order to help rather than distract developers. While the development of new approaches to code representation and data collection improves the overall quality of the models, it does not take into account the information that we can get from the project at hand. In this work, we investigate how the model's quality can be improved if we target a specific project. We develop a framework to assess quality improvements that models can get after fine-tuning for the method name prediction task on a particular project. We evaluate three models of different complexity and compare their quality in three settings: trained on a large dataset of Java projects, further fine-tuned on the data from a particular project, and trained from scratch on this data. We show that per-project fine-tuning can greatly improve the models' quality as they capture the project's domain and naming conventions. We open-source the tool we used for data collection, as well as the code to run the experiments: https://zenodo.org/record/6040745.