AI 编码效率反降?研究揭示开发者速度下降 19% 的真相

1

AI 效率滑铁卢:开发者速度竟下降 19%?

大型语言模型(LLM)在各行各业的应用如火如荼,AI 公司更是极力宣传其在提升代码编写效率方面的巨大潜力。然而,一项最新的研究却给这种乐观论调泼了一盆冷水:针对开源软件开发者的实验表明,使用 AI 工具反而导致他们的工作效率降低了 19%。

AI快讯

这项由模型评估与威胁研究机构(METR)主导的研究,招募了 16 位经验丰富的开源软件开发者,他们在各自熟悉的开源代码库上执行 246 项维护任务,包括 bug 修复、功能添加和代码重构。研究人员将任务随机分配给两组:一组允许使用 AI 工具(如 Cursor Pro 和 Anthropic 的 Claude),另一组则禁止使用。为了确保两组任务的难度相当,研究人员在任务分配前对每项任务的预计耗时进行了预测,并以此为依据进行平衡。此外,代码审查反馈的修复时间也被纳入最终评估。

研究人员在实验前让开发者预测 AI 工具对效率的影响,结果显示,开发者们普遍预期 AI 能将任务耗时缩短 24%。即使在完成任务后,他们仍然认为 AI 使他们的速度平均提升了 20%。然而,实际结果却令人大跌眼镜:使用 AI 工具辅助的任务,其完成速度比未使用 AI 工具的任务慢了 19%。

AI 提效:理想与现实的差距

METR 的研究人员通过分析部分开发者的屏幕录像数据发现,AI 工具确实减少了开发者在编写代码、测试/调试以及信息检索方面的时间。然而,这些节省下来的时间,却被以下几个方面所抵消:

  • 审查 AI 输出:开发者需要花费大量时间来检查 AI 生成的代码,确保其质量和正确性。
  • 提示工程:为了获得满意的结果,开发者需要不断地调整和优化提示语,这本身就是一个耗时的过程。
  • 等待 AI 生成:AI 模型的响应速度并非瞬时,开发者需要等待 AI 生成代码。
  • 额外的空闲时间:屏幕录像显示,部分开发者在使用 AI 工具时,会出现无所事事或处理其他事务的情况,这部分时间也被计入总耗时。

AI快讯

更令人惊讶的是,开发者们最终只采纳了 AI 生成代码的 44%,这意味着超过一半的代码都需要进行修改。事实上,9% 的任务总耗时都花在了审查和修改 AI 生成的代码上。

AI快讯

复杂代码库:AI 的阿喀琉斯之踵

METR 的研究结果似乎与其他声称 AI 可以提高编码效率的基准测试实验相矛盾。然而,这些研究往往以代码行数、任务完成数量或代码提交/拉取请求的数量来衡量生产力,而这些指标并不能真实反映编码效率。

此外,许多现有的编码基准测试都侧重于为测试而设计的合成任务,难以与真实代码库上的工作相提并论。METR 研究中的开发者表示,他们所维护的代码库平均已有 10 年历史,代码量超过 100 万行,其复杂性限制了 AI 的效用。研究人员指出,AI 无法理解代码库中“重要的隐性知识或上下文”,而开发者对代码库的高度熟悉程度反而提高了他们的编码效率。

这些因素导致研究人员得出结论:当前的 AI 编码工具可能不太适合“对质量标准要求极高,或存在许多隐性要求(例如,与文档、测试覆盖率或代码格式化相关)的环境,而人类需要花费大量时间来学习这些要求。”虽然这些因素可能不适用于涉及较简单代码库的“许多现实的、具有经济意义的场景”,但它们可能会限制 AI 工具在这项研究和类似的现实场景中的影响。

AI 的未来:潜力与挑战并存

尽管 METR 的研究结果表明,AI 在某些复杂的现实编码场景中存在局限性,但研究人员仍然对 AI 工具的未来充满信心。他们认为,如果 AI 系统能够提高可靠性、降低延迟并提供更相关的输出(通过提示支架或微调等技术),那么它们“可以加快开发者的速度”。他们表示,已经有“初步证据”表明,最新发布的 Claude 3.7“通常可以正确地实现我们研究中包含的几个代码库中的核心功能”。

总而言之,METR 的研究为 AI 在编码任务中的作用提供了一个更 nuanced 的视角。虽然 AI 在某些情况下可以提高效率,但在复杂的现实场景中,它可能反而会降低开发者的速度。未来的 AI 编码工具需要克服这些挑战,才能真正释放其潜力。

案例分析:AI 辅助代码重构的困境

假设一位开发者需要使用 AI 工具来重构一个大型开源项目的代码。该项目已经存在多年,代码库庞大且复杂,包含了大量的历史遗留代码和设计模式。由于 AI 工具缺乏对项目历史和上下文的理解,它可能会生成不符合项目规范或与其他模块不兼容的代码。开发者需要花费大量时间来审查和修改这些代码,最终导致重构过程比手动重构更加耗时。

数据佐证:AI 代码审查的成本

一项针对大型软件公司的内部研究表明,使用 AI 辅助代码审查可以减少审查时间,但同时也增加了代码缺陷的检出率。这意味着 AI 工具可能会忽略一些重要的代码问题,导致更高的维护成本。此外,开发者还需要花费额外的时间来处理 AI 产生的误报,这也会降低整体效率。

提升 AI 编码效率的策略

为了充分发挥 AI 在编码领域的潜力,我们需要采取以下策略:

  • 改进 AI 模型的可靠性和准确性:通过使用更大型的数据集和更先进的算法,提高 AI 模型生成代码的质量。
  • 降低 AI 模型的延迟:优化 AI 模型的架构和部署方式,减少代码生成的等待时间。
  • 提供更相关的 AI 输出:利用提示支架或微调等技术,使 AI 模型更好地理解开发者的意图,生成更符合需求的代。码。
  • 加强开发者对 AI 工具的培训:帮助开发者掌握 AI 工具的使用技巧,提高他们的提示工程能力和代码审查能力。
  • 建立完善的 AI 代码审查流程:制定明确的代码审查标准,确保 AI 生成的代码符合质量要求。

通过以上措施,我们可以最大限度地减少 AI 编码的负面影响,充分发挥其在提高编码效率方面的潜力。

未来展望:AI 与人类的协同进化

AI 在编码领域的应用仍处于早期阶段,面临着许多挑战。然而,随着技术的不断发展,AI 必将在未来的软件开发中发挥越来越重要的作用。未来的 AI 编码工具将不再只是简单的代码生成器,而将成为开发者们的智能助手,帮助他们更高效地完成各种编码任务。AI 与人类的协同进化将推动软件开发行业进入一个全新的时代。