Characterizing the Quality Profile of AI-Generated C++ in Production
这项针对生产环境中 352 万次 C++ 变更的大规模实证研究表明,与人工编写的代码相比,AI 生成的代码引入了特定的低效性和更高的资源成本,但也证明了针对性的、基于分类学的反馈可以有效缓解这些质量和性能问题。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一下运行我们世界的软件——你手机上的应用程序、驱动你最喜欢的游戏的系统、以及全球银行业背后看不见的引擎——就像一座巨大且繁忙的城市。几十年来,这座城市完全由人类建筑师和施工队建造,遵循严格的蓝图,以确保每一座桥梁都能承重,每一根管道都能输水而不漏。但最近,一种新型的助手来到了:人工智能。把人工智能想象成一个超级快速、极其热情的学徒,它可以在几秒钟内绘制出蓝图。它擅长速度,但因为它向一个庞大的旧方案库学习,它有时会复制一些在纸面上看起来还可以,但在现实世界中实际上效率低下或笨拙的模式。工程师们面临的大问题不仅是“人工智能能不能把它造出来?”,而是“一旦向公众开放,这栋建筑能否屹立不倒、运行顺畅且不浪费能源?”这就是我们即将探索的故事的核心:深入研究人工智能编写的代码在现实中高风险的生产级软件中表现究竟如何。
这篇论文就像是一个由一家大型科技公司工程师团队进行的、为期一年的大规模侦探故事。他们想看看当人工智能协助编写那些每天有数十亿人使用的庞大系统时,会发生什么。他们不仅仅是在检查代码是否能运行(比如应用是否崩溃?),而是观察了代码的“质量剖面”:它是杂乱无章的吗?它是否消耗了过多的计算能力?它是否让软件运行得更慢或成本更高?
研究人员追踪了 2025 年 4 月至 2026 年 4 月期间发生的超过 350 万次代码变更。他们发现,人工智能承担了大量的工作——到研究结束时,已知来源的代码中近 70% 是由人工智能生成的。但转折点在于:虽然人工智能很快,但它有一种会导致特定问题的独特“个性”。
把人工智能生成的代码想象成一个学生,当被要求解决一道数学题时,他决定亲手写出每一个计算步骤,即使大家都在使用简便的公式。研究发现,C++(一种用于高性能系统的语言)中的人工智能代码倾向于:
- 将简单的事情复杂化: 它没有使用标准的、高效的工具(比如预制的函数),而是经常编写自己冗长且显式的循环。这就像是在造车时自己造了一个定制轮子,而标准轮胎本可以完美胜任。
- 过度复制粘贴: 人工智能倾向于进行不必要的重复数据,这就像为了以防万一而在行李箱里装了三双一模一样的鞋。这浪费了内存和处理能力。
- 制造“耦合”负担: 代码经常将系统的不同部分过于紧密地绑定在一起,使得以后在不破坏其他部分的情况下进行修复或更新变得更加困难。
这些不仅仅是微小的、看不见的故障。它们有着现实世界的代价。研究发现,主要由人工智能编写的代码比主要由人类编写的代码多消耗了约 5-8% 的计算资源(如 CPU 功率和内存)。此外,人类审核员修复这些代码也需要更多精力,因为人工智能生成的变更收到的“阻断性评论”(即阻止代码提交的反馈)几乎是人类代码的两倍,且合并所需的时间也更长。
然而,故事并没有以“人工智能很糟糕”作为结论。研究人员发现,人工智能并不是坏了,它只是缺乏引导。当他们根据一套“分类法”(一份关于最常见错误,如“停止不必要的数据复制”或“使用标准库”的分类列表)给人工智能提供具体的反馈时,人工智能的表现有了显著提升。在一项测试中,这种针对性的反馈减少了 11.1% 的特定静态分析警告,并将代码的效率得分提高了 31%。
那么,结论是什么?论文表明,人工智能生成的代码并非天生危险或破碎,但它确实有一种倾向于低效和冗长的可预测“风格”。好消息是,我们可以解决这个问题。通过理解这些特定的模式并给人工智能更好的指令,我们可以在保持人工智能带来的速度提升的同时,确保软件依然快速、高效且易于维护。这项研究证明,通过建立正确的反馈机制,我们可以教会这个人工智能学徒不仅要造得快,还要造得聪明。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。