2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

程序员终结者还是“白嫖”开源代码?GitHub 火爆新编程工具刚推出就陷入争议

  • 2021-07-01
  • 本文字数:2471 字

    阅读完需:约 8 分钟

程序员终结者还是“白嫖”开源代码?GitHub火爆新编程工具刚推出就陷入争议

6 月 30 日,微软旗下代码托管平台 GitHub 推出了名为“ Copilot ”的 AI 编程辅助工具。但刚发布不久,这款工具便陷入了争议之中。

 

基于数十亿行开源代码训练

 

根据官方介绍,GitHub Copilot 工具由 OpenAI 开发的全新 AI 系统 OpenAI Codex 提供支持。Codex 基于 GPT-3 自然语言处理 (NLP) 模型演化而来,基于开源代码和自然语言进行了训练,可以理解编程语言和人类语言,并独立生成各种形式的文本。

 


该公司声称 Copilot “在代码生成方面比 GPT-3 能力强得多”。Copilot 利用了上传到 GitHub 及其他网站的数十亿行公开代码。基于庞大的代码库,Copilot 被引入集成开发环境(IDE)后,可以对完整代码进行遍历,并向程序员给出基于人工智能的分析建议,程序员可以接受或拒绝。GitHub 不保证生成的代码可以工作,因为 Copilot 不会去测试代码。

 

Copilot 发布后,有使用了该工具的网友表示:“Copilot 猜测到了大约十分之一我想写的代码,其他时候会给一些相当好或完全不合适的建议。但当 Copilot 猜对的时候,感觉它在读我的心。虽然只有我一个人编码,但真的很像结对编程。我编写了更好的代码、文档和测试。Copilot 使我成为了更好的程序员。”

 

GitHub 首席执行官 Nat Friedman 也表示,目前 GitHub 的数百名开发人员在编码时一整天都在使用 Copilot,大多数人都在接受建议而不是关闭该功能。

 

除了期待,也有一些开发者留言表示担心这一功能将使程序员失业,有人开始思考这将对编程造成什么影响。不过目前,Copilot 的主要定位还只是提供类似 IntelliSense/IntelliCode 的代码补全与建议功能。

 

微软是否违反开源许可?

 

虽然 Copilot 受到了很多开发者的喜欢,但也有开发者提出了质疑。

 

首先是效率问题。之前已经在 J​​ava 和 Kotlin 中尝试过两个 AI 驱动的自动完成引擎的

“thu2111 ”发帖表示,由于以下两个问题删掉了该插件:一是 AI 建议通常不如类型驱动的 IDE 自动完成(使用 IntelliJ)有用;二是 AI 插件非常积极地将它们的建议列表推到顶部,即使它们的帮助比默认值要小。

 

其次便是争议最大的问题:微软是否违反了开源许可协议规定。Copilot 代码生成优于 GPT-3 的部分原因在于,其在包含大量公开源代码的数据集上进行了训练,仅 GitHub 中就有 TB 级公开可用的代码及英语语言示例。

 

GitHub Copilot 现已作为 Visual Studio Code 扩展提供,处于测试阶段的 Copilot 将免费供开发者使用,但正式版上线后,微软将进行收费。微软表示,目前仅提供存储在公共存储库中的代码的服务。那么,微软是否有权利将这些开源代码应用到自己的商业产品中呢?

 

根据 GitHub 工作人员 Albert Ziegler 的介绍,GitHub Copilot 要记住一段代码,必须经常查看该代码段。由于每个文件仅向 GitHub Copilot 显示一次,因此该代码段需要存在于公共代码中的许多不同文件中。

 

Ziegler 表示,测试的 41 个主要代码段,至少出现在 10 个不同的文件中,其中 35 个出现超过 100 次。测试期间,GitHub Copilot 在曾访问超过 70 万次 GNU 公共许可证后建议启动一个空文件。

 


Copilot 测试数据,来源:Albert Ziegler

 

由于 Copilot 生成的代码不是 GPL 代码的副本,因此开发者无法辨认出这段代码是来自哪个项目。

 

GPL 协议的一个特点就是如果引用了 GPL 的代码库,就必须开源引用部分的代码。即如果一家公司有一行代码引入了基于 GPL 协议开源的库函数,就必须把整个代码开源。如果“藏匿”了 GPL 代码的片段,再将这些代码复制粘贴到商业项目中,这对很多开发者来说就是违反了协议。

 

游戏开发者 eevee 表示,版权不仅包括复制和粘贴,也包括衍生作品。微软也承认,GitHub Copilot 基于大量 GPL 代码进行了训练,它了解的所有内容都是从这些代码中提取的。“所以我不清楚为什么这不是一种将开放源代码转化为商业产品的形式。”

 

不过,布朗大学计算机博士 Thomas Dickerson 对 eevee 的观点提出了质疑:这是否意味着任何阅读过即使是一行 GPL 代码的人都不能再从事闭源项目,因为那些都是衍生作品?

 

网友 Zac Skalko 表示,Copilot 肯定会征得使用者的同意,这样 Copilot 就不是真正的"作者",使用者才是真正的提交者,因此它是可以免除责任的。

 

开发者 dragonwriter 则认为微软玩了一个文字游戏:微软并没有声称使用“开源语料库”,而是采用了“公共代码”,因为这种使用是“合理使用”,不受版权约束。

 

结束语

 

此前,对于人工智能使用有版权的作品进行训练是否侵权也引发过争议,至今业内尚未达成共识,涉及到开源衍生作品商业化问题更是难以判定。

 

