这几天,程序员们最关怀的莫过于 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,你还会用吗?
参考链接:
- https://twitter.com/eevee/sta…
- https://mobile.twitter.com/mi…
- https://mobile.twitter.com/ky…
- https://copilot.github.com/
- https://www.gnu.org/licenses/…
- https://www.gnu.org/licenses/…