Redian新闻
>
编程神器Copilot逐字抄袭他人代码?GitHub 回应:相似,但不同......

编程神器Copilot逐字抄袭他人代码?GitHub 回应:相似,但不同......

公众号新闻

编译|核子可乐、燕珊
“Copilot 向开源软件注入了自私的基因:我想要什么,你就得给我什么。”  

自面世后就饱受争议的 GitHub Copilot 编程神器最近又遭遇舆论风暴。

日前,德州农工大学的一位计算机科学教授 Tim Davis 在推特上发文称, GitHub Copilot 在没有标注来源也没有 LGPL 许可的情况下,输出了大量应该受版权保护的代码。

Tim Davis 还发了自己和 GitHub Copilot 在稀疏矩阵转置、稀疏矩阵加法的代码对比,并表示两者几乎一模一样,高度雷同。Tim Davis 的推文引发热议,System76 技术总监认为这算是 GitHub Copilot 非法洗代码行为。

左边是该名教授的代码,右边是 GitHub Copilot 的。

对此,GitHub Copilot 的发明者 Alex Graveley 回应道,Tim Davis 写的代码和 Copilot 产生的代码不同,“相似,但不同”。他还提到,如果有人能提供一种方法可以自动识别代码是由某一方衍生出来的,那就可以申请专利了。

Alex Graveley 表示,到目前为止 GitHub Copilot 已被指控了诸多问题,包括剽窃代码、引入漏洞、代码不完美、太分散注意力、甚至让人变笨等等。他强调道,“我认为程序员永远不会被取代。Copilot 使人们的工作效率更高。”

起诉 GitHub Copilot

Copilot 是一款 AI 结对编程工具,它的主要定位是提供代码补全与建议功能。它是 Visual Studio Code 的一个插件,可根据当前文件的内容和当前光标位置为你自动生成代码。而版权问题是 Copilot 从一推出就面临的挑战,人们质疑它在 GitHub 上发布的公开代码上进行训练的合法性。

除了 Alex Graveley 的“怒怼”,这两天在 HackerNews 上引起热议的还有另一篇内容《也许你并不在乎 GitHub Copilot 在未经许可之下使用你的开源代码,但如果 Copilot 要抹除整个开源社区,你又将作何感想?》,这篇文章来源于一位名叫 Matthew Butterick 的律师,同时他也是一名程序员。

作为程序员,Matthew 从 1998 年起就在专业参与开源软件贡献,期间还在 Red Hat 工作过两年。最近,他又成了 Racket 的贡献者。他写过文章宣传 Lisp,也出过介绍编程语言开发的书,还发布过不少开源软件,包括专门用来出版线上书籍的 Pollen,以及他自己在工作中经常使用的 AI 软件。

今年 6 月,在 GitHub Copilot 正式推出的时候,Matthew 写了一篇关于 Copilot 违法问题的文章。而最近,Matthew 决定采取下一步行动,重新激活了自己的加州律师协会会员资格,并和几位律师发起了新的项目——针对 GitHub Copilot 违反对开源作者及最终用户的法律义务一事开展调查,并考虑进行诉讼。

Copilot 的问题在哪?

首先要说明的是,Copilot 跟传统自动补全功能有何区别?简单来讲,Copilot 由 Codex 进行支持,而 Codex 则是由 OpenAI 构建并授权给微软的 AI 系统(微软常被称为「OpenAI 的非官方所有者」)。Copilot 能根据用户输入的文本 prompt 提供建议,而且与只能提示细节建议的传统工具不同,Copilot 可以提供更大的代码块,包括函数的完整主体。

但作为底层 AI 系统,Codex 是怎么被训练出来的?据 OpenAI 的介绍,Codex 接受了“数以千万计的公共 repo”的训练,其中当然包括 GitHub 上的代码。微软的说辞则较为含糊,只提到“数十亿行公共代码”。不过 Copilot 研究员 Eddie Aftandilian 最近已经在播客中证实,Copilot 确实是“由 GitHub 上的公共 repo 训练而成”。

Matthew 认为,“Copilot 在系统训练与系统使用方面都存在法律问题。”

系统训练

绝大多数开源软件包是在授权许可之下发布的,在授予用户一定权利的同时也要求其承担一定义务(例如保留源代码的精确属性)。而这种授权的合法实现方式,就是由软件作者在代码中声明版权。

