第二节 人工智能企业的开源合规风险及管理建议

1956年,计算机专家约翰·麦卡锡提出了“人工智能”[1]一词,主要是指利用计算机技术模仿人类思维的工具,这也被人们认为是人工智能正式诞生的标志。在这之后的几十年时间里,计算机技术的发展使得机器人、语言识别、图像识别、自然语言处理等技术的发展获得了突飞猛进的进步,人工智能时代的开启越来越近。

2022年6月,第六届世界智能大会发布了《中国新一代人工智能科技产业发展报告(2022)》。该报告显示,人工智能技术赋能广泛分布在19个应用领域。其中,2021年排名前六的领域分别是企业智能管理、智慧城市、智能营销与新零售、智能制造、智能网联汽车和智能金融,占比超过50%。其中,自2017年以来,智能营销和新零售、智能制造、智能网联汽车、智能教育、智慧文旅和智能农业是技术合作关系数增长较快的应用领域。[2]

然而,人工智能技术在发展的同时也带来了诸多社会问题,例如部分工种逐渐因技术的进步而消失、造成了社会失业人群比例上浮、不知情的机器操控等情况。2021年4月21日,为促进欧盟地区人工智能技术的使用、投资和创新,欧盟委员会通过了《人工智能法》提案,旨在建立关于人工智能技术的统一规则。根据欧盟委员会的定义,人工智能技术是指采用官方所列明的一种或多种技术和方法开发的软件,并且能够针对特定人群或具体目标产生诸如内容、预测、建议或决定等一系列影响其交互环境的输出技术。提案将人工智能技术可能存在的风险分为不可接受的风险、高风险、有限的风险和极小的风险,希望通过有效的监督措施推动人工智能技术的良性发展。

近年来,开源技术蓬勃发展,在不同行业领域中的渗透不断加深。例如,2005年谷歌公司通过收购安卓公司掌控了开源智能终端操作系统安卓(Android),从而在安卓手机产业中占据了霸主地位;2010年甲骨文公司通过收购开源数据库MySQL增强了其在数据库领域的领先地位;2018年国际商业机器公司(IBM)通过收购开源软件供应商红帽(Red Hat)增强了其在服务器市场的竞争力。一直以来都非常抗拒拥抱开源的英伟达(NVIDIA)也在近期出人意料地宣布以GPL/MIT双重许可正式开源其版本为R515的Linux GPU内核模块。据NVIDIA的说法,此举只是该公司更广泛的开源计划的第一步。上述事件以及类似甲骨文、NVIDIA这类早期坚决抵制开源的巨头企业对开源态度的转变,无不表明开源创新与协同能够有力推动产业的发展进程。因此,开源技术在人工智能产业中的应用,也将对该产业产生积极影响。

2021年3月12日,《中华人民共和国国民经济和社会发展第十四个五年规划和2035年远景目标纲要》发布,明确指出要“支持数字技术开源社区等创新联合体发展,完善开源知识产权和法律体系,鼓励企业开放软件源代码、硬件设计和应用服务”。随后在2021年12月27日,国务院知识产权战略实施工作部际联席会议办公室印发《知识产权强国建设纲要和“十四五”规划实施年度推进计划》的通知,提出完善新兴领域和特定领域知识产权规则,包括:研究制定大数据、人工智能、区块链、基因技术等新领域新业态知识产权保护规则;研究制定信息技术开源知识产权合规标准、开源社区代码贡献规则标准等,开展行业开源知识产权风险及合规问题研究,加强行业开源知识产权合规评估与培训。上述文件都显示出开源技术在应用过程中必然涉及众多的知识产权风险问题。

因此,以下围绕开源软件及开源技术展开讨论。

一、开源的相关概念

开源是一种在软硬件开发、数据与信息共享中广泛采用的开放式协作模式,协作的产出物应该符合开源许可证条款的要求。[3]由此看出,开源既不单指开源软件,也不是一种商业模式,而是一种开放式协作模式。协作的产出物可以是软件、小程序、数据库、文档等,每一种产出物都可以根据其特点选择不同的开源许可证。例如,软件可以选择适用通用公共许可证(General Public License,GPL)协议用以保护用户的自由度;小程序可以选择适用Apache协议,通过其专利报复条款以避免用户就作品或作品中所涉及的贡献起诉专利侵权;对于开发者已经使用现有的以非自由或不严格许可证发布的数据库,可以选择适用GNU宽通用公共许可(Lesser General Public License,LGPL)协议;教程、参考手册等文档可以选择适用GNU自由文档许可证(GNU Free Documentation License,GFDL)或知识共享许可证(Creative Commons license,CC协议)。[4]

二、开源技术在人工智能产业中的应用

(一)人工智能产业中的开源软件

