研究发现,与 AI 助手“配对编码”的开发者在学习上与传统的人际配对相当,但对他们的硅基伙伴的输出表现出较少的批判态度……

配对编程在开发者圈子里很常见,但直到本世纪初才被正式称为一种“模式”。

这种做法被认为能产生更高质量的代码,节省开发时间,并促进知识的转移。而且,如果操作得当,配对合适,通常会带来更愉快的体验。

然而,越来越多的开发者开始与代码助手合作,而不是其他会走会说的程序员。因此,德国萨尔大学的研究人员试图分析‘人类与人类’和‘人类与AI’环境中的知识转移。

一组人类配对处理了一个编程任务,而另一组个体开发者则在 GitHub Copilot 的帮助下完成了这个任务。

该任务涉及在一个大约400行的现有代码库中实现特性,包括Python代码和注释,分布在5个文件中。

研究人员试图回答两个问题。首先,“人类与人类配对编程和人类与AI配对编程之间,知识转移事件的频率、长度和深度在多大程度上有所不同?”其次,“知识转移事件的质量和多样性,包括主题和完成类型,在人类与人类配对编程和人类与AI配对编程之间如何变化?”

学者们随后使用语音识别工具跟踪人类二人组之间的对话“事件”,并使用屏幕录制跟踪人类与Copilot配对之间的互动。

这些对话被分析为对知识转移的贡献,研究人员指出:“在大多数情况下,与知识转移相关的发言包含两个人类之间或人类与GitHub Copilot之间的信息交换。”

他们发现,人类与人类的配对生成了210个情节,而人类与人工智能的配对编程会话中则生成了126个情节。

在人与机器的配对中,“代码”对话更为频繁,而“偏离主题”的结果——即对话偏离了主题——在人与人配对中更为常见。

他们发现在人类与人工智能的配对编程会话中存在高水平的信任情节。如果这一模式能够推广到其他场景,这将带来重要的现实意义,值得进一步研究。这些频繁的信任情节可能会减少深入学习的机会。

其他更广泛但仍然相关的对话更容易在人类与人类的配对中出现。

研究人员得出结论,虽然使用人工智能可能会提高效率,但它也可能“减少人类之间配对编程中由于侧面讨论而产生的更广泛的知识交流,从而可能降低长期效率。”

这可能意味着,虽然“人工智能在简单、重复的任务中很有用,因为侧面讨论的价值较低……但在构建更深层次的知识时,必须谨慎对待,尤其是对于学生。”研究人员补充道:“我们观察到,在许多 GITHUB COPILOT 会话中,程序员往往在最小审查的情况下接受助手的建议,依赖于代码会按预期运行的假设。”

他们建议:“人际配对编程能够促进自发的互动,但也增加了分心的风险。相比之下,使用 GITHUB COPILOT 进行知识转移时不太可能被中断,但建议往往在审查较少的情况下被接受。”

然而,人工智能助手在提醒人类注意关键细节方面表现得很好,“比如提交数据库更改,这些细节可能会被忽略。”

这可能,甚至应该,引起开发领导者的警觉。专注于人工智能生成代码带来的效率提升是很容易的。但这些代码在投入生产之前仍然需要经过审查和测试,否则可能会出现问题。

GitHub在上周发布的最新Octoverse报告中高兴地宣布,80%的新用户开始使用CoPilot这项技术。CoPilot和其他代码助手的使用甚至正在影响开发者所用的编程语言,开发者们正在转向更强类型的语言,这些语言更适合代码生成平台。但生成代码只是流程的一部分。

Cloudsmith在今年早些时候的研究中强调,程序员们对LLM生成代码的风险有着深刻的认识,例如推荐一些不存在的,甚至是恶意的软件包。同时,三分之一的开发者在没有审核的情况下就部署了人工智能生成的代码。®