中文

基于对比学习的LLM生成代码与人类编写代码区分方法

软件工程 2024-11-08 v1

摘要

大语言模型(LLM),如OpenAI发布的ChatGPT,因其生成高质量内容的能力在产业和学术界引起了广泛关注。尽管LLM能力令人印象深刻,但其在新闻、教育和软件工程等领域的潜在风险日益引发担忧。最近已有若干商业和开源的LLM生成内容检测器被提出,但这些检测器主要针对自然语言内容设计,未考虑程序代码的特定特征。本研究旨在填补这一空白,提出一种基于对比学习框架和基于UniXcoder构建的语义编码器的新型ChatGPT代码生成检测器CodeGPTSensor。为评估CodeGPTSensor在区分ChatGPT生成代码与人类编写代码方面的有效性,我们首先构建了一个大规模人类与机器对比语料库(HMCorp),包含55万对人类编写与ChatGPT生成的代码对(即28.8万对Python代码对和22.2万对Java代码对)。基于HMCorp数据集,对ChatGPT生成代码特征的定性和定量分析揭示了区分ChatGPT生成代码与人类编写代码所面临的挑战与机遇。实验结果表明CodeGPTSensor能有效识别ChatGPT生成代码,优于所有选定基线方法。

关键词

引用

@article{arxiv.2411.04704,
  title  = {Distinguishing LLM-generated from Human-written Code by Contrastive Learning},
  author = {Xiaodan Xu and Chao Ni and Xinrong Guo and Shaoxuan Liu and Xiaoya Wang and Kui Liu and Xiaohu Yang},
  journal= {arXiv preprint arXiv:2411.04704},
  year   = {2024}
}

备注

30 pages, 6 figures, Accepted by TOSEM'24