这几天,程序员们最关心的莫过于 GitHub 新推出的 AI 编程工具 Copilot 了。
这款号称“AI 结对编程队友”(Your AI pair programmer)基于一种叫做 OpenAI Codex 的新算法构建,并使用从 GitHub 上提取的万亿字节公开可用代码以及英语示例进行训练,能够自动补全整行代码或整段函数、基于注释生成对应代码,还能编写测试、快速发现解决问题的替代方法。
Copilot 工作原理
Copilot 带来的生产力提升获得了一片赞扬,但是问题也接踵而至。
GitHub 带头抄袭代码?
Copilot 目前推出了技术预览版,其官网显示:如果技术预览版获得成功,GitHub 将构建商业版。
然而,Copilot 的训练数据为公开可用数据,包括 GitHub 上万亿字节的公开代码。GitHub 这是要把开发者贡献的开源代码变成 “付费产品” 再卖给开发者?
开发者 Eevee 表示:
Copilot 承认基于大量 GPL 代码进行训练,这难道不是将开源代码清洗(laundering)为商业产品的形式吗?“它通常不会重现精确的代码块”,这样的措辞并不令人满意。
版权不仅涉及复制粘贴,还涵盖衍生作品。GitHub Copilot 基于开源代码训练,它所知道的一切都来自于开源代码。“衍生”不可能不包含这层含义。
GPL(通用公共许可证)是被广泛使用的自由软件许可证,给予了终端用户运行、学习、共享和修改软件的自由。同时需要注意的是,GPL 是 Copyleft 许可证,这意味着衍生作品只能以相同的许可条款分发。
GNU 官网在回答 “GPL 是否要求修改版的源代码公开” 时表示:如果你以某种方式把修改版向公众发布,GPL 就要求你向用户提供修改版的源代码。
对于 GitHub Copilot 使用 GPL 代码训练一事,Eevee 表示:
GPL 明确声明“不要把我的工作放在专有软件中”(proprietary software,又称非自由软件),而 Copilot 的机制恰恰将其工作置于专有软件中。
无独有偶,十几个小时前,Flask 作者 Armin Ronacher 发推质问 Copilot 未使用正确的许可证。原来 Copilot 使用了 Quake 的代码,且未说明正确的许可证(Quake 使用的许可证是 GPLv2)。
在这条推文下面,很多网友表达了类似的观点:Copilot 会生成一些奇怪的许可证。大部分像 MIT 许可,甚至有一个归属于 U.S. Dept. Of Energy。
隐私安全问题
除了代码侵权问题外,Copilot 还面临着隐私问题,毕竟训练集中包含个人数据。Copilot 在官网中称,内部测试结果显示 GitHub Copilot 给出的建议很少包含与训练集中一模一样的个人数据。有时,GitHub Copilot 可能会建议电子邮件地址、API 密钥或电话号码等个人数据,但这些数据是基于训练数据中的模式合成的。在技术预览中,Copilot 实现了过滤器,杜绝以标准格式显示的电子邮件。
然而,事情似乎并非如此。
软件工程师 Kyle 在用 Copilot 生成 About me 页面时,却得到了另一位开发者 David Ceils 的个人信息。
而真正的 David Ceils 还在苦苦等待 Copilot 通过他的申请……
有人震撼于 Copilot 带来的效率提升,有人震惊于 GitHub 不顾许可证、侵犯版权和隐私。Copilot,你还会用吗?
参考链接:
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。