AI 编码效率实测:开源开发者效率反降 19%?原因何在?

1

AI 效率神话破灭? 开源软件开发者实测:效率竟降 19%!

大型语言模型(LLM)在各行各业掀起了一股 AI 浪潮,科技公司纷纷标榜其在提高编码效率方面的巨大潜力。然而,一项最新的研究却给这一论调泼了一盆冷水。研究表明,对于经验丰富的开源软件开发者而言,使用 AI 编码工具实际上可能会降低工作效率。

这项由 METR(模型评估与威胁研究中心)进行的研究招募了 16 位在特定开源代码库方面拥有多年经验的软件开发者。在研究过程中,开发者们需要完成 246 项与维护这些代码库相关的任务,包括修复 Bug、添加新功能和代码重构等。其中一半的任务允许开发者使用 AI 工具(如 Cursor Pro 和 Anthropic 的 Claude),另一半则禁止使用 AI 辅助。

AI快讯

研究人员在任务分配前对每项任务的预计完成时间进行了预估,以此来平衡两组任务的整体难度。同时,代码审查人员反馈的修复时间也被纳入了整体评估。

令人惊讶的是,研究结果显示,实际情况与开发者和专家的预期截然相反。开发者们原本期望 AI 工具能将任务完成时间缩短 24%,即使在完成任务后,他们仍然认为 AI 平均提升了 20% 的效率。但最终的数据表明,使用 AI 工具完成任务的速度比不使用 AI 工具慢了 19%。

AI 辅助编码的“甜蜜陷阱”

为了深入探究这一现象背后的原因,METR 的研究人员分析了一部分开发者的屏幕录像数据。他们发现,AI 工具确实减少了开发者在编写代码、测试/调试以及“阅读/搜索信息”等方面花费的时间。然而,这些节省下来的时间却被以下几个方面所抵消:

  • 审查 AI 输出:开发者需要花费大量时间来检查 AI 生成的代码是否正确、符合要求。
  • 提示 AI 系统:为了获得期望的代码,开发者需要不断地调整和优化提示语。
  • 等待 AI 生成:AI 模型生成代码需要一定的时间,这会造成开发者的等待。
  • 闲置/额外开销时间:屏幕录像显示,开发者在使用 AI 工具时,会出现一些没有进行任何操作的“闲置时间”。

AI快讯

研究发现,开发者最终只采用了 AI 生成代码的 44%,这意味着大部分代码都需要人工修改。平均而言,开发者需要花费 9% 的任务时间来审查和修改 AI 生成的代码。

真实场景 vs. 理想模型

METR 的研究结果似乎与其他一些表明 AI 工具可以提高编码效率的基准测试和实验相矛盾。然而,这些研究往往以代码行数、任务完成数量或代码提交次数等作为衡量生产力的指标,而这些指标并不能准确反映实际的编码效率。

此外,许多现有的编码基准测试侧重于为测试而设计的合成算法任务,难以与涉及现有真实代码库的工作相提并论。METR 研究中的开发者报告称,他们所处理的代码库通常较为复杂(平均有 10 年历史,超过 100 万行代码),这限制了 AI 工具的效用。研究人员指出,AI 无法利用关于代码库的“重要隐性知识或背景信息”,而开发者对代码库的高度熟悉程度反而提高了他们的编码效率。

AI 编码工具的局限性

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

AI 的未来:效率提升仍可期?

尽管如此,研究人员对 AI 工具的未来发展仍然保持乐观。他们认为,如果能够提高 AI 系统的可靠性、降低延迟并提供更相关的输出(例如,通过提示支架或微调等技术),那么“可以加快开发者在我们的环境中的速度”。他们表示,已经有“初步证据”表明,最新发布的 Claude 3.7“通常可以正确地实现我们研究中包含的几个代码库中的核心功能”。

总而言之,METR 的研究为 AI 在编码任务中的作用提供了一些有力的证据,表明 AI 在某些复杂的现实编码场景中可能存在显著的局限性。未来的 AI 编码工具需要不断改进,才能真正帮助开发者提高效率。

案例分析:AI 辅助编码的挑战与机遇

为了更深入地理解 AI 辅助编码的挑战与机遇,我们可以参考以下案例:

  • 案例一:传统金融机构的代码库现代化

某大型银行希望利用 AI 技术来加速其遗留系统的现代化改造。这些系统通常由数百万行 COBOL 代码组成,维护成本高昂。然而,由于代码库的复杂性和缺乏清晰的文档,AI 工具难以理解代码的逻辑和依赖关系,导致生成的代码质量不高,需要大量的人工修改。

  • 案例二:开源社区的 Bug 修复

在开源社区中,志愿者们利用 AI 工具来辅助 Bug 修复。然而,由于缺乏对项目背景和代码风格的深入理解,AI 工具生成的补丁往往难以被社区接受。开发者需要花费大量时间来审查和修改 AI 生成的补丁,以确保其符合项目的规范。

这些案例表明,AI 辅助编码并非万能的。在复杂的真实场景中,AI 工具需要与人类开发者协同工作,才能发挥其真正的潜力。

数据佐证:AI 辅助编码的效率瓶颈

除了 METR 的研究之外,其他一些研究也表明,AI 辅助编码存在一些效率瓶颈:

  • AI 生成的代码质量参差不齐:AI 工具生成的代码质量取决于训练数据的质量和模型的复杂程度。在某些情况下,AI 生成的代码可能存在 Bug、安全漏洞或性能问题。
  • AI 工具难以理解代码的上下文:AI 工具通常只能理解代码的表面结构,难以理解代码的上下文和业务逻辑。这导致 AI 生成的代码可能不符合项目的需求。
  • AI 工具需要大量的计算资源:AI 模型的训练和推理需要大量的计算资源。这使得 AI 辅助编码的成本较高。

这些数据表明,AI 辅助编码仍然面临着许多挑战。我们需要不断改进 AI 技术,才能克服这些挑战,并充分发挥 AI 在编码领域的潜力。

未来展望:AI 辅助编码的演进方向

展望未来,AI 辅助编码将朝着以下几个方向演进:

  • 更智能的代码生成:未来的 AI 工具将能够更智能地生成代码,并能够根据项目的需求和代码的上下文进行优化。
  • 更强大的代码理解能力:未来的 AI 工具将能够更深入地理解代码的逻辑和依赖关系,从而提高代码生成的质量。
  • 更高效的协同工作:未来的 AI 工具将能够与人类开发者更高效地协同工作,从而提高编码效率。

我们有理由相信,随着 AI 技术的不断发展,AI 辅助编码将在未来发挥越来越重要的作用。

结论

AI 编码工具在某些情况下可以提高开发效率,但在复杂的开源项目中,反而可能降低效率。开发者需要权衡 AI 工具的优缺点,并根据实际情况选择合适的工具。未来的 AI 编码工具需要不断改进,才能真正帮助开发者提高效率。