开源程序员愤怒控诉!Github的「AI码农」Copilot就是寄生虫

更新时间:2022-10-19 18:05:46作者:智慧百科

开源程序员愤怒控诉!Github的「AI码农」Copilot就是寄生虫


新智元报道

编辑:David

【新智元导读】以方便程序员写代码为名,吸血开源社区为实,Github的「AI码农」Copilot其实就是个寄生虫?

Github去年推出的「AI程序员」Copilot曾一度受到程序员的热捧,但一个争议始终没有解决。

既然是AI,模型总要训练,写代码的AI,训练数据从哪里来?谁提供的训练代码?微软和GitHub的说法倒是直接:Github资源库里直接拿的。

说的好听,帮码农写代码,其实是白嫖码农的代码?开源社区对这一直意见很大。

最近,程序员 Matthew Butterick 站了出来,拥有律师身份的他,在个人博客中发文控诉了 Copilot,并宣布开展诉讼调查:

Copilot是什么?


GitHub Copilot是微软在长达一年的技术预览后,于2022年6月发布的产品。Copilot是Visual Studio和其他IDE的一个插件,根据用户在编辑器中输入的内容产生微软所谓的 「建议」。

这是一个营销噱头,也是一个巨大的违反开源许可证的框架。

Copilot与传统IDE中的自动完成功能有何不同?Copilot由Codex驱动,后者是一个由OpenAI创建并授权给微软的人工智能系统。

Copilot根据用户输入的文本提示提供建议。Copilot可用于小的建议,比如移动到行末,但微软强调,Copilot有能力为更大的代码块提供建议,如整个函数的主体部分。

但是Codex,这个底层的人工智能系统是如何训练的?根据OpenAI的说法,Codex是在 「数以千万计的公共资源库,包括GitHub上的代码上训练的」。微软自己也含糊地将训练材料描述为「数十亿行的公共代码」。

但Copilot研究员Eddie Aftandilian在最近的播客中证实,实际上Copilot是在 GitHub上的公共资源库上训练的。

Copilot的问题:所谓「合理使用」于法无据

我们对Copilot的了解,引发了与该系统的训练和使用有关的法律问题。

关于系统的训练: 绝大多数开源软件包都是根据许可证发布的,这些许可证授予用户某些权利并规定了某些义务(例如,保持源代码的准确归属)。这些许可证在法律上是由软件作者主张他们的代码的版权而实现的。

因此,那些希望使用开源软件的人只有一个选择,要么不用,要用就必须遵守许可证规则。

