中文

代码行之间:揭示机器与人类程序员的独特模式

软件工程 2024-07-31 v5 人工智能 计算与语言

摘要

大语言模型催生了前所未有的代码生成浪潮。尽管取得了显著进展,它们也模糊了机器与人类编写源代码之间的区别,导致软件制品的完整性和真实性出现问题。以往的方法(如 DetectGPT)在识别机器生成的文本方面已被证明有效,但它们未能识别并利用机器生成代码的独特模式。因此,其在应用于代码时效果不佳。在本文中,我们仔细研究了表征机器和人类编写代码的特定模式。通过对词汇多样性、简洁性和自然性等代码属性的严格分析,我们揭示了每种来源固有的独特模式。我们特别注意到,代码的语法分割是识别其来源的关键因素。基于我们的发现,我们提出了一种用于检测机器生成代码的新方法 DetectCodeGPT,该方法通过捕获代码的独特风格模式来改进 DetectGPT。与依赖外部 LLM 进行扰动的传统技术不同,DetectCodeGPT 通过策略性地插入空格和换行符来扰动代码语料库,确保了有效性和效率。实验结果表明,我们的方法在检测机器生成代码方面显著优于现有最先进的技术。

关键词

引用

@article{arxiv.2401.06461,
  title  = {Between Lines of Code: Unraveling the Distinct Patterns of Machine and Human Programmers},
  author = {Yuling Shi and Hongyu Zhang and Chengcheng Wan and Xiaodong Gu},
  journal= {arXiv preprint arXiv:2401.06461},
  year   = {2024}
}

备注

Accepted by the 47th International Conference on Software Engineering (ICSE 2025). Code available at https://github.com/YerbaPage/DetectCodeGPT