AI提速还是减速?研究揭示AI工具对开源软件开发效率的真实影响

1

在人工智能(AI)领域快速发展的今天,大型语言模型(LLM)在各个行业的应用日益广泛。AI公司不断强调,编码人员和软件开发人员可以利用这些模型来提高生产力和整体效率,从而加速计算机代码的创建。然而,一项新的随机对照试验表明,经验丰富的开源编码人员在使用当前AI工具时,编码相关任务的效率反而降低。

这项研究由模型评估和威胁研究(METR)的研究人员进行,他们招募了16位在特定开源存储库方面拥有多年经验的软件开发人员。研究人员跟踪这些开发人员在维护这些存储库时执行的246个独立“任务”,例如“错误修复、功能添加和重构,这些通常是他们日常工作的一部分”。对于其中一半的任务,开发人员使用了AI工具,如Cursor Pro或Anthropic的Claude;对于另一半任务,程序员则被指示不要使用AI辅助。每个任务的预期时间预测(在分配分组之前进行)被用作平衡每个实验组中任务总体难度的指标,并且根据审查人员的反馈修复拉取请求所需的时间也包括在总体评估中。

专家和开发者们都期望AI工具能够节省时间,但实际使用时并未实现

研究开始前,相关开发人员预计AI工具将使他们完成任务所需的时间减少24%。即使在完成这些任务后,开发人员仍然认为AI工具平均加快了他们20%的速度。然而,实际情况是,使用AI辅助完成的任务比不使用AI工具完成的任务慢了19%。

权衡取舍

通过分析研究中一部分开发人员的屏幕录制数据,METR研究人员发现,AI工具往往会减少开发人员积极编码、测试/调试或“阅读/搜索信息”的平均时间。但这些节省的时间最终被“审查AI输出、提示AI系统和等待AI生成”以及“空闲/开销时间”(屏幕录像显示没有活动)所抵消。

总体而言,研究中的开发人员未经修改就接受了AI生成的代码的不到44%。大多数开发人员报告说需要修改AI伙伴生成的代码,并且在研究的“AI辅助”部分,总任务时间的9%被这种审查所占用。

在研究中,积极编码等事项上节省的时间被提示、等待和审查AI输出所需的时间所抵消

表面上看,METR的研究结果似乎与其他证明使用AI工具可以提高编码效率的基准和实验相矛盾。但这些研究通常也以总代码行数或完成的离散任务/代码提交/拉取请求的数量来衡量生产力,而这些指标可能是衡量实际编码效率的较差指标。

许多现有的编码基准也侧重于专门为基准测试创建的合成、算法可评分的任务,这使得很难将这些结果与侧重于使用预先存在的真实代码库的工作的结果进行比较。METR研究中的开发人员在调查中报告说,他们使用的存储库的总体复杂性(平均已有10年历史,超过100万行代码)限制了AI的帮助程度。研究人员指出,AI无法利用关于代码库的“重要的隐性知识或上下文”,而“开发人员对存储库的高度熟悉”有助于他们在这些任务中实现非常人性化的编码效率。

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

即使对于像所研究的复杂编码项目,研究人员也乐观地认为,进一步改进AI工具可能会为程序员带来未来的效率提升。研究人员写道,具有更好可靠性、更低延迟或更相关输出(通过诸如提示支架或微调等技术)的系统“可以加快开发人员在我们的环境中的速度”。他们还表示,已经有“初步证据”表明,最近发布的Claude 3.7“通常可以正确地实现我们研究中包含的几个存储库上的问题的核心功能”。

但就目前而言,METR的研究提供了一些有力的证据,表明AI在编码任务中备受吹捧的有用性在某些复杂的现实编码场景中可能存在重大局限性。

AI工具对开源软件开发效率的影响:一项深度分析

最近的一项研究揭示了AI工具在开源软件开发中的一个令人惊讶的现象:尽管开发者和专家普遍预期AI能提高效率,但实际结果却显示,使用AI工具的开发者在某些情况下反而效率降低了19%。这项研究深入探讨了AI在复杂、真实世界代码库中的应用局限性,分析了时间花费的权衡,并对未来AI工具的改进方向提出了见解。研究强调,AI工具的有效性受到项目复杂性、开发者经验以及AI系统对隐性知识和上下文理解能力的限制。尽管如此,研究人员对AI在编码领域的未来发展保持乐观,认为通过技术改进,AI仍有潜力提升开发效率。

"AI编码效率", "开源软件开发", "AI工具局限性", "软件开发效率", "大型语言模型", "METR研究", "代码审查时间", "AI提示工程", "开发者生产力", "复杂代码库", "隐性知识", "AI辅助编码", "Claude 3.7", "编码基准", "AI在现实世界中的应用", "软件开发自动化", "AI工具改进", "开源项目维护", "编码效率提升", "AI的未来发展", "AI在软件工程中的作用", "AI编码的挑战", "AI编程效率评估", "AI对开发者的影响", "代码生成工具", "AI驱动的软件开发", "智能编码助手", "AI代码审查", "AI在复杂项目中的应用", "AI编程的局限性", "开源代码库", "AI代码辅助工具", "代码质量标准", "AI在软件开发中的潜力", "程序员工效"