← 最新论文
💻 computer science

A Large-Scale Comprehensive Measurement of AI-Generated Code in Real-World Repositories A Large-Scale Comprehensive Measurement of AI-Generated Code in Real-World Repositories

该论文通过构建包含启发式过滤与 LLM 分类的大规模数据集,对真实世界仓库中的 AI 生成代码进行了全面的实证研究,揭示了其在代码指标、提交特征及开发实践方面与人类编写代码的差异及影响。

原作者: Tianhao Mao, Dongfang Zhao, Haixu Tang, Xiaofeng Wang, Hang Zhang

发布于 2026-03-31
📖 1 分钟阅读☕ 轻松阅读

原作者: Tianhao Mao, Dongfang Zhao, Haixu Tang, Xiaofeng Wang, Hang Zhang

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

这篇论文就像是一次对**“人工智能(AI)写的代码”和“人类写的代码”在真实世界里的“大体检”**。

想象一下,以前我们只能在实验室里,让 AI 做几道简单的数学题来测试它(就像让 AI 在考场上做模拟题)。但这篇论文的研究者做了一件更酷的事:他们直接潜入了 GitHub(全球最大的代码仓库)这个“真实战场”,去观察 AI 和人类程序员真正合作时留下的痕迹。

为了让你更容易理解,我们可以把软件开发比作**“盖房子”**。

1. 他们是怎么找到 AI 写的房子的?(数据收集)

在真实的工地上,没人会专门在墙上贴个标签说“这面墙是机器人砌的”。所以研究者发明了一套**“侦探工具”**:

  • 线索搜索:他们先找那些在代码注释里直接说“由 AI 生成”的线索。
  • 层层过滤:就像筛沙子一样,先筛掉那些只是提到 AI 但没真用它写代码的噪音(比如只是用 AI 写了个文档)。
  • AI 帮 AI 找:对于模棱两可的代码,他们又请了一个更聪明的 AI 来帮忙判断:“嘿,这段代码看起来像不像机器人写的?”
  • 最终成果:他们收集了近 2 万个确认有 AI 参与的代码文件,并找来了3.6 万个人类写的、大小和语言相似的代码文件作为“对照组”。这是目前世界上最大的这类真实数据集。

2. AI 写的代码有什么特点?(代码层面的发现)

如果把代码比作**“文章”**,研究者发现了以下有趣的现象:

  • 啰嗦但清晰(Verbose but Explicit)

    • 人类:像写诗,讲究精炼,能用一个词概括的绝不用两个。
    • AI:像写说明书,喜欢把每一步都写得清清楚楚,甚至有点“啰嗦”。它倾向于把逻辑拆得很细,用更多的行数和更多的词来表达同样的意思。
    • 比喻:人类说“把水烧开”,AI 可能会写“打开水龙头,接水,放入水壶,点火,等待水沸腾”。
  • 结构像“层叠的盒子”(Layered Structure)

    • 人类:喜欢把复杂的逻辑压缩在一个大函数里,像把东西塞进一个紧凑的行李箱。
    • AI:喜欢把逻辑拆成很多小层,一层套一层,像俄罗斯套娃。虽然逻辑没变,但看起来更“扁平”和“分散”。
  • 不爱“抄作业”(Less Reuse)

    • 人类:喜欢复用以前写好的工具函数(比如“通用排序工具”),这叫“复用”。
    • AI:倾向于为每个任务“现写现卖”,导致代码里有很多重复的片段,缺乏跨文件的系统性复用。
  • 安全隐患的“口味”不同

    • 虽然两者都会犯错,但人类更容易犯“密码太简单”这种低级错误。
    • AI 则更容易在代码里不小心留下"API 密钥”或“令牌”这种敏感信息(就像 AI 在写代码时,顺手把家里的备用钥匙画在了图纸上)。

3. AI 参与后的工作流有什么变化?(提交层面的发现)

如果把代码提交(Commit)比作**“向工地运送砖块”**:

  • 砖块更小、更零碎

    • 人类程序员可能会一次性运来一大车砖,修改很多文件。
    • AI 辅助的提交通常更小、更局部。就像 AI 是个“精修师”,专门负责修补小漏洞或添加小功能,而不是搞大拆大建。
  • 工作时间更灵活

    • 带有 AI 代码的提交,更多发生在非工作时间(比如深夜或周末)。这说明开发者把 AI 当作一个随叫随到的“加班助手”。
  • 后期维护更麻烦(Delayed Maintenance)

    • 这是最关键的发现:AI 刚写好的代码,看起来挺稳。但过了一段时间(比如 30 天或 90 天),这些代码被修改、回滚或修复的概率比人类写的要高。
    • 比喻:AI 盖的房子,刚盖好时看着挺漂亮,但住进去几个月后,发现需要更多次的“返工”和“加固”。它把**“写代码”的精力转移到了“修代码”的精力上**。
  • 交接更慢

    • AI 写的代码,往往在原作者手里停留的时间更长,之后才转交给别人。这说明 AI 生成的代码可能需要原作者花更多时间去“消化”和“整理”,才能让别人接手。

4. 这对我们意味着什么?(核心启示)

这篇论文告诉我们,AI 并没有简单地“替代”人类,而是改变了我们写代码的方式

  1. 不是“写完就完事”:AI 确实能帮你快速生成代码,但它生成的代码往往不够精炼,需要人类花更多时间去**“去重”、“压缩”和“优化”**。
  2. 未来的工作重心转移:程序员的工作重心将从“从零开始写代码”转移到**“审查、整合和后期维护”**。
  3. 工具需要进化:现在的 AI 工具太擅长“生成”了,但不够擅长“整理”。未来的 AI 应该学会像人类一样,懂得如何写出更紧凑、更易于复用的代码,而不仅仅是堆砌行数。

一句话总结
AI 就像一个**“不知疲倦但有点啰嗦的初级学徒”,它能帮你快速把活干完,但留下的活儿往往需要更有经验的师傅(人类)** 花时间去修剪、整理和加固,才能变成真正坚固的房子。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →