论文
我和你有什么区别?对人类编写的代码和人工智能生成的代码之间的质量差距进行基准测试
What is the Difference Between Me and You? Benchmarking the Quality Gap Between Human-Written and AI-Generated Code
摘要
人工智能编码助手正在成为生产软件的共同作者,但他们的评估集中在功能正确性上,而他们的代码在主导生命周期成本的质量维度上是否与人类代码不同尚不明确。我们大规模比较了人类编写的代码和人工智能生成的代码:Python、Java 和 C 中的 787,562 个函数对,每个人类函数都是从开源存储库中挖掘出来的,并与三个人工智能助手(OpenAI GPT 模型、DeepSeek-Coder、Qwen2.5-Coder)从其文档字符串生成的实现配对。我们描述了结构复杂性和统计自然性,并将静态分析结果映射到缺陷的正交缺陷分类和漏洞的常见弱点枚举上,使作者和语言可以直接进行比较。人工智能生成的代码在结构上进行了压缩,在风格上进行了模板化:大约是人类代码的大小和分支的一半,在风格级别上分开。缺陷概况有所不同:人类代码集中了成熟代码库的问题,人工智能代码重复了样板文件;安全性取决于语言,大语言模型在 Python 和 Java 中产生了更多、更严重的发现,但比人类在 C 中产生的高严重性内存安全发现要少。一旦控制了大小,复杂性指标就几乎没有信号,而自然性则将作者分开。最后,我们发布了 CQBench,这是一个包含 27,346 个容易出现问题的任务的基准测试,具有用于质量保证和安全测试的基线和评估管道。