根据开放源代码促进会(Open Source Initiative,OSI)官网的信息[5],开源软件的定义最初源于Debian自由软件指南(DFSG),之后布鲁斯·佩伦斯(Bruce Perens)从Debian自由软件指南中删除特别提到Debian的部分,作为开源软件的定义。开源软件不仅仅意味着访问源代码。开源软件的分发条款必须符合以下十项标准(OSD标准):(1)可自由地再发布;(2)源代码公开;(3)允许派生作品;(4)作者源代码的完整性;(5)不能歧视任何个人和团队;(6)不能歧视任何领域;(7)许可协议的发布;(8)许可协议不能针对某个产品;(9)许可协议不能约束其他软件;(10)许可协议必须独立于技术。[6]

在人工智能浪潮再次掀起时,越来越多的人工智能企业选择了软件开源。人工智能产业链通常分为基础层、技术层和应用层三个层次。技术层包含计算机视觉、自然语言识别、机器学习和深度学习等关键技术。目前,人工智能产业中的开源软件技术主要集中在机器学习,尤其是深度学习领域,并且已产生了一批在业内具有深远影响力的开源机器学习框架。例如,谷歌在Apache开源许可证2.0下发布了TensorFlow。TensorFlow提供一个使用数据流图的数值计算库,可在单/多颗CPU或GPU系统甚至移动设备上运行;[7]脸书(Facebook,现为Meta)推出了Caffe2框架;百度推出了深度学习平台飞桨(PaddlePaddle)等。

(二)人工智能产业中的开源硬件

开源软件的出现大大缩短了软件行业的开发周期,提高了软件开发效率。而在硬件领域,特别是芯片设计,每个模块的设计和验证都关系到最终流片的成功与否,如果使用的开源组件成熟度不高,导致芯片流片后出现故障(bug),会大大增加芯片的研发成本和设计周期,因而使得目前很多开源组件难以在芯片领域实施。但是如果开源组件能够保证足够的品质,将大大缩短芯片的设计周期,降低研发成本。因此,近年来,人工智能芯片越来越受到关注,人工智能芯片需要执行大量的矩阵乘法等计算。目前,典型的开源芯片项目包括RISC-V和NVDLA。

2010年,美国加州大学伯克利分校(UCB)推出基于精简指令集计算(RISC)原理建立的开源处理器指令集RISC-V,成为目前最成功的开源芯片项目,可以免费使用并允许任何人设计、制造和销售RISC-V芯片及软件。基于RISC-V开源指令集可以设计服务器计算芯片、家用电器计算芯片、工控计算芯片和比指头小的传感器计算芯片。预期在未来的异构计算和物联网(Internet of Things,IoT)领域都会得到广泛应用。[8]

NVDLA是NVIDIA推出的基于Xavier的开源深度学习推理加速器,面向终端片上系统(SoC)推理场景,其模块化结构适合在物联网设备上进行扩展。NVDLA可以让SoC厂商免费使用并根据需求修改框架。但需要注意的是,虽然使用NVDLA免费,但是修改时不可避免地要使用到NVIDIA生态下的其他工具,比如用TensorRT优化深度学习模型,从而帮助推动NVDLA生态的构建等。[9]

(三)人工智能产业中的开源数据

人工智能技术广泛应用于手机、汽车、家电、安防、医疗、教育、金融等领域,人工智能技术在这些应用领域的突破依赖于海量的训练数据,伴随着应用场景的快速发展,数据开源会成为一种新的趋势。

一方面,目前,在人工智能领域存在若干标准数据集,如机器视觉领域的MNIST、CIFAR、ImageNet,自然语言领域的WikiText、SQuAD、Billion Words、Stanford Sentiment Treebank,语音识别领域的2000 HUB5 English、CHIME,推荐系统领域的Million Song Dataset等。这些数据集在推动人工智能算法优化、工程开发等方面起到了重要作用。如果各个公司都独自开发不同的数据集,数据集的定义、格式、接口等差异很大,会导致开发出来的人工智能程序不能兼容和互操作,将影响人工智能平台的集成式性能。另一方面,人工智能技术所使用的海量训练数据需要提前标注,高质量的标注数据会影响人工智能公司的竞争力。数据标注有许多类型,如分类、画框、注释、标记等,不同类型的标注可以根据行业、需求、目标、语言等要素进一步细分,导致不同机构标注的同类数据,甚至相同数据,标注差异都很明显,不利于后续的分析和处理。[10]基于上述两方面的原因,如果在保证企业商业秘密和数据安全的前提下,推动数据开源,不仅可以减少重复数据采集、数据标注和数据处理工作,提高工作效率,降低企业开发成本,而且可以促进相同应用领域的企业之间的合作,共同推动人工智能产业的发展。

全球数据库流行度排行榜网站DB-Engines数据显示,截至2020年9月,全球开源数据库共182个,已超过商业数据库,[11]比较知名的包括Apache软件基金会(Apache Software Foundation,ASF)的Hadoop、Spark,国内有华为的Apache CarbonData等。此外,还有一些保护开源数据的法律框架,如Linux基金会发起了社区数据许可协议(Community Data License Agreement,CDLA),用于在个人和组织之间公开、共享和使用数据。

三、开源软件对人工智能技术发展的影响

