当谈到大语言模型的具体应用案例时,AI公司喜欢指出编码人员和软件开发者可以如何使用这些模型来提高他们在编写计算机代码时的生产力和整体效率。然而,一项新的随机对照试验发现,有经验的开源编码人员在使用当前的AI工具时,在编码相关任务上的效率实际上有所降低。
在这项研究中,METR(模型评估与威胁研究)的研究人员招募了16名软件开发者,每个人都有多年在特定开源代码库工作的经验。研究跟踪了这些开发者完成的246个与维护这些代码库相关的单独"任务",例如"错误修复、功能开发和重构,这些通常是他们日常工作的一部分"。在这些任务中,有一半开发者使用了Cursor Pro或Anthropic的Claude等AI工具;在其他任务中,程序员被指示不使用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编码工具可能特别不适合"具有非常高质量标准的设置,或具有许多隐含要求(例如,与文档、测试覆盖率或代码检查/格式化相关)的设置,这些要求需要人类花费大量时间来学习"。虽然这些因素可能不适用于涉及更简单代码库的"许多现实的、经济相关的设置",但它们可能会限制AI工具在本研究和类似现实世界情况中的影响。
即使对于像研究中的复杂编码项目,研究人员也乐观地认为AI工具的进一步完善可能会为程序员带来未来的效率提升。具有更好可靠性、更低延迟或更相关输出(通过提示脚手架或微调等技术)的系统"可以在我们的设置中加快开发者的速度",研究人员写道。他们说,已经有"初步证据"表明最近发布的Claude 3.7"通常可以正确实现我们研究中包含的几个代码库中问题的核心功能"。
然而,目前METR的研究提供了一些强有力的证据,表明AI在编码任务中备受推崇的实用性在某些复杂的现实世界编码场景中可能存在重大限制。
本文链接:http://www.xihao.site/showinfo-1-79922.html研究发现AI工具让开源软件开发者效率降低19%