中文

深度学习模型用于语义克隆检测的应用

软件工程 2024-12-20 v1 机器学习

摘要

检测和跟踪代码克隆可以在代码片段更改需要在其所有副本中传播时,简化各种软件开发和维护任务。尽管已出现多个基于深度学习的克隆检测模型用于检测语法克隆和语义克隆,广泛使用BigCloneBench数据集进行评估。然而,类别不平衡和语义克隆的数量较小使得BigCloneBench不够理想,用于解释模型性能。研究人员还使用其他数据集(如GoogleCodeJam、OJClone和SemanticCloneBench)来了解模型的通用性。为克服现有数据集的局限性,已发布GPT辅助的语义和跨语言克隆数据集GPTCloneBench。然而,这些模型在不同数据集上的比较仍不清晰。本文提出了一种多步骤评估方法,用于利用现有基准数据集(包括GPTCloneBench),并使用突变算子研究模型能力。具体而言,我们在BigCloneBench、SemanticCloneBench和GPTCloneBench上测试了三个高性能单语言模型(ASTNN、GMN、CodeBERT),使用突变操作测试其鲁棒性。此外,我们将其与已知用于检测语义克隆的跨语言模型(C4、CLCDSA)进行比较。尽管单语言模型在BigCloneBench上表现出高F1分数,但在SemanticCloneBench上的性能变化显著(最高可达20%)。有趣的是,跨语言模型C4在SemanticCloneBench上表现优异(约高出7%),在BigCloneBench和GPTCloneBench上表现相当。在突变数据集上,C4的鲁棒性更好(与单语言模型相比差距不足1%),而单语言模型显示出高异质性。

关键词

引用

@article{arxiv.2412.14739,
  title  = {On the Use of Deep Learning Models for Semantic Clone Detection},
  author = {Subroto Nag Pinku and Debajyoti Mondal and Chanchal K. Roy},
  journal= {arXiv preprint arXiv:2412.14739},
  year   = {2024}
}

备注

Accepted at the 40th IEEE International Conference on Software Maintenance and Evolution (ICSME 2024)