2015 年,小米就曾被智能终端社区 XDA 公开指责违反 GPL v2 许可。小米的 MIUI 虽然源自 Android,采用的是 Apache 2.0 许可证,但 Android 使用了遵守 GPL v2 许可的 Linux 内核。根据 GPL v2 许可,修改的源代码也必须公开,恰恰小米已经修改了 Linux 的内核源代码,但小米一直未公开其源代码。虽然并未引发官司,但对社区和小米形象都带来了很大影响。

 

根据红帽发布的《2021年企业开源状况报告》,90%的 IT 领导者在企业中使用开源软件,79%的人表示,未来几年开源软件在新兴技术领域,如边缘计算、物联网、人工智能和机器学习中的应用将会增加。

 

随着开源应用的增加,开源项目的开发者与使用者之间也纠纷不断。

 

在过去几年,一些云厂商将开源软件用到了商业产品中,但没有返给社区任何东西、帮助维持这些项目,包括 Redis Labs、MongoDB、Cockroach Labs 和 Confluent 等在内的许多公司陆续修改或变更自己的开源许可证,以防止代码被无偿使用。

 

“他们只是试图限制用户将软件作为一种单独服务。这些新许可的目的是继续利用软件的普及和源代码获得客户,排斥基于相同代码的 SaaS 服务。”GitHub 开发政策和法律顾问 Justin Colannino 表示。时至今日,开源阵营和云计算平台之间长达数年的摩擦仍然存在。

 

任何开发商、初创公司和个人开发者,都需要足够的动力去做有意义的开源项目,否则开源生态将难以为继。

 

参考链接:

 

https://copilot.github.com/

https://docs.github.com/en/github/copilot/research-recitation#footnote8

https://sdtimes.com/open-source/the-battle-of-open-source-licenses/

2021-07-01 16:179317

评论 1 条评论

发布
暂无评论
发现更多内容

时序数据库 TDengine x Kepware:解决你最头疼的“设备接入”问题

TDengine

数据库 tdengine 时序数据库

底层架构剖析:国内 iPaaS 开发效率与稳定性双优,国外 ESB 为何落后?

谷云科技RestCloud

ESB 底层架构 集成平台 ipaas

火山引擎×国产智能终端:「端云协同」共创AI落地“中国方案”

新消费日报

如果要造硬件,最好在深圳,如果要在一场黑客松上造硬件,最好在……

RTE开发者社区

FL Studio 24.2重要更新内容,FL Studio 24中文破解版下载,FL Studio免费序列号激活码分享

阿拉灯神丁

编曲软件 水果FL Studio FL Studio2024 音乐制作软件 音频软件

【HarmonyOS 5】鸿蒙CodeGenie AI辅助编程工具详解

GeorgeGcs

HarmonyOS

Golang基础笔记二之字符串及其操作

Hunter熊

golang 字符串 字符串处理

鸿蒙运动项目开发:封装超级好用的 RCP 网络库(下)—— 实战应用

王二蛋和他的张大花

VKProxy新增速率限制功能

八苦-瞿昙

AI教育APP的开发

北京木奇移动技术有限公司

AI教育 软件外包公司 AI英语学习

AI手机出货量逐年上扬,火山引擎助力国内厂商 “弯道超车”

新消费日报

《HarmonyOSNext性能暴击指南:3大避坑术+4维钻石法则,告别卡顿从入门到封神!》

Turing_010

项目管理利器:甘特图的全面解析与应用指南

敏捷开发

甘特图 #项目管理

利用 Amazon Bedrock 构建高效 SEO 内容生成系统:从流量挖掘到智能创作

亚马逊云科技 (Amazon Web Services)

大数据-17 Flume 分布式日志收集 实时采集引擎 Source Channel Sink 串行复制负载均衡

武子康

大数据 hadoop flume

天润融通Agent已经成了最会卖货的员工

天润融通

火山引擎重塑智能终端行业,推动国产AI普惠

新消费日报

【HarmonyOS 5】鸿蒙中Stage模型与FA模型详解

GeorgeGcs

HarmonyOS

大模型 RAG 进阶实战营 毕业总结

gigifrog

spss是什么软件,SPSS主要用来做什么的 ? SPSS数据分析软件介绍 spss个人版和企业版区别

阿拉灯神丁

mac数据分析统计软件 spss数据统计 IBM SPSS Statistics中文 spss统计软件

二级等保

等保测评

时序数据库 TDengine 通过麒麟全系列兼容性认证,稳了!

TDengine

数据库 tdengine 时序数据库

时序数据库 TDengine × Power BI:高频数据也能秒级响应

TDengine

数据库 tdengine 时序数据库

智慧园区系统(源码+文档+讲解+演示)

深圳亥时科技

【HarmonyOS 5】鸿蒙应用px,vp,fp概念详解

GeorgeGcs

HarmonyOS NEXT

黑龙江腾讯云:科技赋能,助力龙江新发展

等保测评

甩开卡顿!HarmonyOS丢帧问题超详细拆解手册

Turing_010

Windows下版本控制器(SVN)- 配置版本库

刘大猫

人工智能 svn 大模型 tortoiseSVN 版本控制器

Java中高级核心知识全面解析(面试题及答案大全)!

程序员高级码农

程序员 Java 面试题

【 HarmonyOS 5 入门系列 】鸿蒙HarmonyOS示例项目讲解

GeorgeGcs

HarmonyOS NEXT

时序数据库 TDengine 助力华锐 D5 平台实现“三连降”:查询快了,机器少了,成本也低了

TDengine

数据库 tdengine 时序数据库

程序员终结者还是“白嫖”开源代码?GitHub火爆新编程工具刚推出就陷入争议_文化 & 方法_褚杏娟_InfoQ精选文章