(一)什么是开源软件

开源软件对人工智能技术的发展至关重要,了解开源软件的法律性质是使用开源软件的前提。开源软件通常被认为是指开放源代码的软件,任何人都可以查看、修改或者增加其源代码。开源软件与专有软件不同,专有软件的使用需要经过作者的同意或者获得授权,一般情况下还需要支付费用。而开源软件是由其作者将源代码公开在网络上,任何人都可以依据开源协议的要求使用相应的源代码。开源软件仍然属于作品,受到著作权的保护,开源软件的作者仍然对其公开的源代码享有著作权。需要明确的是,没有任何前提地公开源代码,并不意味着任何人都可以随意使用。相反,根据各国著作权法的一般规定,著作权人对源代码享有权利,任何人不得未经同意复制、使用、传播其作品。因此,如果作者希望更多的人能够来使用、修改、完善自己发布的代码,其可以通过选择相应的开源协议,通过建立作者与使用者之间的授权许可关系,免除使用者的侵权责任。

(二)与开源软件有关的机构

既然开源协议对使用者的行为提出了相应的要求,那么又由谁来保证使用者实际遵循了这些要求呢?1985年,理查德·马修·斯托曼(Richard Matthew Stallman,RMS)发起成立了自由软件基金会(Free Software Foundation,FSF),它是一个致力于促进计算机用户自由的非营利性组织。最初成立该组织的目的是促进自由软件的开发,目前该协会自身就拥有GNU操作系统的版权。除此之外,通过协议签署,自由软件基金会已经拥有大多数GNU软件和其他一些自由软件的版权,以便自由软件基金会可以通过诉讼方式约束使用者履行开源协议项下的义务。

早在2008年,思科公司(Cisco)曾因为其销售的无线路由器Linksys WRT54G的固件中使用了GNU/Linux系统但未向用户发布所有的源代码而遭到自由软件基金会的起诉。在此之前的几年中,自由软件基金会一直尝试与思科公司沟通希望说服其主动发布产品源代码,但是并没有得到有效回复。在诉讼过程中,双方最终达成和解,思科公司将任命一名免费软件总监,负责使Linksys品牌产品符合GPL授权方式,并向自由软件基金会汇报相关情况。思科公司还将告知现有Linksys客户他们的权利,并在网站上发布产品源代码,将源代码反馈给自由软件基金会。

除了拥有开源软件版权的机构之外,开源软件的作者自身也可以依据开源协议的内容进行维权。社区维权被认为是更理想的维权方式,不过在开源社区中,大多数人认为更主要的努力方向是促使使用人合规,而不是惩罚。[12]

(三)开源协议的主要类型

1.开源协议的主要内容

开源协议是软件开源时使用了许可证,其主要作用是规定了许可内容,以便使用人能够自由地使用作者发布的源代码,而不必担心侵犯他人版权的问题。一般的软件许可协议中会规定许可使用的期间、地域范围,权利类型,许可的具体权利,如复制、修改、传播、收费等权利。某些开源协议中还会对与代码有关的专利许可进行约定。

2.常见的开源协议

目前,比较常用的开源协议有GNU通用公共许可证(GNU General Public License,GNU GPL)、Apache许可证2.0(Apache License version 2.0)、BSD许可证(BSD licenses)、宽通用公共许可证(Lesser General Public License,LGPL)、MIT许可证(MIT license)、Mozilla公共许可证1.1版本(Mozilla Public License version 1.1,MPL-1.1)和通用公共许可证1.0版本(Common Public License 1.0,CPL-1.0)等,已有的开源协议达80多种。以下介绍几种常见的开源协议(表1-1)。

表1-1 常见的开源协议

续表

(四)开源软件对人工智能技术发展的影响

人工智能技术的发展离不开基础研究的深入,这一技术的发展非常迅速,科技巨头们都在着眼于构建具有活力的开源社区,以便拓展自身的开源生态圈。例如,2015年,谷歌推出了其开源框架解决方案TensorFlow,它是一个用于机器智能的开源软件库,吸引了不同的企业到这个平台训练它们的模型,这个系统的通用性使其也可广泛应用于其他计算领域。Facebook也推出了Caffe2框架,旨在让微软和亚马逊等主要市场参与者和社交网络的PyTorch框架一起使用这个平台。[13]开源平台的发展确实让企业获得了更多的创新力量,它们推出的深度学习开源平台在全球人工智能领域占有很大的份额。2021年7月8日,中国科学院院士梅宏在2021世界人工智能大会上提出,人工智能的快速发展离不开代码开源和数据开放,高质量的开放数据促进了深度学习算法突飞猛进,深度学习框架极大地提升了算法开发的效率,两者相辅相成。[14]

在大数据产品领域中,基本上所有的数据库产品都绕不开使用MariaDB 、PostgreSQL和MongoDB等开源数据库的核心代码。著名手机系统——安卓系统也采用了Linux内核项目,而该项目本身也是开源软件。开源软件的运用使得其他使用者无须从零开始开发一个全新的系统,只需要在已有的开源项目的基础上进行修改和定制即可,最重要的是,开源软件通常是免费的,这在很大程度上刺激了行业创新的积极性。