因此,要想使用开源软件,大家就必须做出选择:

  1. 要么遵守许可证所规定的义务;

  2. 要么使用那些属于许可证例外的代码(即版权法所规定的「合理使用」情形)。

如果微软和 OpenAI 决定基于各 repo 的开源许可来使用这些训练素材,那就得发布大量属性(attribution),这已经算是各类开源许可的底线要求。但截至目前,大家都还没有看到任何属性声明。

微软和 OpenAI 必须找到“合理使用”的理由。GitHub 前 CEO Nat Firedman 就曾在 Copilot 的技术预览会上提到,“在公开数据上训练(机器学习)系统属于合理使用的范畴。”

然而,软件自由保护组织(SFC)明显不同意他的观点,并要求微软方面提供能支持其立场的证据。保护组织负责人 Bradley Kuhn 指出:

我们曾在 2021 年 6 月私下询问过 Firedman 和其他几位微软 /GitHub 代表,要求他们为 GitHub 的公开法律立场提供可靠的参考依据……但他们什么都拿不出来。

事实上,目前全美还没有哪个判例能够直接解决 AI 训练中的“合理使用”问题。另外,所有涉及“合理使用”的案例均权衡了大量相关因素。即使法院最终判定某些类型的 AI 训练属于“合理使用”,也不代表其他类型的训练就能“无脑照办”。就目前来看,还不知道 Copilot 和 Codex 到底合不合法,微软和 OpenAI 其实也说不准。

系统使用

虽然没法确定“合理使用”最终要怎么在 AI 训练中落地,但可以想象,其结果并不会影响到 Copilot 用户。为什么呢?因为用户只是在使用 Copilot 提供的代码,而这部分代码的版权和许可状态同样模糊不清。

微软倒是有自己的说法。2021 年,Nat Friedman 曾声称 Copilot 的输出结果归属于操作者,其性质与使用编译器一样。但 Copilot 已经暗暗给用户挖好了坑。

微软将 Copilot 输出描述为一系列代码“建议”,并强调不会对这些建议“主张任何权利”。但与此同时,微软也不会对由此生成的代码的正确性、安全性或延伸出的知识产权问题做任何保证。所以只要接纳了 Copilot 的建议,那这些问题就都要由用户自己承担:

您需要对自己代码的安全性和质量负责。我们建议您在使用由 GitHub Copilot 生成的代码时,采取与使用其他一切非本人所编写代码相同的防范措施,包括严格测试、IP(知识产权)扫描和安全漏洞跟踪。

这样一来,可能会产生什么纠葛?用户控诉,就像上文中 Tim Davis 控诉的这起抄代码事件。

理论上,Copilot 使用他的代码,当然会产生相应的许可遵守义务。但从 Copilot 的设计来看,用户完全接触不到代码的来源、作者和许可证。

从这个角度看,Copilot 的代码检索方法就像一颗烟雾弹,下面掩盖的是另一种真相:Copilot 本身,只是连通海量开源代码的一套替代接口。只要用上它,用户可能就需要承担起代码原作者提出的许可义务。

意识到这一点,Nat Firedman 所谓 Copilot“就像是编译器”的说法就会变得不靠谱。毕竟编译器只会改变代码形式,但绝不会注入新的知识产权属性。

Copilot 对于开源社区意味着什么?

Matthew 认为,通过将 Copilot 当作海量开源代码的替代接口,微软不仅借此切断了开源作者与用户之间的法律关系,甚至建立起新的“围墙花园”——阻止程序员接触传统开源社区,从而消除了他们为之贡献的可能性。随着时间推移,这势必会让开源社区变得愈发贫乏。

用户的注意力和参与方向将逐渐朝着 Copilot 转移,最终彻底告别开源项目本身——告别源代码 repo、告别问题跟踪器、告别邮件列表、告别讨论板。这样的变化必将给开源带来痛苦、甚至永远无法挽回的损失。

“包括我自己在内的开源开发者之所以提出抗议,所图的绝不是钱。我们只是不想让自己的努力贡献被白白浪费掉。开源软件的核心在于人,在于由人组成的用户、测试者和贡献者社区。正是因为有了这样的社区,我们才能以超越自身的方式改进软件,让工作充满乐趣。”Matthew 进一步说道,Copilot 向开源软件注入了自私的基因:我想要什么,你就得给我什么。

