写点什么

程序员终结者还是“白嫖”开源代码?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:178572

评论 1 条评论

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

对比速览 | Alluxio 企业版 v.s. 社区版

Alluxio

模型训练 大数据分析 大模型 Alluxio GPU 利用率

Keka for Mac(压缩解压工具) 1.3.6中文版

Mac相关知识分享

文件压缩软件

知识管理:最适合千人团队的8大知识库软件

爱吃小舅的鱼

知识管理 知识库 知识管理系统 知识管理软件 知识库工具

数据库管理开发工具Navicat for MySQl 中文汉化版 Mac/win

Rose

Tableau Desktop 2019 for Mac(全能数据分析工具) v2019.1.0中文版

Mac相关知识分享

数据分析工具

iStat Menus for Mac(系统活动监控器) v6.73 (1230)中文激活版

Mac相关知识分享

系统监控工具

VMware Fusion Pro 13密钥 for Mac(VM虚拟机)v13.5.2中文版

Rose

FSNotes for mac(文本处理软件)v6.9.0中文免激活版

Mac相关知识分享

内测分享:如何把小程序游戏的运行到iOSApp中

Geek_2305a8

好用的mac硬盘测速工具 Blackmagic Disk Speed Test免费版

Rose

FashionAI比赛-服饰属性标签识别比赛赛后总结(来自 Top14 Team)

阿里云天池

数据飞轮驱动消费行业变革,火山引擎数智平台助力门店数智化转型

字节跳动数据平台

数字化转型 云服务 数据平台 火山引擎 数据飞轮

如何快速集成京东商品详情API

技术冰糖葫芦

api 货币化 API 接口 API 文档 API 测试

虾皮商品数据接口全解析:高效采集,精准运营新利器

tbapi

shopee API shopee商品详情接口 shopee商品详情数据采集

Tik Tok账号被限流什么原因?怎么解决?

Ogcloud

TikTok tiktok运营 tiktok直播 TikTok养号

Cisdem PDFMaster for mac(专业PDF编辑转换器)v6.5.0激活版

Mac相关知识分享

PDF转换器

Earth 3D for Mac(3D地球模拟软件)v8.1.3免激活版

Mac相关知识分享

Native Instruments Komplete Kontrol for mac(音源制作软件)

Mac相关知识分享

Mac软件 音乐制作软件

EdgeView 4 for Mac(快速图像查看器) v4.7.8激活版

Mac相关知识分享

国内项目管理软件大比拼:找到你的最佳工具

爱吃小舅的鱼

项目管理

企业如何构建全面的指标管理体系?

袋鼠云数栈

指标体系 指标 指标平台 指标数据安全 指标生命周期

Experience Design 2020 (xd)中文破解版 mac/win

Rose

Lightroom Classic 2024破解版 LrC2024中文版下载

Rose

《财富》杂志公布2024年《财富》全球500强

财见

音频采样器Native Instruments Kontakt 7破解版安装包 Mac/win

Rose

Mac硬盘检测:SMART Utility for mac 激活版

你的猪会飞吗

mac软件下载 mac破解软件下载

美年健康AI算法大赛--季军解决方案

阿里云天池

功能强大的FTP(文件传输协议)客户端Transmit 5 for Mac中文破解版

Rose

华为云IoTDA控制台全新升级,来体验35万+开发者使用的平台

华为云开发者联盟

控制台 华为云IoTDA 设备接入 企业号 8 月 PK 榜 2024企业号8月pk

首届中文NL2SQL挑战赛亚军比赛攻略_BugCreater

阿里云天池

开发运营级海外语聊APP源码需要考虑哪些?借鉴Falla、WePlay、YoHo

山东布谷科技胡月

海外语聊APP 语聊APP开发 语音聊天室APP 语聊源码 语聊平台搭建

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