人工智能联合程序员可能不会像柏拉图区块链数据智能那样产生那么多的错误。 垂直搜索。 哎。

人工智能联合程序员可能不会像人们担心的那样产生那么多的错误

为 GitHub Copilot 等下一代代码完成工具提供支持的机器学习模型可以帮助软件开发人员编写更多功能代码,而不会降低其安全性。

这是纽约大学计算机科学家小组进行的一项针对 58 人的小型调查的初步结果。

In 一篇论文 通过 ArXiv、Gustavo Sandoval、Hammond Pearce、Teo Nys、Ramesh Karri、Brendan Dolan-Gavitt 和 Siddharth Garg 分发,讲述了他们如何将借助大型语言模型 (LLM) 创建的源代码的安全性进行测试。

像 OpenAI GPT 系列这样的 LLM 已经接受了大量公共文本数据的培训,或者在 OpenAI 的 Codex 的情况下,GPT 的后代和 GitHub 的 Copilot 的基础的公共源代码。 因此,它们可能会重现人类程序员过去犯过的错误,说明“垃圾进,垃圾出”的格言。 人们担心这些工具会反刍并向开发人员建议错误的代码,他们会将这些东西插入他们的项目中。

更重要的是,代码安全性可以是上下文相关的:孤立安全的代码在与其他软件以特定顺序执行时可能是不安全的。 因此,这些自动完成工具可能会提供代码建议,它们本身很好,但与其他代码连接,现在容易受到攻击或只是被破坏。 也就是说,事实证明这些工具实际上可能不会让人类在编程方面变得更糟。

从某种意义上说,研究人员正在灭火。 大约一年前,同一位计算机科学家中的两位贡献了一篇题为“在键盘前睡着了? 评估 GitHub Copilot 代码贡献的安全性。” 那项工作发现 关于40% Copilot 的输出包括潜在可利用的弱点(企业).

“两篇论文的区别在于,‘Asleep at the Keyboard’正在研究全自动代码生成(循环中没有人),而且我们没有人类用户可以比较,所以我们无法说明如何与人工编写代码的安全性相比,Copilot 的安全性,”两篇论文的合著者、纽约大学 Tandon 计算机科学与工程系的助理教授 Brendan Dolan-Gavitt 在给 注册.

“用户研究论文试图直接解决这些缺失的部分,让一半的用户从 Codex(为 Copilot 提供支持的模型)获得帮助,让另一半自己编写代码。 但是,它也比“在键盘上睡觉”更窄:我们只研究了一项任务和一种语言(用 C 编写一个链表)。”

在最新的报告“大型语言模型代码助手的安全影响:用户研究”中,一组略有不同的纽约大学研究人员承认,以前的工作未能真实地模拟 Copilot 等基于 LLM 的工具的使用。

“首先,这些研究假设整个代码是由 LLM 自动生成的(我们称之为自动驾驶模式),”研究人员在他们的论文中解释道。

“在实践中,代码完成 LLM 会帮助开发人员提出他们将选择接受、编辑或拒绝的建议。 这意味着虽然倾向于自动化偏见的程序员可能会天真地接受有缺陷的完成,但其他开发人员可能会通过使用节省的时间来修复错误来产生更少的错误代码。”

其次,他们观察到,虽然 LLM 已被证明会产生错误代码,但人类也会这样做。 LLM 培训数据中的错误来自人。

因此,他们没有单独评估 LLM 生成的代码的错误,而是着手比较由机器学习模型辅助的人类开发人员生成的代码与自行编程生成的代码有何不同。

纽约大学的计算机科学家招募了 58 名调查参与者——软件开发课程的本科生和研究生——并将他们分成一个控制组,他们可以在没有建议的情况下工作,一个辅助组,他们可以访问使用 OpenAI 构建的自定义建议系统法典 API。 他们还使用 Codex 模型为给定的编程问题创建了 30 个解决方案作为比较点。 该自动驾驶仪组主要用作第二个对照组。

Assisted 组和 Control 组都被允许查阅网络资源,例如 Google 和 Stack Overflow,但不能向其他人寻求帮助。 工作是在 Visual Studio Code 中使用开源构建的基于 Web 的容器中完成的 阿努比斯.

参与者被要求使用 C 编程语言完成一个购物清单程序,因为“开发人员很容易在不经意间用 C 语言表达易受攻击的设计模式”,并且因为使用的 C 编译器工具链不会像工具链一样检查错误现代语言,如 Go 和 Rust,可以。

当研究人员手动分析控制组和助手组生成的代码时,他们发现,与之前的工作相反,人工智能代码建议并没有让事情变得更糟。

看起来很清楚,但有细节

“[W]e 没有发现任何证据表明 Codex 的协助会增加安全漏洞的发生率,”该论文指出,同时指出该研究的样本量小意味着需要进一步研究。 “相反,有一些证据表明 CWEs/LoC [代码行数] 在 Codex 的帮助下会减少。”

纽约大学 Tandon 工程系的网络安全研究员兼副教授 Siddharth Garg 在接受与 注册.

很难以统计上的信心得出结论

尽管如此,他说,“数据表明 Copilot 用户的情况并没有差很多。”

Dolan-Gavitt 对这些发现同样持谨慎态度。

“目前对我们用户研究结果的分析没有发现任何统计学上的显着差异——我们仍在分析这一点,包括定性分析,所以我不会从中得出强有力的结论,特别是因为这是一项小型研究(总共 58 个用户),而且用户都是学生而不是专业开发人员,”他说。

“不过,我们可以说,对于这些用户,在这项任务中,获得 AI 协助的安全影响可能并不大:如果影响非常大,我们会观察到两组之间的更大差异。 我们现在正在做更多的统计分析以使其准确。”

除此之外,还出现了其他一些见解。 一是助理小组参与者的工作效率更高,生成了更多的代码行并完成了作业中更多的功能。

“辅助组中的用户通过了更多的功能测试并生成了更多的功能代码,”Garg 说,并补充说这种结果可能有助于寻找辅助编码工具的公司决定是否部署它们。

另一个是研究人员能够区分控制组、辅助组和自动驾驶组产生的输出,这可能会减轻 关于教育环境中的人工智能作弊。

研究人员还发现,需要在用户错误的背景下考虑 AI 工具。 “用户提供可能包括错误的提示,接受最终出现在'已完成'程序中的错误提示,以及接受后来被删除的错误,”该论文说。 “在某些情况下,用户最终会遇到比模型建议的更多的错误!”

期待沿着这些方向开展进一步的工作。 ®

时间戳记:

更多来自 注册