我国的人工智能开源项目正处于起步阶段,2018年中国人工智能开源软件发展联盟发布的《中国人工智能开源软件发展白皮书(2018)》中指出,人工智能开源软件是驱动人工智能技术创新和应用的重要支撑力量。[15]2021年《中华人民共和国国民经济和社会发展第十四个五年规划和2035年远景目标纲要》中也指出,“支持数字技术开源社区等创新联合体发展,完善开源知识产权和法律体系,鼓励企业开放软件源代码、硬件设计和应用服务”。目前,我国已经打造了OpenI启智平台、之江天枢人工智能开源平台等项目,为人工智能行业的发展提供新动力。

四、人工智能企业的开源合规风险

人工智能企业在引入、使用、修改、分发开源技术时,可能会触发开源许可证违约风险、开源许可证合规风险、专利侵权风险、商标侵权风险、数据安全风险、出口管制风险和开源技术应用过程中的知识产权风险等。以下围绕开源许可证合规风险、开源供应链管理风险、开源软件使用合规风险和开源技术应用过程中的知识产权风险展开讨论。

(一)开源许可证合规风险

新思科技(Synopsys)发布的《2022开源安全和风险分析报告》显示,2021年审计的代码库中有53%的开源代码存在许可证冲突风险,17%的开源代码存在许可证兼容性问题。[16]

人工智能企业在自定义许可证时,应注意规则清晰。例如,JSON许可证实质上是宽松型MIT许可证,其添加了“该款软件严禁用于恶意用途,仅限于善意用途”的注释。许多Apache软件基金会的项目都因为许可证定义含糊不清而删除了使用JSON许可证的代码。

(二)开源供应链管理风险

虽然引入开源软件能够提高研发效率,缩短产品上市时间,但由于在开源软件中,贡献者往往人数众多,互不相识且散布于全球各地,导致留下了许多风险隐患。2022年3月发生的faker.js与colors.js开源库遭到作者马拉克(Marak)恶意破坏的事件就是典型的例子。马拉克通过向两个包提交恶意代码进行供应链投毒,并发布到GitHub和npm包管理器中,之后又将项目仓库所有代码清空,完全停止维护,从而导致依赖两个库的数千个项目无法运行。

(三)开源软件使用合规风险

根据开源安全扫描平台Snyk和Linux基金会的调查结果,只有49%的组织制定了开源软件开发或使用的风险管控策略。企业未建立完整的开源软件使用管理机制,导致开发人员对开源软件基本处于“只用不说”的状态,企业也无法了解其产品或服务中是否包含了开源软件,[17]使得开源合规风险大大提升。

另外,人工智能训练所需要的数据许可证并没有国际组织对其进行标准化,这意味着对于使用数据的企业来说,暗藏诸多风险。此外,开源技术中的安全漏洞也会带来数据泄露风险。

1.开源协议的法律风险

在开源协议的背景下,选择适合企业情况的许可证至关重要,这决定了软件使用者的自由程度。如果选择得当,企业可以在享受开源社区便利的同时提高自身产品的适应性。但是,如果选择不当,则有可能为衍生产品的使用埋下隐患。

(1)GPL中的强制开源

GPL具有高度的“传染性”,其允许第三方对开源的代码进行免费使用、修改,但是不允许将修改后的代码作为闭源的商业软件发布和销售。著名的Linux内核开源项目就是使用的GPL协议,由于使用Linux内核开源项目的上层服务不可避免地会涉及调用Linux内核的文件,如果将该行为视为创作了衍生产品,那么将导致上层服务的源代码被受GPL协议控制的Linux内核开源项目所“传染”,从而需要接受GPL协议。这就形成了一个以Linux内核开源项目为核心的传染源,任何基于Linux开发的内核驱动到中间服务到上层应用都受到GPL协议的控制,在符合发布软件的条件下需要向大众开放源代码。不过Linux内核的作者Linus Torvalds以及内核开发人员多次澄清普通系统调用为非GPL的作用范围,也就是允许Linux用户空间的程序使用其他许可证。

2018年,软件自由保护协会(Software Freedom Conservancy,SFC)罕见地在其博客对某知名车企的GPL合规问题的细节进行了披露。软件自由保护协会指出,其从2013年6月以来就收到多起有关S车型的GPL违规报告,该车型搭载的车载系统中含有BusyBox和Linux项目,但是该公司却迟迟没有向用户公开该系统的源代码。软件自由保护协会就此问题一直在督促其尽快提供完整的源代码,但是在漫长的沟通过程中,该公司至今仍然没有向软件自由保护协会或者公众提供符合GPL协议要求的源代码。[18]

