Commit Classification (CC) is an important task in software maintenance, which helps software developers classify code changes into different types according to their nature and purpose. It allows developers to understand better how their development efforts are progressing, identify areas where they need improvement, and make informed decisions about when and how to release new software versions. However, existing models need lots of manually labeled data for fine-tuning processes, and ignore sentence-level semantic information, which is often essential for discovering the difference between diverse commits. Therefore, it is still challenging to solve CC in fewshot scenario. To solve the above problems, we propose a contrastive learning-based commit classification framework. Firstly, we generate $K$ sentences and pseudo-labels according to the labels of the dataset, which aims to enhance the dataset. Secondly, we randomly group the augmented data $N$ times to compare their similarity with the positive $T_p^{|C|}$ and negative $T_n^{|C|}$ samples. We utilize individual pretrained sentence transformers (ST)s to efficiently obtain the sentence-level embeddings from different features respectively. Finally, we adopt the cosine similarity function to limit the distribution of vectors, similar vectors are more adjacent. The light fine-tuned model is then applied to the label prediction of incoming commits. Extensive experiments on two open available datasets demonstrate that our framework can solve the CC problem simply but effectively in fewshot scenarios, while achieving state-of-the-art(SOTA) performance and improving the adaptability of the model without requiring a large number of training samples for fine-tuning. The code, data, and trained models are available at https://github.com/AppleMax1992/CommitFit.
翻译:[translated abstract in Chinese]
提交分类(Commit Classification,CC)是软件维护中的一项重要任务,它帮助软件开发人员根据代码变更的性质与目的将其分类为不同类型。该任务使开发人员能够更清晰地了解开发工作的进展、识别需要改进的领域,并就何时及如何发布新软件版本做出明智决策。然而,现有模型需要大量手动标注数据进行微调,且忽略了句子级语义信息(而该信息通常对发现不同提交之间的差异至关重要)。因此,在少样本场景下解决提交分类问题仍具挑战性。为解决上述问题,我们提出了一种基于对比学习的提交分类框架。首先,根据数据集标签生成K个句子和伪标签,旨在增强数据集;其次,将增强后的数据随机分组N次,以比较其与正样本T_p^{|C|}和负样本T_n^{|C|}的相似性。我们利用独立的预训练句子转换器(Sentence Transformers,ST)分别从不同特征中高效获取句子级嵌入表示。最后,采用余弦相似度函数限制向量分布,使相似向量在空间中更邻近。经过轻量级微调后的模型被应用于新生成提交的标签预测。在两个公开数据集上的大量实验表明,我们的框架能够在少样本场景下简单而有效地解决提交分类问题,同时达到最先进的性能,并提升模型适应性,而无需大量训练样本进行微调。代码、数据和训练好的模型已开源至https://github.com/AppleMax1992/CommitFit。