Copilot逐字复制代码,恐抹去整个开源社区?程序员拿出律师证发起集体诉讼
2022-10-18 15:48:45来源:机器之心
作为一名开发者,或许你不介意 GitHub Copilot 未经询问就使用了你的开源代码。
(资料图)
但如果,Copilot 逐渐抹去整个开源社区,你会有什么感受?
近日,程序员 Matthew Butterick (同时他也拥有作家和律师身份)在个人博客中控诉了 Copilot,并宣布开展诉讼调查:
2022 年 6 月,我写了一篇关于 GitHub Copilot 法律问题的文章,特别是它对开源许可证的处理不当。最近,我采取了下一步行动:我重新激活了我的加州律师资格,与 Joseph Saveri 律师事务所的优秀集体诉讼律师 Joseph Saveri、 Cadio Zirpoli 和 Travis Manfredi 合作开展一个新项目——我们正在调查针对 GitHub Copilot 违反其对开源作者和最终用户法律义务的潜在诉讼。
GitHub Copilot 是微软在经过一年的技术预览后于 2022 年 6 月正式发布的产品。Copilot 是 Visual Studio 和其他 IDE 的插件,可根据在编辑器中键入的内容生成所谓的「建议」 。
那么,Copilot 与传统的自动补全功能有什么不同?
Copilot 由 Codex 提供支持,这是一个由 OpenAI 开发并授权给微软的 AI 系统。(尽管微软也被称为「OpenAI 的非官方所有者」。)
Copilot 会根据用户输入的文本 prompt 提供建议,一般可用于提出小的建议,但微软强调 Copilot 能够建议更大的代码块,例如函数的整个主体。
但是其底层 AI 系统 Codex 是如何训练的呢?据 OpenAI 称,Codex 接受了「数以千万计的公共存储库」的训练,包括 GitHub 上的代码。微软自己含糊地描述为「数十亿行公共代码」。但 Copilot 研究员 Eddie Aftandilian 在最近的播客中证实,Copilot 是「在 GitHub 上的公共存储库上训练的」。
Copilot 有什么问题?本文作者 Matthew Butterick 认为,无论是训练还是使用,Copilot 都存在法律问题。
训练中的法律问题绝大多数的开源软件包是在授权许可下发布的,授予用户一定的权利并强加一定的义务(例如保留源代码的精确属性)。这些授权的合法实现方式是作者在他们的代码中声明他们的版权(copyright)。
因此,那些希望使用开源软件的人必须做出一个选择,要么遵守许可证上规定的义务,要么使用从属于「许可证例外」的代码(如版权法下的「合理使用」)。
微软和 OpenAI 已经承认 Copilot 和 Codex 是在 GitHub 上公开 repo 中的开源软件上训练的。那么,他们选的是哪条路呢?
如果微软和 OpenAI 选择在每个 repo 的开源许可下使用这些 repo,那么他们将需要发布大量的 attribution,因为这几乎是每个开源许可的最低要求。然而,我们现在看不到任何 attribution。
因此,微软和 OpenAI 必须找到一个「合理使用( fair-use )」的理由。GitHub 前 CEO Nat Friedman 在 Copilot 的技术预览会上曾经说过,「在公开数据上训练(机器学习)系统属于合理使用。」
事实真就如他所说吗?这是一个法律问题,不是谁说了就算的。当然,微软、OpenAI 和其他研究机构一直在支持「合理使用」的论点。Nat Friedman 曾进一步断言,「机器学习社区所广泛依赖的」关于「合理使用」的「法理」是存在的。但是软件自由保护组织(Software Freedom Conservancy,SFC)不同意他的观点,并要求微软提供证据来支持其立场。SFC 负责人曾透露:
我们在 2021 年 6 月私下询问了 Friedman 和其他微软、GitHub 的代表,要求他们为 GitHub 的公开法律立场提供可靠的法律参考…… 但他们什么都没有提供。
为什么微软不能为他们的立场提供一些法律依据?因为 SFC 是对的:他们根本就没有依据。尽管一些法院已经考虑了相关问题,但目前还没有一个美国的判例直接去解决 AI 训练的「合理使用」问题。此外,那些涉及「合理使用」的案例也是平衡了多重因素。即使法院最终裁定某些类型的 AI 训练是「合理使用」的(这似乎是有可能的),它也可能将其他类型的训练排除在外。到今天为止,我们还不知道 Copilot 或 Codex 在这个范围内处于什么位置。微软和 OpenAI 也不知道。
使用中的法律问题我们还不能说「合理使用」最终将以何种方式应用于 AI 训练。但我们知道,这一发现完全不会影响 Copilot 用户。为什么?因为他们只是使用 Copilot 来给出代码。那么,这部分代码的版权和许可状态是怎样的呢?
2021 年,Nat Fredman 声称,Copilot 的输出属于操作者,就像他们在使用编译器一样。但 Copilot 为粗心的人设置了新的陷阱。
微软将 Copilot 的输出描述为一系列代码「建议」。微软在这些建议中「不主张任何权利」。但同时,微软也没有对这样生成的代码的正确性、安全性或扩展出的知识产权问题提供任何保证。一旦你接受了 Copilot 的建议,所有这一切都成了你的问题。
你要对你代码的安全性和质量负责。我们建议您在使用由 GitHub Copilot 生成的代码时采取与使用其他任何非本人所写代码时相同的预防措施,包括严格的测试、IP 扫描和安全漏洞跟踪。
这些建议的代码会有什么问题?已经有 Copilot 用户指出,Copilot 可能会被诱导从可识别的 repo 中一字不差地复制代码。前段时间,得克萨斯农工大学教授 Tim Davis 给出了很多例子来说明 Copilot 确实逐字复制了他的代码。
使用此代码显然就产生了遵守其许可的义务。但是根据 Copilot 的设计,用户根本看不到代码的来源、作者、许可等信息,又怎么去遵守呢?
本文作者 Matthew Butterick 认为,Copilot 的快速代码检索方法就是一种烟雾弹,目的是掩盖一个肮脏的真相:Copilot 只是一个连接大量开源代码的方便的替代界面。因此,Copilot 用户可能会承担代码原作者施加给他们的许可义务。在这种背景下,Nat fredman 声称 Copilot 的操作「就像…… 一个编译器」是相当站不住脚的,因为编译器改变了代码的形式,但它们不注入新的知识产权属性。公平地说,微软并没有对此提出异议。他们只是把它埋在了小字里。
Copilot 对开源社区意味着什么?Matthew Butterick 指出,通过提供 Copilot 作为大量开源代码的替代接口,微软所做的不仅仅是切断开源作者和用户之间的法律关系。可以说,微软正在创建一个新的「围墙花园」,它将阻止程序员去发现传统的开源社区,或者至少,消除一切这样做的动机。
随着时间的推移,这个过程将使这些社区变得贫乏。用户的注意力和参与度会逐渐转移到 Copilot 的围墙花园,远离开源项目本身——远离他们的 source repo、他们的 issue tracker、他们的邮件列表、他们的 discussion board。这种能量的转变对于开源来说将是痛苦的、永久的损失。
微软云计算执行官 Scott Guthrie 最近承认,尽管微软 CEO Satya Nadella 在收购 GitHub 时做出了「GitHub 仍将是一个开放平台」的乐观承诺,但微软一直在推动更多 GitHub 服务(包括 Copilot)进入其 Azure 云平台.
Matthew Butterick 表示,他们并不是无缘无故向 GitHub 发起诉讼。他认为,发布开源软件的一大好处是「人」:围绕我们工作的用户、测试人员和贡献者社区。「我们的社区帮助我们以无需靠自己的方式改进软件,这使工作变得有趣」。
Copilot 向开源软件引入了更「自私」的界面:只给我想要的(just give me what I want)!使用 Copilot,开源用户永远不必知道谁制作了他们的软件,永远不必与社区互动,永远不必做出贡献。
同时,Matthew Butterick 提醒说,开源作者必须注意到,我们的工作被隐藏在一个名为 Copilot 的大型代码库中。就像农场中的一头奶牛,Copilot 只想将我们转变为要开采的资源的生产者。
「即使是奶牛也能从交易中获得食物和住所,而 Copilot 对我们的个人项目没有任何贡献。」
Matthew Butterick 认为,Copilot 的围墙花园与开源是对立的,且存在危害。因此,这也是对 GitHub 在被微软收购之前所代表的一切的背叛。如果你出生于 2005 年之前,肯定会记得 GitHub 的声誉是建立在其为开源开发人员提供好东西和培育开源社区的基础上的。相比之下,Copilot 是这个想法的多重疯狂反转。
换个角度说,也许你是 Copilot 的粉丝,认为 AI 是未来。首先,这里反对的不是一般的人工智能辅助编程工具,而是微软对 Copilot 的具体选择。我们可以很容易地想象一个对开源开发人员更友好的 Copilot 版本——例如,参与是自愿的,或者编码人员有偿为训练语料库做出贡献。目前看来,尽管自称热爱开源,但微软没有选择这些选项。其次,如果你发现 Copilot 有价值,很大程度上是因为底层开源训练数据的质量。Copilot 从开源项目中汲取生命,最直接的影响将是让 Copilot 变得更糟。
Matthew Butterick 表示,「当我第一次写 Copilot 时,我说过:『我不担心它对开源的影响。』短期内,我仍然不担心。但当我回顾自己近 25 年的开源之旅时,我意识到我错过了更大的图景。毕竟,开源不是固定的一群人。这是一种不断增长、不断变化的集体智慧,不断被新鲜的思想更新。我们为彼此设定了新的标准和挑战,从而提高了我们对取得成就的期望。
在这场盛大的炼金术中,Copilot 闯入了。它的目标是把开源的能量据为己有。我们无需深入研究微软在开源方面的曲折历史,就可以了解 Copilot 的本质——寄生虫。
在对开源的损害变得无法弥补之前,我们必须测试 Copilot 的合法性。这就是我想申明的原因。」