另一个值得注意的点是,GPL协议要求使用者在分发软件时提供源代码,这意味着如果使用者在修改代码后不以分发的方式向用户提供程序,那么就没有必要向用户提供源代码。例如,目前在Saas(Softwareas-a-Service,软件即服务)模式下,供应商将应用软件部署在自己的服务器上,用户通过互联网获得供应商提供的服务,而不需要供应商发布任何的源代码或者目标代码。在这种情况下,供应商不存在代码发布行为,因此不需要将修改后的代码予以开源。

(2)双重许可

双重许可是指版权方既把产品作为商业软件销售,又适用开源协议供公众使用。一方面,版权方可以通过商业销售获得利润;另一方面,可以利用开源社区的优势为软件更新增添活力。例如,许可人可以选择同时使用专有许可和GPL协议,GPL协议保证了被许可人如果要发布修改后的产品,其必须一并提供产品的源代码。当然许可人也可以选择更为宽松的许可证,这样可以利用开源社区强大的研发力量更新自己的产品,将衍生代码合并到自己的产品中。MySQL数据库管理系统使用的就是双重许可的模式,一方面以专有许可的模式满足用户的使用需求,另一方面以GPL许可证的优势来获得更新的软件。[19]

(3)违反开源协议后的法律风险

自由软件基金会的FTF部门与GPL维护组织(GPL-Violations.org)在2008年发布了一份《举报和修复违反许可证行为指南》,该指南主要是对常见的开源软件合规性问题进行解释。例如,任何人都可以向自由软件基金会或者GPL维护组织举报企业的违规行为,当收到举报通知之后,自由软件基金会与GPL维护组织会通过邮件或信件的方式与违规者协商,协商不成可能会采取诉讼方式达成庭外和解或者申请法院禁令。根据GPL维护组织的经验,其已在德国和美国获得了成功的案件判决。

2.专利侵权的法律风险

开源软件仅是就软件授予著作权方面的许可,在某些开源协议项下并不包含专利许可,因此如果软件包含已申请的专利,使用该开源软件就有可能存在专利侵权的风险。例如,BSD、MIT许可证就不包括专利许可,而Apache-2.0和GPL协议则包含了专利的普通授权许可,使用人在获得著作权许可的同时也不必担心存在专利侵权的风险。对于没有明示有专利授权的开源软件,在使用前应当进行相关的专利检索,如存在有效的专利,使用该开源软件则存在专利侵权的风险。

3.软件漏洞的法律风险

在使用开源软件时,一旦开源软件的代码存在安全缺陷,人工智能企业将面临严重的安全问题。据调查,针对人工智能行业,在开源软件代码安全缺陷分析中,项目主要的安全缺陷就来自API(Application Programming Interface,应用程序编程接口)误用和代码质量问题,其占所有安全问题的94%。[20]而使用开源软件因其缺陷问题受到网络攻击的后果只能由使用者自行承担,无法向开源软件的提供者进行追偿。例如,RealAI(瑞莱智慧)发布的RealSafe人工智能安全平台,通过测试得出某两大公司的人脸比对演示平台存在巨大安全漏洞。[21]目前,人脸识别技术广泛应用于金融远程开户、手机解锁、支付验证等场景,如果这一漏洞被不法分子所利用,将会对用户的人身、财产安全造成巨大影响,届时可能会产生用户向产品供应商进行索赔的情况。

(四)开源技术应用过程中的知识产权风险

1.开源技术应用过程中的著作权侵权风险

由于开源软件主要以著作权的形式进行保护,此处以开源软件为例,对其应用过程中的著作权侵权风险展开讨论。

开源软件允许用户自由使用、复制、修改、再发布,使得许多人误以为开源软件不受著作权法保护。其实不然,与闭源软件一样,开源软件同样受著作权法保护,并且,大部分开源许可证都包含保留版权声明。例如,GPL许可证在其引言中声明:“采用GNU通用公共许可协议的开发者通过两步保障你的权益:其一,申明软件的版权;其二,通过本协议使你可以合法地复制、分发和修改该软件。”[22]类似地,其他开源许可证也都有著作权声明。

从某种角度来看,开源软件由于其公开源代码的特点,使得侵权行为更容易被发现,因而更容易招致著作权侵权诉讼。

例如,在2008年美国的Jacobsen诉Katzer上诉案中,美国联邦巡回上诉法院指出,开源软件许可协议明示了授权许可源代码文件包可以复制的条件,并使用了习惯性用语提示授予复制、改编、分发的权利。如果下载使用者不能满足这些条件,则应该按照提示与版权人另行协商。如果被许可使用者超出该范围使用,就构成侵权,开源软件许可人可以以版权侵权提起诉讼。[23]

类似地,在2006年德国的Welte诉D-Link一案中,德国法兰克福地区法院认为,违反GPL开源许可协议的行为属于著作权侵权行为,GPL开源许可协议中所设定的使用条件应当认定为“解除条件”,当被许可人违反该条件时,GPL许可协议属无效,被许可人的行为便构成了侵权行为,开源软件权利人可以根据德国《著作权法》提起侵权诉讼。[24]

