一张纸(在新标签页中打开)斯坦福大学的研究人员发现,使用GitHubCopilot和FacebookInCoder等人工智能助手的编码人员实际上最终编写的代码安全性较低。

人工智能并没有真正帮助编码人员编写更好或更安全的代码

更重要的是,此类工具还会使开发人员产生一种错误的安全感,许多人认为他们使用帮助可以生成更好的代码。

将近50名具有不同专业水平的受试者被分配了五项编码任务,使用不同的语言,其中一些在人工智能工具的帮助下进行,而另一些则完全没有任何帮助。

他们还参考了之前的研究,该研究发现在GitHubCopilot的帮助下创建的程序中约有40%包含易受攻击的代码,尽管后续研究发现编码人员使用大型语言模型(LLM),例如OpenAI的code-cushman-001codex-GitHubCopilot所基于的——只导致了10%以上的严重安全漏洞。

然而,斯坦福大学的研究人员解释说,他们自己的研究着眼于OpenAI的codex-davinci-002模型,这是一个比cushman更新的模型,GitHubCopilot也使用该模型。

他们还研究了多种编程语言,包括Python、Javascript和C,而另一篇论文只关注后者,作者将其归因于其不确定的发现。事实上,在斯坦福大学的论文中,那些使用AI用C编写代码的人也没有导致明显更多的错误。

五项任务之一涉及用Python编写代码,使用AI助手时,这里的代码更有可能出错且不安全。更重要的是,他们也“明显更有可能使用简单的密码,例如替代密码(p<0.01),并且不对最终返回值进行真实性检查。”

作者希望他们的研究能够进一步改进人工智能,而不是完全摒弃这项技术,因为这些工具可以提高生产力。他们只是坚持认为应该谨慎使用它们,因为它们会误导程序员认为它们是万无一失的。

他们还认为,AI助手可以鼓励更多的人参与编码,无论他们的经验如何,他们也可能因该学科的守门气氛而被推迟。