GPTCloneBench:使用GPT-3模型和SemanticCloneBench的语义克隆和跨语言克隆的全面基准测试
摘要:使用机器学习(ML)使得BigCloneBench在语义克隆检测工具中受欢迎。然而,BigCloneBench只有很少的Java语义克隆。此外,由于基准的设计原则,已经发现了一些不平衡的问题,包括对语义克隆定义的模棱两可。因此,基于BigCloneBench训练的基于ML的克隆检测算法可能会忽视语义克隆或报告错误的结果。SemanticCloneBench包含了几种语言的Stack Overflow克隆,但缺乏基于ML的克隆检测样本。跨语言克隆基准也存在明显的缺乏。广泛使用的CLCDSA数据集缺乏可重用的示例,无法用于实际软件系统,使其对基于ML的克隆检测不足够。OpenAI GPT-3模型展示了出色的文本生成能力,包括代码生成和摘要。本文使用GPT-3模型生成了一个完整的语义和跨语言克隆基准。使用SemanticCloneBench的真实语言克隆,我们测试了几个提示,看哪个使用GPT-3问题制定产生了更好的结果。然后,我们使用NiCad从GPT-3输出中筛选出类型1和类型2的克隆。我们使用一个图形界面辅助的克隆验证工具,由九个评审员手动验证了所有的克隆配对。功能测试和CloneCognition验证了我们的基准没有句法克隆。之后,我们在我们的基准上验证了SourcererCC,Oreo和CLCDSA工具。这些工具的性能差表明GPTCloneBench没有句法克隆。从SemanticCloneBench/GPT-3输出的77,207个克隆对中,我们创建了一个基准,其中包含37,149个真实的语义克隆对,19,288个错误的语义克隆对和20,770个跨语言克隆对,涵盖了四种语言(Java,C,C#和Python)。
作者:Ajmain Inqiad Alam, Palash Ranjan Roy, Farouq Al-omari, Chanchal Kumar Roy, Banani Roy, Kevin Schneider
论文ID:2308.13963
分类:Software Engineering
分类简称:cs.SE
提交时间:2023-08-30