总体而言,开源软件应用过程中的著作权侵权风险主要有两种情形:一是违反开源许可证的规定使用开源软件的侵权情形;二是因开源软件的贡献者引入有版权瑕疵的代码而引发的侵权情形。

2.开源技术应用过程中的专利侵权风险

不同于著作权只保护表达,专利不仅可以保护硬件结构还可以保护软件逻辑和算法,显然,专利的保护范围比著作权宽泛很多,在专利有效期内,只要未经许可使用了专利技术,即使是独立开发也会被视为是侵犯专利权的行为。自由软件基金会在其GNU计划书中也指出:“开放源代码软件面对的最大威胁不是著作权而是专利。”开源软件通过开源许可证可以很好地解决著作权产生的独占问题,保障软件用户的“自由”,但对软件专利却束手无策。对此,GPLv3许可证只能无奈地规定:“如果是由于法院判决或违反专利的指控或任何其他原因,强加于你的条件(不管是法院判决、协议或是其他)和许可证的条件有冲突,他们也不能用许可证条款为你开脱。在你不能同时满足本许可证规定的义务及其他相关的义务时,作为结果,你可以根本不发布程序。例如,如果某一专利许可证不允许所有那些直接或间接从你那里接受拷贝的人在不付专利费的情况下重新发布程序,唯一能同时满足两方面要求的办法是停止发布程序。”[25]GPL许可证还规定:“如果由于专利问题使程序在某些国家的发布和使用手段受到限制,将此程序置于许可证约束下的原始著作权拥有者可以增加限制发布地区的条款,将这些国家明确排除在外,并在这些国家以外的地区发布程序。”可见,开放源代码软件对软件专利采取了回避的态度,但是这种回避无法解除软件专利对开放源代码软件的威胁。

麻省理工学院(MIT)的开源软件X Windows系统曾被美国电话电报公司(AT&T)指控侵犯了其“后援存储”技术的4555775号专利。当一个窗口的内容被另一个活动的窗口遮盖住的时候,将被遮盖窗口的内容存储于屏幕之外的存储器中,一旦当前活动窗口消失,被遮盖的窗口可迅速恢复,这就是“后援存储”技术。事实上,MIT早在Lisp机器系统上就使用了“后援存储”技术,这甚至比AT&T利用这项技术的时间还早。但是,由于MIT的软件人员认为这项技术太普通了,而没有公开发表。AT&T的专利申请于1985年被美国专利商标局(United States Patent and Trademark Office,USPTO)批准,尽管MIT使用在先,但因没有公开发表而被禁止继续使用该技术。[26]

即便是著名的开源软件Linux,也有可能面临专利侵权诉讼。在2004年8月4日,德国慕尼黑政府宣布,因担心软件专利侵害的赔偿责任,将暂时冻结14000台Linux台式机的引进计划。[27]

当然,不限于开源软件,开源硬件技术也同样有可能面临专利侵权风险。面对人工智能领域日益增长的专利申请,建议可以采取以下措施减少专利侵权风险:(1)技术开发过程中进行自由实施(FTO)分析,做好专利预警;(2)先将开源技术申请专利再在开源许可证的条件下发布开源技术;(3)及早发布软件和算法逻辑、思路,对他人而言构成在先技术,避免他人申请专利;(4)在开源许可证中引入专利报复条款等。

3.开源技术应用过程中的商标侵权风险

大部分开源许可证都明示不给予用户商标授权。例如,Mozilla公共许可证(Mozilla Public License)规定,不授予任何贡献者商标、服务标记或徽记许可(除可能需要符合有关声明要求的情况下)。因此,在开源技术放弃版权上的财产权,又未进行专利保护的情况下,可以通过商标保护维护开源技术的权益,在不与“自由”属性冲突的前提下,主张商标权仍然不妨碍扩大开源技术的用户群体,同时还能提高开源技术的知名度。

在2002年MySQL AB诉Progress Software Corp.,NuSphere Corp.一案中,MySQL AB公司是开源数据库MySQL的著作权人,同时也是瑞典、美国等国家“MySQL”注册商标的所有人。2000年6月,被告与原告签订了分销MySQL并提供相应技术支持的临时协议。2000年8月双方终止了该协议。后来,被告将mysql.org注册为域名,发行了软件“NuSphere MySQL Advantage”,其中含有基于GPL许可证发布的MySQL和被告自行开发的Gemini。因此,MySQL AB诉Progress与NuSphere商标侵权。2002年2月美国麻省波士顿法院对被告发布初步禁令,禁止被告改进以及销售任何形式的包含MySQL注册商标的商品和服务、使用与MySQL商标有关的域名以及运作采用MySQL注册商标的网站。[28]

对开源技术进行合理的商标保护可以很好地跟踪和保护开源技术的发展。例如,只有通过开放源代码促进会认证的许可证进行发布的软件才能使用“OSI Certified”商标,通过在每一份开源代码中标注“OSI Certified”商标,即可轻易地识别出开源代码。经过开放源代码促进会认证的开源许可证包括:GPL许可证、BSD许可证[29]、Apache许可证等。[30]因此,商标保护是开源软件收取费用的合理渠道,既不会被指责有技术垄断之嫌,又能获得相对永久的保护。[31]

