写点什么

“我的代码被微软和 OpenAI 抄了,维权后被他们耗了两年”

  • 2024-07-12
    北京
  • 本文字数:3040 字

    阅读完需:约 10 分钟

大小:1.42M时长:08:16
“我的代码被微软和 OpenAI 抄了,维权后被他们耗了两年”

2022 年 11 月,四名身份不明的原告(“J. Doe”)(随后增加到五名)针对 GitHub、微软和 OpenAI 在美国发起集体诉讼,声称 Copilot 编码助手在训练期间使用了托管在 GitHub 上的开源软件,因此会向其他程序员用户建议这些公共项目的片段,且完全不考虑许可证条款的要求,例如提供适当的来源标注,因此上述公司侵犯了原创作者的知识产权。

 

他们之所以感到不满,是因为他们认为 Copilot 可能会将他们编写的、本应受到版权保护的开源代码中的部分内容交付(更确切地说是复制)给其他程序员使用,且未对其劳动成果给予相应的认可、也没有遵守原始许可证的其他条款要求。

 

此诉讼最初共涉及 22 项索赔,但随着时间推移,被告企业提出动议要求法庭驳回指控并基本受到法官 Jon Tigar 的支持,因此索赔数量逐渐减少。

 

在当地时间 7 月 5 日公布的法院庭谕(https://regmedia.co.uk/2024/07/08/github_copilot_dismiss.pdf)中,Tigar 法官对原告提出的另一批索赔作出裁决。总体而言,GitHub、微软及 OpenAI 获得胜诉。其中三项索赔要求被驳回,只有一项被允许继续讨论。而根据微软及 GitHub 方面律师的统计,目前总计只余两项指控仍待审理。

 

这一结果再次引发开发者们的关注和热烈讨论。

 

“如果微软和 OpenAI 获胜,是否意味着任何人都可以合法获取专有产品的泄露源代码,并对其进行 LLM 培训,然后要求 LLM 给出一个足够不同的版本来避免侵犯版权?”有网友提出质疑后立马有人跟帖称,“我认为这正是将要发生的事情,不仅仅是代码,还有文学和艺术品。有人可能会专门为此设计和训练这样的 LLM。"

 

“我觉得真正重要的是谁有更多的钱投入到法庭上。不知怎的,我觉得如果是‘Adobe 诉称其代码被 Copilot 使用’,结局不会一样。”还有网友称。

 

22 项索赔要求,20 个无疾而终

 

为什么说 7 月 5 日被驳回的指控相当重要?因为其中一项涉及《数字千年版权法(DMCA)》第 1202(b)条的侵权规定,该条款规定不得在未经许可的情况下删除关键的“版权管理”信息。根据许可证中的相关规定,此案情形应明确列出代码由谁编写以及使用条款。

 

集体诉讼的开发者们认为,Copilot 在为用户提供项目代码片段时删除了这些信息,因此违反了该条的规定。

 

然而法官 Tigar 并不同意,理由是 Copilot 的代码建议与开发者自身编写的版权保护成果并不完全相同,因此上述条款并不适用。

 

事实上,据称去年 GitHub 已经调整了这款编程助手,确保生成代码建议时较训练代码做出细微调整,以防止输出内容被指控为直接照搬许可软件片段。

 

随着法官 Tigar 驳回该项指控,原告方已无法就 DMCA 第 1202(b)条提出新的索赔理由。

 

但多位匿名程序员一再坚称,Copilot 仍会生成与其亲手编写的代码完全相同的建议,这也成为他们诉讼期间的核心论点,而这恰恰符合 DMCA 设定的相同性要求。然而,法官 Tigar 此前裁定原告方实际上无法证明存在这种情况,导致原告只能撤回指控并对内容做出进一步修改。

 

修改后的指控辩称,如果用户关闭 Copilot 的反复制安全开关,即可引发非法代码复制。他们还引用一项关于 AI 生成代码的研究,试图用其中列举的 Copilot 剽窃源代码证据支持自己的立场。但法官再次表示反对,称并无法认定微软的系统在以具有实际意义的方式剽窃他人成果。

 

在庭审期间,法官专门引用了研究中的观察结果,即 Copilot“在良性情况下很少直接提供其记住的代码,大多数原样照搬只发生在用户提示模型使用与训练数据非常相似的长代码片段的情况下。”

 

法官总结道,“也就是说原告的主张依赖于一项研究,而该研究仅认为 Copilot 理论上可能根据用户提示词生成与他人所编写代码相匹配的代码,这缺乏充分的说服力。”

 

DMCA 指控只是刚刚被驳回的三项指控中的一条,另外两条分别是不当得利与惩罚性赔偿,公平来看,这两项指控恐怕也须经历修改及重新提出。

 

除此之外,最初提出的申诉主张就只剩下两项:其一是违反开源许可,其二则是违反合同,而后者也曾经历过被驳回后重新提出。

 

作为回应,GitHub 在一份声明中表示,“我们坚信 AI 将改变整个世界的软件开发方式,从而提高生产力水平。更重要的是,能够改善开发者的工作感受。”“我们相信 Copilot 遵循相关法律,并且从起步阶段就一直致力于负责任地通过 Copilot 实现创新。我们将继续投资并倡导未来由 AI 驱动的开发者体验。”

 

争论不休、互相指责

 

从上周五针对该案提交的一份联合案件管理声明(https://regmedia.co.uk/2024/07/08/github_copilot_joint_management.pdf)来看,双方在调查过程中频繁向对方提出种种不满与申诉,而且双方均表示对方没有提供其应当提供的全部文件。

 

原告的开发者们指责三家公司故意拖延时间,称目前才公开的文件早就应该提交并对外披露。而此前大部分焦点都集中在微软当时提交的唯一一份文件上,原告称这明显是在混淆视听。

 

不愿具名的程序员们强调,“有微软员工参与了多轮由 GitHub 发起的讨论,表明微软只提交一份文件完全是为了拖延时间和混淆观点,再无其他实际意义。另外,微软明确知晓但并未披露其员工也直接参与了 Copilot 及其底层模型的创建、运营和管理。”

 

作为 Windows 系统的缔造者,微软辩称文件提交不及时主要是由于收集 Slack 消息时遇到了“技术困难”,但原告对此并不信服。开发者们同时认为,OpenAI 也应该提交更多信息,并表示谷歌图书侵权案中的被告就提交了数万份信息。

 

而另一方面,微软和 GitHub 反驳称原告方要求提交的信息太多,指责他们“未能有效且真诚地关注与指控切实相关的证据。”其中包括微软 2018 年对 GitHub 的收购。

 

与此同时,OpenAI 则表示原告在索要电子邮件方面没有遵循正确的程序,因此在收到正确申请之前,其无法(或者说不会)提供任何电子邮件。

 

三家公司还指出,DMCA 版权索赔被驳回已经从根本上改变了案件性质,并认为现在应该缩小调查范围。原告方对此提出异议,理由是开源许可证违规指控所涉及的文件,与 DMCA 所对应的文件几乎相同。

 

GitHub、微软及 OpenAI 均认为,原告没有正确回应他们的调查请求,称原告方的文件包含“JSON 文件、空白 HTML 文件、没有任何元数据的电子邮件,以及在 Slack 上发送的经过不当编辑的 PNG 文件等信息形式”。

 

目前原告方要求延长调查时间。尽管三家科技巨头辩称没有必要,但表示愿意接受“合理的延期”。

 

结束语

 

该事件继续引发了大家的思考:

 

“如果我是作为一个人,做了下面的事情:1. 仔细阅读并记忆一些受版权保护的代码;2. 编写与原代码在文本上完全相同的新代码。但在编写过程中,我会随机机械地调整一些标识符或其他东西,以编写具有完全相同语义但字符不相同的代码。3. 声称是新的原创代码,但没有原始版权。我认为从法律角度来说我会受到严厉惩罚。这在我看来完全就是故意侵犯版权并故意掩盖侵权行为。当机器做同样的事情时有什么不同?”

 

有网友对此表示,“关键是,当涉及到公司利益时,法律体系具有高度的选择性。”他以美国作家协会诉谷歌案为例称,谷歌的辩护理由就是合理使用。

 

还有网友表示,机器本身什么也做不了。用户和机器共同构成了一个更大的系统,而有了自动完成功能后,用户才是主导。继而,该网友表示,“我怀疑很多版权侵权都是通过剪切粘贴和截屏功能实现的,也许我们也需要小心使用自动完成功能,避免这种情况是用户的责任。”

 

该诉讼案引发的担忧并不是最近才有的,但是从该诉讼开始算起已经接近两年的时间,各方都没有给出答案,而且短时间内该诉讼可能也不会完结,意味着这个问题未来一段时间内仍不会有结果。

 

参考链接:

https://news.ycombinator.com/item?id=40919253

https://www.theregister.com/2024/07/08/github_copilot_dmca/

 

2024-07-12 15:439421

评论

发布
暂无评论

CTO问我:MySQL从节点上的服务崩了,还怎么「主从读写分离」?

Java你猿哥

Java MySQL 后端 ssm Java工程师

吃透阿里2023版Java性能优化小册后,我让公司系统性能提升了200%

Java你猿哥

ssm Java工程师 Java性能优化 java

镜舟科技荣获IT168年度技术卓越奖!

镜舟科技

数据库

2022 OpenHarmony年度运营报告

OpenHarmony开发者

OpenHarmony

从华为投入研发基础开发工具看国产IDE的未来和商业模式

科技怪授

阿里三面最后一问:解释一下Java并发AQS的独占锁模式

Java你猿哥

Java Java并发 AQS 后端 ssm

打造炫酷时尚的 Neumorphism 设计!

编程的平行世界

flutter 前端 设计 flutter for web

浅谈活动场景下的图算法在反作弊应用

百度Geek说

人工智能 算法 图神经网络 图像融合 企业号 3 月 PK 榜

Serverless Streaming:毫秒级流式大文件处理探秘

科技怪授

PaaS

企业研发治理转型利器华为云发布流水线服务CodeArts Pipeline

科技怪授

华为

镜舟数据库与 DataBuilder 完成兼容性认证,助力企业开展“极速统一”数据分析

镜舟科技

数据库

测试人社区技术沙龙——计算机视觉在App兼容性测试中的实践

测试人

软件测试 测试开发 测试开发自动化测试

镜舟:打造行业顶级国产OLAP数据库

镜舟科技

量化现货合约跟单app系统开发源代码(可二开)

开发v-hkkf5566

IPQ6010/QCA8081/QCN5052/QCN5022 MAXON MX-A6022-ME WiFi6 Industrial Wireless Access Point

MAXON

IPQ6010 QCN5052 QCN5022 QCA8081

阿里云PAI-DeepRec CTR 模型性能优化天池大赛——获奖队伍技术分享

阿里云大数据AI技术

人工智能 深度学习 性能优化 模型 企业号 3 月 PK 榜

好家伙!阿里最新SpringBoot进阶笔记涵盖了SpringBoot所有骚操作

Java你猿哥

Java Spring Boot 面经 SSM框架

面试官:try-catch放在循环体内还是循环体外,哪种效率更高?

做梦都在改BUG

镜舟数据库荣获 CSDN 年度创新产品与解决方案!

镜舟科技

数据库

Git客户端工具:SourceTree中文激活版

真大的脸盆

git Mac Mac 软件 Git客户端

pytest学习和使用3-对比unittest和pytest脚本在pycharm中运行的方式

Python 自动化测试 pytest

浅谈堡垒机优化的必要性-行云管家

行云管家

云计算 网络安全 堡垒机 自动化运维

使用图解的方式来解决链表的算法问题

做梦都在改BUG

测试人软件测试技术沙龙——深入探讨一站式效能平台的演进历程

测试人

软件测试 自动化测试 测试开发

前端已死?后端已亡?这个概念真的成立吗?

这我可不懂

前端 低代码 JNPF

pytest学习和使用4-pytest和Unittest中setup、teardown等方法详解和使用(最全)

Python 自动化测试 unittest 测试框架 pytest

跟着字节AB工具DataTester,5步开启一个实验

字节跳动数据平台

大数据 云服务 AB testing实战 ab测试 企业号 3 月 PK 榜

详解目标检测模型的评价指标及代码实现

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 企业号 3 月 PK 榜

MySQL MVCC实现原理

得物技术

MySQL MVCC java

GaussDB(DWS)运维:导致SQL执行不下推的改写方案

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 3 月 PK 榜

【分享】为什么我设计的PCB很少出错?

华秋PCB

工具 测试 电路 PCB PCB设计

“我的代码被微软和 OpenAI 抄了,维权后被他们耗了两年”_AI&大模型_褚杏娟_InfoQ精选文章