[我们都明白了,微软并不是我们所听说的那种令人敬畏的、友好的、完全道德的公司......」

Ryan Fleury

微软和OpenAI已经承认,Copilot和Codex是在GitHub上的公共仓库的开源软件上进行训练的。那么他们做出了哪种选择?

如果微软和OpenAI选择在他们各自的开源许可下使用这些软件,微软和OpenAI就需要发布大量的署名,因为这是几乎所有开源许可的最低要求。然而,Copilot没有明显的署名。

因此,微软和OpenAI一定是在依靠「合理使用」的论据。前GitHub首席执行官Nat Friedman在Copilot技术预览版本公布后声称,在公共数据上训练机器学习系统属于合理使用。

真的是这样吗?

这不是观点问题,而是法律问题。自然,微软、OpenAI和其他研究人员一直在宣传公平使用的说法。Nat Friedman进一步宣称,有关于合理使用的判例,被机器学习界广泛依赖。但软件自由保护协会不同意,并要求微软提供证据来支持其立场。

根据自由软件保护协会(SFC)主任Bradley Kuhn的说法:

[我们在2021年6月私下询问了Friedman和其他微软和GitHub的代表,要求为GitHub的公开法律立场提供可靠的法律参考......他们没有提供。

为什么微软不能自己的立场提供任何法律权威依据?因为SFC说的没错:没有任何依据。

此外,关于合理使用的案件要平衡多种因素。即使法院最终裁定某些类型的人工智能训练是合理使用--这似乎是可能的--它也可能排除其他因素。到今天为止,我们还不知道Copilot或Codex是否属于这个范围。微软和OpenAI也不知道。

为什么说微软的理由是扯淡?

我们还不能说合理使用的原则最终将如何适用于AI训练。但我们知道,这根本不会影响Copilot用户。为什么?因为他们只是用Copilot来写代码。那么,写的代码的版权和许可状况如何?

在2021年,Nat Friedman声称,Copilot产生的输出属于「操作者,就像编译器一样」。但这是个很扯淡的比喻,Copilot为不小心的人埋下了新的陷阱。


微软将Copilot的输出描述为一系列的「代码建议」。微软对这些建议不主张任何权利。但是,微软也不对这样生成的代码的正确性、安全性或减轻的知识产权纠葛做出任何保证。一旦接受了Copilot的建议,所有这些都将成为你的问题。

这样的规定可能出现什么麻烦?

Copilot的用户已经表明,Copilot可以被诱导从可识别的资源库中发出逐字逐句的代码。就在本周,德克萨斯A&M大学教授Tim Davis的大段代码就被Copilot逐字复制,甚至连注释都一起复制了。

这里,关于代码来源的信息--作者、许可证等--都被剥离了。如果Copilot的用户甚至不知道许可证的存在,他们怎么能遵守许可证的规定?

Copilot神奇的代码检索方法是一个烟幕弹,旨在掩盖一个肮脏的事实:Copilot只是一个方便的替代接口,可以访问大量的开源代码。因此,Copilot用户可能会对底层代码的作者产生许可义务。

在这种背景下,Nat Friedman声称Copilot的操作 「就像编译器」是相当可疑的。

Copilot就是一条「寄生虫」

通过提供Copilot作为大量开放源代码的替代界面,微软所做的不仅仅是切断开放源代码作者和用户之间的法律关系。

可以说,微软正在创造一个新的围墙花园,它将抑制程序员发现传统的开源社区。或者至少,消除任何这样做的动机。随着时间的推移,这个过程将使这些社区陷入饥饿。

用户的注意力和参与将被转移到Copilot的围墙花园中,而远离开源项目本身--远离他们的源代码库、问题跟踪器、邮件列表和讨论区。这种能量的转移对开源来说将是一个痛苦的、永久性的损失。

Copilot就是寄生虫!

微软云计算高管Scott Guthrie最近承认,尽管微软CEO Satya Nadella在收购GitHub时做出了「GitHub将保持开放平台」的美好承诺,但微软一直在推动更多的GitHub服务,包括Copilot,进入其Azure云平台。

显然,开源开发者不是为了钱,但我们也不是白做的。发布开源软件的一大好处是人:由用户、测试人员和贡献者组成的社区,围绕着我们的工作凝聚起来。

我们的社区帮助我们以自己无法做到的方式使软件变得更好。这使我们的工作充满乐趣和合作。

Copilot为开源软件引入了一个更自私的方式:只要给我想要的东西就可以了。有了Copilot,开源用户就不必知道谁制作了他们的软件。他们不需要与社区互动。也不需要做出贡献。


与此同时,开源作者不得不眼睁睁地看着我们的作品被藏在一个叫做Copilot的大代码库里。我们得到的用户反馈和贡献?很快,全部消失了。Copilot对我们的个人项目毫无贡献。对广泛的开源社区也没有贡献。

Copilot的围墙花园与开源生态是对立的,是有毒的。

因此,这也是对GitHub在被微软收购之前所代表的一切的背叛。如果你在2005年之前出生,你会记得GitHub的声誉是建立在它对开源开发者的友好和对开源社区的培养上的。相比之下,Copilot一来,这些完全走向了反面。

当我第一次写到Copilot时,我曾说「不担心它对开源的影响」。在短期内,我仍然不担心。但是,当我反思我自己25年的开源之旅,我意识到,我忽略了大局,开源社区并不是一个固定的群体,它在不断成长、不断变化,不断地被新的思想所更新。

这时,Copilot来了。它的目标是将开源的能量赋予自己。我们不需要深入了解微软在开源方面的历史,就能看出Copilot的本质:寄生虫。

在Copilot对开源生态的损害变得不可挽回之前,它的合法性必须得到检验,这也正是我要告Copilot的原因。

参考资料:

https://githubcopilotinvestigation.com/#what-is-github-copilot

本文标签: github  程序员  微软  源代码  开源软件