随着开源技术在人工智能领域的应用范围越来越广,由于开源技术的“自由”属性与知识产权“独占性”天然地存在冲突,使得开源技术在应用过程中的知识产权风险也日益凸显。开源技术的种类、开源许可证的类型、开源技术的使用方式都会影响知识产权风险的大小。企业要有效管控开源技术的知识产权风险,需要从多个方面展开系统性的长期工作,包括增强开源知识产权风险防范意识,做好开源技术的知识产权风险分析,加强风险防范工作协同,建立开源技术的知识产权管理规则以及全流程管理规则,跟踪开源司法案例,做好开源相关法律研究等。

五、人工智能企业的开源合规管理建议

开源合规工作的目的是通过建立一整套制度和流程指导开源技术的引入、使用、修改和分发等工作,保证企业含有开源技术的产品或服务安全可控,使用开源技术符合相关法律和许可要求,能够保障开源技术作者或权利人的合法权益。

(一)开源软件管理审核

为避免在使用开源软件过程中发生的风险,建议企业在内部管理机制上增设开源项目管理流程或者部门,以便对开源软件的使用安全性、合法性进行评估。随着国际化程度的不断加深,中国产品越来越多地出口到国外,开源软件风险问题也日益突出。企业可能会收到用户个人或者软件自由保护协会的通知,要求其履行开源协议的义务。虽然目前在国内环境下,开源协议的履行尚未得到司法确认,但是已经有了承认开源协议效力的判例。企业应当尽早了解风险,做好风险预防,在面临相关风险前培养自身抵抗风险的能力。

(二)技术进出口合规审核

除了开源软件的进出口限制之外,企业还应当依据购买软件时技术出口方国家的技术进出口措施进行合规审核。在目前复杂多变的国际政治经济形势下,大国之间的博弈也常常体现在人工智能领域。例如,美国曾发布相关措施限制人工智能软件的出口,限制出口的软件包括应用于智能化传感器、无人机、卫星和其他自动化设备的目标识别软件(无论民用或军用)等。企业一旦落入相应权利范围或者违反相关规范,可能导致被制裁的后果,对未来在该国从事商业活动造成严重影响。

(三)专利前置审核

由于开源软件的许可证不一定明示了专利许可,因此,在使用他人的开源代码前,应当根据使用地域对当地的专利注册情况进行检索。如果权利人已经在先注册专利,那么该开源代码的使用方式就受到了限制,企业应当根据自身需求,判断是否能够继续利用该开源代码以及如何利用。

(四)开源方式审核

选择合适的许可方式是保证可持续性发展的前提,企业可以以专有许可、开源许可证或者双重许可的方式选择是否对公众发布产品的源代码,以及后续以何种方式更新。如果一项成果是基于已有作品修改完成的,那么它最好符合原作品许可协议的要求,因为协议中有可能要求它遵从相同的许可证发布。对于不值得更新的小程序来说,使用GPL是不适宜的,因为它无法发挥自身传递性的优势,刺激后人对开源的软件进行补充、修改或者更新。

(五)软件尽职调查中的开源风险审核

如前所述,人工智能技术离不开开源软件的支持,在并购交易中,如涉及人工智能企业或者其他软件研发企业,对其软件进行开源风险核查是十分必要的。通过对软件使用的开源软件、开源协议的调查可以识别相应的商业软件本身是否存在开源风险、安全漏洞或者质量问题,使用方是否已经履行了许可协议相关的义务,从而为交易双方的安全交易提供法律保障。

(六)建立开源合规委员会

随着科技公司对开源的认识和理解不断加深,不少公司开始重视开源合规风险管理问题,例如,腾讯、华为、百度、滴滴等公司均成立开源管理办公室(Open Source Program Office,OSPO)。

为了加强对开源技术应用的组织管理和统筹协调,人工智能企业可成立由科技、法务、采购等部门组成的开源合规委员会或开源管理办公室,将开源技术应用纳入企业发展战略,明确开源技术应用目标,制定开源技术应用工作方案并组织实施,同时设立首席开源合规官,明确各负责人员的职责。法务人员的职责可包括制定开源合规相关的制度规则和审核清单,审查和批准开源代码的使用、修改和分发,提供与开源许可证相关的法律指导,编撰开源许可证摘要手册,方便开源技术使用人员阅读和理解主流开源许可证下的权利、义务、限制、专利影响等,组织开源合规方面的法律知识培训,审核开源许可证的遵守情况等。技术人员的职责可包括根据开源合规相关的制度规则调整软件开发过程,从研发角度给出制度规则的完善建议,对代码、架构、设计进行审查等。

(七)建立健全开源技术应用管理制度体系

人工智能企业应建立和完善开源技术应用管理制度体系,规范开源技术的引入审批、技术评估、合规使用、漏洞检测、更新维护、应急处置、停用退出等行为。

