来源:arXiv
编辑:LRS
garbagein,garbageout耳熟能详,如果你写的开源代码被输入到了代码生成工具Copilot中,会不会影响它的生成性能呢?纽约大学的研究员最近发现,Copilot生成的代码有超过40%都含有高危漏洞,究其原因竟然是GitHub提供的源代码自带漏洞!
随着AI技术的不断进步,程序员们好像不止想取代传统行业的人,而且还在积极思考如何取代自己,AI研究员们对「代码自动生成」更情有独钟。
结对编程(Pairprogramming)是一种敏捷软件开发的方法,两个程序员在一个计算机上共同工作。一个人输入代码,而另一个人审查他输入的每一行代码。
输入代码的人称作驾驶员,审查代码的人称作观察员(或导航员),两个程序员经常互换角色。
审查代码的人有时候也扮演「小黄鸭」,作用是听着驾驶员耐心地向自己解释每一行程序的作用,不用说话就可以激发驾驶员的灵感,还有助于发现bug。
如果观察员是一个AI,想象有一个AI助手和你一起结对编程是一种什么感觉?
今年六月,OpenAI就和GitHub联手发布了一个新工具GitHubCopilot,一时风头无两,只要写下注释,后面的代码内容基本都能预测正确,尤其对于写utils之类的函数来说实在是太方便。
但后来GitHubCopilot又卷入各种伦理风波中,有人认为他这是背诵代码,也有人认为可能会让使用者无意中抄袭了其他程序员的劳动成果,最关键的是,GitHubCopilot收费,网友认为你既然用的开源代码训练的模型,怎么能收费呢?
除了上述问题不谈,Copilot的安全性又怎么样?能不能生产出让人民放心、让百姓安心的好代码?
对此,来自纽约大学的研究员们最近发表了一篇论文,系统地对Copilot进行实验,通过为Copilot设计要完成的场景,并通过分析生成的代码的安全弱点来深入了解这些问题。
论文