人们对设计基于人工智能的系统越来越感兴趣,从而帮助人类更好地设计计算机系统,包括自动生成计算机代码的工具,最近,第一个自称为“人工智能配对程序员”的GitHub Copilot,这是一个通过开源GitHub代码训练出来的语言模型。
然而,代码经常包含bug——因此,考虑到Copilot处理过的大量未被验证的代码,语言模型肯定会从可利用的、有bug的代码中学习。因此,有研究人员发现,GitHub Copilot工具提供的代码建议中 有接近40%存在bug。为了对Copilot的实际价值做出量化,研究人员创建了89个测试场景以考查其代码建议质量,编写出了1600多个程序。经过全面审查,研究人员发现其中近四成存在安全漏洞。
由于Copilot的学习对象是GitHub代码库中公开发布的可用代码,因此研究人员推测这些安全漏洞的出现只是系统在模仿现存的代码 bug。研究人员还指出,除了可能继承训练数据当中的bug之外,Copilot还无法分辨训练数据的新旧程度。
随着网络安全的发展,早期编程时的“最佳实践”很可能会逐渐变成“糟糕实践,毫无疑问,像GitHub Copilot 这样的下一代自动补全工具将大大提高软件开发人员的生产力。然而,尽管 Copilot 能快速生成大量代码,但我们的研究结果表明,开发者在使用 Copilot 作为辅助手段时应当保持警惕。理想情况下,Copilot 还应在训练和生成期间匹配适当的安全工具,最大程度减少在代码中引入安全漏洞的风险。
其实,自GitHub Copilot发布以来,就一直风波不断:
Copilot抄袭风波
Copilot发布一周后,被推上了「侵权」的风口浪尖,Github瞬间骂声四起,引发了前所未有的争议。网友表示:你再训练都是基于我们的开源代码,这改一改就想用来赚钱真的好么?原因是GitHub在没有版权持有者许可的情况下,用托管在GitHub上的开源代码训练Copilot
GitHub Copilot生成代码包含身份证号
接着,有人在推特上晒图,表示自己在使用GitHub Copilot时,它竟然给补全出了一张身份证信息出来。
输入B站CEO陈睿的信息后,下方竟然自动补出了身份证号。不过,还好,显示的身份证号其实是假的,其中出生年份和校验位明显都是错的。