随着计算机生产力工具的不断变革,由人工智能支撑的编程工具自动化在近两年迎来高速发展。与此同时,新事物也伴随着新问题接踵而至,因AI编程引起的软件著作权争议迷雾笼罩着业界。不久前,软件自由保护协会(SoftwareFreedomConservancy,SFC)因不满知名开源托管平台GitHub对旗下AI编程工具Copilot收费一事,发布了一篇名为《放弃GitHub:时机已到!》的长文,并呼吁所有的自由软件与开源软件开发者离开GitHub平台。
●异军突起的AI编程
为什么一款人工智能编程工具的收费举动引发了SFC和GitHub平台的决裂?这要从异军突起的AI自动化编程说起。
Copilot是由GitHub平台与OpenAI实验室合作开发的一个AI插件,用户通过将其安装在常见的代码编辑器或集成开发环境工具(如VSCode、IntellijIDEA等)中,在编程时Copilot会辅助开发者自动补全代码。
Copilot的代码补全能力其原理由OpenAICodex模型提供支持,该模型基于GPT-3(一种基于文本训练的深度学习神经网络)创建,同时还接受了来自GitHub平台上万个存储库的GBPython代码的训练。Copilot目前能够支持十多种编程语言的自动代码补全,其中Python的效果最佳。程序员在插件的辅助下甚至只要输入一段注释,Copilot就会立即给出接下来可用的代码、建议。
AI编程工具通过文本训练聚合了海量代码信息,为程序员省去了大量的查找时间。有开发者戏称:“Copilot不仅解放了大脑,还解放了手指。”人工智能其本质是人类智能的集合,在算力上超越人类智能的表现在于其巨大的并行计算,这也是21世纪人工智能神经网络与深度学习迅速壮大的原由。将这种能力运用到计算机软件开发和软件工程领域,确实将带来生产力工具的极大变革。
●Copilot潜在的和正在引发的争议
Copilot的收费举动是当前最表面的问题也是引爆争议的导火索。GitHub在去年6月放出Copilot技术预览版之初,社区开发者们表现出积极的兴趣,经过一年时间对各种编程语言的适应并在多种开发环境上测试发布,该插件工具已经积累起超过万数量的订阅群体。
其实Copilot与其算法模型Codex自发布伊始就引起了业界一些机构和专业人士的担忧,这些观点认为该技术生成的代码段可能会在不知不觉中牵涉版权问题。由于一开始Copilot是免费订阅的,这个问题并没有被扩大,短时间内也很少会出现将Copilot生成代码商用的情况。随着GitHub对Copilot搞起了收费模式,那些原本“沉默”的争议瞬间被点燃爆炸。
SFC在“讨GitHub檄文”中对其作为列举数项批评,呼吁开发者不要忘记21年前另一个平台SourceForge将代码私有化的教训。反对GitHubCopilot收费观点认为,平台上托管着数量巨大的开源代码项目,这些代码依据项目本身所发布开源许可证规定合理利用,GitHub作为托管平台将开源代码用于Copilot自动化辅助后,又对该插件进行订阅收费,这样的行为与相关知识产权法规以及开源许可约定相悖。
同时,反对观点所指向的争议在于,当用于机器学习训练的开源代码被提供给Copilot用户作为另一创作者的代码、软件项目的一部分时,该行为是否属于对前者的合理利用。众所周知,开源许可证种类众多而规则不一,譬如对版权运用最严格的GPL许可证具有“凡触之皆GPL”的传染性,这就基本上阻绝了该证软件的商业应用,而其他常用的许可证诸如BSD、MIT、Apache都有相应的规则。
SFC所指出问题其一就在于平台方并未给出所训练代码的相应许可证,如果该问题没有合适的解决方法,就如同一些开发者所说的:当你某天在敲代码的时候突然收到来自其他作者的私信(侵犯他人版权)。而Copilot目前暂不支持代码重查这样的功能,因为这涉及到非常复杂和前所未有的工作。
软件知识产权纠纷问题由来已久,远的如AT&T诉伯克利BSD侵权Unix,近的有甲骨文诉谷歌Java案。裁量和判定一直以来都是软件案的难点,比如在Java案中,法庭在安卓系统有无对Java专利构成侵权、JavaAPI是否受版权保护问题上的裁定令人印象深刻,对“被复制的37个JavaAPI代码段”的自由裁量成为该案的关键。人工智能辅助编程插件作为工具本身提供代码补全,在免费的情况下显然没有问题,这被认为是平台向用户提供服务用于研究、交流和创作;一旦收费就存在侵权纠纷,因为代码著作权并非平台所有,除非插件所提供的代码段在法律裁量上无法被裁定为复制。
最后
软件知识产权是法律领域比较新的知识,因为软件相对于机器硬件其商业价值在20世纪60年代末才开始逐渐显现,而代码和开源等方面在世界各国现行的版权法体现上都存在较大真空。随着近年来围绕着开源代码侵权的案件逐渐增多,这一领域的缺失有望得到有效补充。
人工智能的红利仍在持续改变世界,未来软件工程自动化是长期趋势。继运维部署之后,开发领域也将面临巨大变化,本轮深度学习带来的AI变革将持续推进生产力工具的形态演进。同时,人工智能也是一把双刃剑,开发者也应当认识到过度依赖自动化的负面结果。
文/陈徐毅高级工程师,科技专栏作者,中国计算机学会会员。