他最后强调道:“我们反对的绝不是 AI 辅助编程工具,而是微软在 Copilot 当中的种种具体行径。其实微软完全可以把 Copilot 做得更开发者友好一些——比如邀请大家自愿参加,或者由编程人员有偿对训练语料库做出贡献。但截至目前,口口声声自称热爱开源的微软根本没做过这方面的尝试。另外,如果大家觉得 Copilot 效果挺好,那主要也是因为底层开源训练数据的质量过硬。Copilot 其实是在从开源项目那边吞噬能量,而一旦开源活力枯竭,Copilot 也将失去发展的依凭。”

参考链接:

https://githubcopilotinvestigation.com/

https://twitter.com/docsparse/status/1581461734665367554

https://devclass.com/2022/10/17/github-copilot-under-fire-as-dev-claims-it-emits-large-chunks-of-my-copyrighted-code/

声明:本文为InfoQ翻译,未经许可禁止转载。

今日好文推荐

Htmx意外走红,我们从React“退回去”后:代码行数减少 67%,JS 依赖项从 255 下降到 9

硅谷“网红”技术大牛 Steve Yegge:退休后面试工程主管,他们居然让我写点代码

智联招聘:Q3 全国平均招聘月薪 10168 元;曝特斯拉拒招小鹏前员工;英特尔或裁员数千人,国内公司涉多起劳动纠纷|Q 资讯

专访“MySQL 之父”:我曾创造 MySQL,也将颠覆 MySQL

活动推荐

11 月 25 日 -26 日,QCon 上海站即将在线下与大家见面。元宇宙实践、宕机复盘、金融科技、智能汽车、API 治理等十余个热门技术专题,50+ 大厂专家技术案例,查看更多精彩内容点击底部【阅读原文】直达大会官网。

大会门票 9 折优惠,下单立减 590 元,感兴趣的同学,联系票务经理:+86 18514549229(同微信)

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
开源程序员愤怒控诉!Github的「AI码农」Copilot就是寄生虫计算机编程的历史演进:用 50 种编程语言写 “Hello,World!” 程序2022美国房市严峻!与1981比较情况类似,但……喊一声“嘿!GitHub”,说出需求VS Code就能自己写代码了[日签] 未经他人苦,莫劝他人善兴趣的魔力什么是GPU?GPU和显卡的关系?GPU国产化布局?离谱!南开一本科生论文抄袭直博北大,本人回应:是论文辅导机构干的,已经报警……似是故人来在屏幕时代,他人不再是地狱,与他人失联才是让程序员动嘴写代码,Copilot测试新功能「嘿,GitHub!」动动嘴就能写代码了!Copilot测试新功能“嘿,GitHub”,告别键盘编码眔字源考Copilot逐字复制代码,恐抹去整个开源社区?程序员拿出律师证发起集体诉讼刘润年度演讲的逐字稿是怎么写成的?硬核观察 #812 GitHub Copilot 被诉“规模空前的软件盗版”GitHub Copilot,是你逼我的内核代码量不到一万行、GitHub star超5k,国产开源物联网操作系统TencentOS Tiny的探索与实践高夫渔父《渔歌子》曾被他人强迫接受观点和做事的人,更不应当用同样的方法让他人言听计从 | 一周荐书一行代码12倍加速Bert推理,OpenAI编程语言加持的引擎火了GitHub 上 3 个超好用的神器!狂揽两千星,速度百倍提升,高性能Python编译器Codon开源这个羊毛实在!Grubhub 外卖券满$10立减$5!足不出户吃吃吃~硬核观察 #738 Tornado Cash 代码在 GitHub 上重新上传大学教授怒喷:“Copilot自动填充了我的代码”,Copilot 发明者回应:相似,但不同!硬核观察 #846 GitHub 推出 Copilot 商业版,为代码建议提供辩护和索赔YY 直播GitHub开源项目,霸屏Github排名榜!明知可能感染新冠,还委托他人代做核酸,引发疫情被警方立案!知情人士:是申万宏源的两名分析师西雅图房地产真实案例分析:相似的房子,反而少卖了七十多万美金?索赔 649 亿!GitHub Copilot 惹上官司,被指控侵犯代码版权, 是开源社区“寄生虫”女性苦难是《落叶归根》2 - 门当户对 2(多图)超级编程AI登上Science封面!AlphaCode编程大赛卷趴一半程序员GitHub疯传!求职亚麻的留学生,请立即停止刷LeetCode!创业!你敢吗?GGV Fellows邀请你一起来做“敢为青年”!
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。