在引入审批环节,一方面可通过开源组件扫描工具识别产品或服务中使用的开源技术,包括从代码托管平台、技术社区、开源机构官方网站等渠道获取,或通过合作研发、商业采购等方式引入开源代码、开源组件等;另一方面可加强开源技术供应链管理,通过合同或协议条款,明确开源技术提供商的义务和责任,对供应商及其交付物进行尽职调查,要求开源技术供应商必须披露其交付物中保护的开源技术,提供其对开源技术进行技术评估、合规审查等书面证明文件,保障所使用的开源技术产品和服务质量。在进行初步审查和识别后,出具详细的开源技术材料清单,明确所包含的所有开源软件名称、来源、许可证、冲突等;同时,还需要注意审查开源技术的版权、专利、商标、声明和开源许可证的兼容性等问题。必要时,可引入第三方机构协助完成合规审查工作。

在技术评估环节,根据开源技术材料清单,核查开源技术的使用、修改、分发情况,以及许可证的具体规则,对开源技术进行全方面评估,并明确使用该开源技术的产品或服务的预期用途,从而有针对性地选择和使用开源技术,并建立开源技术选型评估模型,提升开源技术的应用质量与效率。

在合规使用环节,遵循开源许可协议和相关法律法规要求,明确开源技术的使用范围和使用的权利与义务,根据许可证的规则做好版权、修改等声明,并要求相关部门在产品或服务中使用时符合开源软件的许可证要求,保障开源技术作者或权利人的合法权益。同时,加强开源技术研究储备,掌握开源技术核心,建立开源技术使用问题发现、反馈、解决等闭环机制,形成自主知识产权,推动开源技术不断迭代升级,从而提升企业自身的技术创新能力。

在维护及应急处置环节,企业应建立开源技术应用台账,及时掌握开源许可证变更、漏洞、闭源、停服等变化情况,实行常态化管理,制定针对开源技术潜在漏洞、后门及闭源、停服等突发情况的应急处置预案,并定期开展演练,保证应急处置预案的有效性。

(八)积极参与开源生态建设和标准化建设

人工智能企业应以技术参与开源生态建设,加入合法合规的开源社区、开源基金会等开源社会组织,参与开源技术规划设计、研发决策、社区运营等活动,依法合规分享开源技术应用经验,共享开源技术研究成果。通过主动开源、贡献代码解决行业共性问题,提升开源技术整体应用水平,推进开源技术迭代升级,促进开源技术成果转化,实现优势互补、互利共赢、共同发展。

2021年12月27日,国务院知识产权战略实施工作部际联席会议办公室在关于印发《知识产权强国建设纲要和“十四五”规划实施年度推进计划》的通知中,明确指出中央宣传部、知识产权局按职责分工负责研究制定大数据、人工智能、区块链、基因技术等新领域、新业态知识产权保护规则,工业和信息化部负责研究制定信息技术开源知识产权合规标准、开源社区代码贡献规则标准等,开展行业开源知识产权风险及合规问题研究,加强行业开源知识产权合规评估与培训。

人工智能的发展已经成为全球势不可挡的新趋势,各国都争先在该领域确立自己的领先地位。人工智能产业也涉及各种先进技术,其中,更是离不开计算机技术的突破。但是,技术的发展仍然需要在合乎法律规范的范畴内进行,只有技术与合规并驾齐驱,才能使社会在享受人工智能技术带来便利的同时,保障各方利益均能得到合法的保护。在国家明确规划强化人工智能领域知识产权保护和开源技术合规建设的大背景下,人工智能企业应从制度、流程、工具、团队等多个维度开展合规体系的建设,提升开源治理能力并防范开源合规风险。

开源作为一种无边界的协作模式,秉持开放共赢的理念,正在推动人工智能、云计算、操作系统、数据库等领域的产业发展。开源不仅有利于企业紧跟技术发展趋势,提高研发效率,也有利于企业扩大影响力。例如,Linux操作系统采用开源去中心化的开发方式,通过汇聚众多开发者进行快速且持续迭代,加速其形成产业生态,使得其在全球智能手机操作系统市场占有率超过85%。[32]新思科技《2022开源安全和风险分析报告》显示,新思科技网络安全研究中心(Cybersecurity Research Center,CyRC)团队共审查了17个行业中超过2400个商业代码库,在报告涵盖的17个行业中,计算机硬件和半导体、网络安全、能源与清洁科技、物联网行业的代码库中100%包含开源代码。[33]

人工智能从诞生至今已有60多年的发展历史,在经历过2次浪潮后,以深度学习技术的推出为标志,迎来了第三次浪潮,同时也涌现了TensorFlow、PyTorch、飞桨(PaddlePaddle)、Caffee等开源人工智能框架,加速了人工智能的应用落地。随着开源生态的逐渐成熟,越来越多的人工智能企业选择拥抱开源,与此同时,诸多开源的合规风险也在逐渐涌现。