开源技术在人工智能产业中的应用和知识产权风险
开源技术在人工智能产业中的应用和知识产权风险
引言
开源的相关概念
中国电子标准院给出的标准定义是“开源是一种在软硬件开发、数据与信息共享中广泛采用的开放式协作模式,协作的产出物应该符合开源许可证条款的要求。”由此看出,开源既不单指开源软件,也不是一种商业模式,而是一种开放式协作模式。协作的产出物可以是软件、小程序、数据库、文档等,每一种产出物都可以根据其特点选择不同的开源许可证。例如,软件可以选择适用GPL协议用以保护用户的自由度;小程序可以选择适用Apache协议,通过其专利报复条款以避免用户就作品或作品中所涉及的贡献起诉专利侵权;对于开发者已经使用现有的以非自由或不严格许可证发布的数据库,可以选择适用 GNU宽通用公共许可协议(LGPL);教程、参考手册等文档可以选择适用GNU自由文档许可证(GFDL)或知识共享许可证(Creative Commons license,简称CC协议)[1]。
开源技术在人工智能产业中的应用
1. 人工智能产业中的开源软件
根据开源促进会OSI(Open Source Initiative)官网的信息,我们可以看到开源软件的定义最初源自 Debian 自由软件指南 (DFSG),之后Bruce Perens 从 Debian 自由软件指导方针中删除特别提到 Debian 的部分,作为开源软件的定义。开源软件不仅仅意味着访问源代码。开源软件的分发条款必须符合以下十项标准(OSD标准):(1)可自由地再发布;(2)源代码公开;(3)允许派生作品;(4)作者源代码的完整性;(5)不能歧视任何个人和团队;(6)不能歧视任何领域;(7)许可协议的发布;(8)许可协议不能针对某个产品;(9)许可协议不能约束其他软件;(10)许可协议必须独立于技术[2]。
在人工智能浪潮再次掀起时,越来越多的人工智能企业选择了软件开源。人工智能产业链通常划分为基础层、技术层和应用层三个层次。技术层包含了计算机视觉、自然语言识别、机器学习和深度学习等关键技术。目前,人工智能产业中的开源软件技术主要集中在机器学习,尤其是深度学习领域,并且已产生了一批在业内具有深远影响力的开源机器学习框架,例如,谷歌于2015年11月9日在Apache 2.0开源许可证下发布了TensorFlow。TensorFlow提供一个使用数据流图的数值计算库,可在单/多颗CPU或GPU系统甚至移动设备上运行;[3] Facebook推出了Caffe2框架;百度推出了深度学习平台PaddlePaddle。
2. 人工智能产业中的开源硬件
开源软件的出现大大缩短了软件行业的开发周期,提高了软件开发效率。而在硬件领域,特别是芯片设计,每个模块的设计和验证都会关系到最终流片的成功与否,如果使用的开源组件成熟度不高,导致芯片流片后出现BUG,会大大增加芯片的设计成本和周期,因而使得目前很多开源组件难以在芯片领域实施。但是如果开源组件能够保证足够的品质,将大大缩短芯片的设计周期,降低研发成本。因此,近年来,开源人工智能芯片越来越受到关注。目前,典型的开源芯片项目包括RISC-V和NVDLA。
2010年,美国加州伯克利分校(UCB)推出基于精简指令集计算(RISC)原理建立的开源处理器指令集RISC-V,成为目前最成功的开源芯片项目,可以免费使用并允许任何人设计、制造和销售RISC-V芯片和软件。基于RISC-V开源指令集可以设计服务器计算芯片、家用电器计算芯片、工控计算芯片和比指头小的传感器计算芯片。预期在未来的异构计算和IoT领域都会得到广泛应用[4]。
NVLDA是NVIDIA推出的基于Xavier SoC的开源深度学习推理加速器,面向终端SoC推理场景,其模块化结构适合在IoT设备上进行扩展。NVDLA可以让SoC厂商免费使用并根据需求修改框架,但需要注意的是,虽然使用NVDLA免费,但是修改时不可避免地要使用到NVIDIA生态下的其他工具,比如用TensorRT优化深度学习模型,从而帮助推动NVLDA生态的构建等[5]。
3. 人工智能产业中的开源数据
人工智能技术广泛应用于手机、汽车、家电、安防、医疗、教育、金融等领域,人工智能技术在这些应用领域的突破依赖于海量的训练数据,伴随着应用场景的快速发展,数据开源会成为一种新的趋势。
一方面,目前,在人工智能领域存在若干标准数据集,如机器视觉领域的MNIST、CIFAR、ImageNet,自然语言领域的WikiText、SQuAD、Billion Words、Stanford Sentiment Treebank,语音识别领域的2000 HUB5 English、CHIME,推荐系统领域的Netflix Challenge、Million Song Dataset等。这些数据集在推动人工智能算法优化、工程开发等方面起到了重要作用。如果各个公司都独自开发不同数据集,数据集的定义、格式、接口等差异很大,会导致开发出来的人工智能程序不能兼容和互操作,影响人工智能平台的集成式性能。另一方面,人工智能技术所使用的海量训练数据需要提前标注,高质量的标注数据会影响到人工智能公司的竞争力。数据标注有许多类型,如分类、画框、注释、标记等,不同类型的标注可以根据行业、需求、目标、语言等要素进一步细分,导致不同机构标注的同类数据,甚至相同数据,标注差异都很明显,不利于后继的分析和处理。[6]基于上述两方面的原因,如果在保证企业商业秘密和数据安全的前提下,推动数据开源,不仅可以减少重复数据采集、数据标注和数据处理工作,提高工作效率,降低企业开发成本,还可以促进相同应用领域的企业之间的合作,共同推动人工智能产业的发展。
根据DB-Engines数据显示,截至2020年9月全球开源数据库182个,已超过商业数据库,比较知名的包括Apache软件基金会(ASF)的Hadoop、Spark,国内也有华为的Apache CarbonData等。此外,还有一些保护开源数据的法律框架,例如,Linux Foundation发起了社区数据许可协议(COMMUNITY DATA LICENSE AGREEMENT,CDLA),用于在个人和组织之间公开、共享和使用数据。
开源技术应用过程中的知识产权风险
1. 开源技术应用过程中的著作权侵权风险
由于开源软件主要以著作权形式进行保护,此处以开源软件为例,对其应用过程中的著作权侵权风险展开讨论。
开源软件允许用户自由使用、复制、修改、再发布,使得许多人误以为开源软件不受著作权法保护。其实不然,与闭源软件一样,开源软件同样受著作权法保护,并且,大部分开源许可证都包含保留版权声明。例如,GPL许可证在其引言中声明:“采用GNU通用公共许可协议的开发者通过两步保障你的权益:其一,申明软件的版权;其二,通过本协议使你可以合法地复制、分发和修改该软件。”[7]类似地,其他开源许可证也都有著作权声明。
从某种角度上来看,开源软件由于其公开源代码的特点,使得侵权行为更容易被发现,因而更容易招致著作权侵权诉讼。
在2008年美国的Jacobsen诉Katzer上诉案中,美国联邦巡回上诉法院指出,开源软件许可协议明示了授权许可源代码文件包可以复制的条件,并使用了习惯性用语提示授予复制、改编、分发的权利。如果下载使用者不能满足这些条件,则应该按照提示与版权人另行协商。否则,如果被许可使用者超出该范围使用,就构成侵权,开源软件许可人可以以版权侵权提起诉讼。
类似地,在2006年德国的Welte诉D-Link一案中,德国法兰克福地区法院认为,违反GPL开源许可协议的行为属于著作权侵权行为,GPL开源许可协议中所设定的使用条件应当认定为“解除条件”,当被许可人违反该条件时,GPL许可协议属无效,被许可人的行为便构成了侵权行为,开源软件权利人可以根据德国《著作权法》提起侵权诉讼。
总体来说,开源软件应用过程中的著作权侵权风险主要有两种情形:一是违反开源许可证的规定使用开源软件的侵权情形;二是因开源软件的贡献者引入有版权瑕疵的代码而引发的侵权情形。
2. 开源技术应用过程中的专利侵权风险
不同于著作权只保护表达,专利不仅可以保护硬件结构还可以保护软件逻辑和算法,显然,专利的保护范围比著作权宽泛很多,在专利有效期内,只要未经许可使用了专利技术,即使独立开发也会被视为是侵犯专利权的行为。正如自由软件基金会在其GNU计划书中也指出:“开放源代码软件面对的最大威胁不是著作权而是专利。”开源软件通过开源许可证可以很好地解决著作权产生的独占问题,保障软件用户的“自由”,但对软件专利却束手无策。对此,GPL v3许可证只能无奈地规定:“如果是由于法院判决或违反专利的指控或任何其他原因,强加于你的条件(不管是法院判决、协议或是其他)和许可证的条件有冲突,他们也不能用许可证条款为你开脱。在你不能同时满足本许可证规定的义务及其他相关的义务时,作为结果,你可以根本不发布程序。例如,如果某一专利许可证不允许所有那些直接或间接从你那里接受拷贝的人们在不付专利费的情况下重新发布程序,唯一能同时满足两方面要求的办法是停止发布程序。”[8] GPL许可证还规定:“如果由于专利问题使程序在某些国家的发布和使用手段受到限制,将此程序置于许可证约束下的原始著作权拥有者可以增加限制发布地区的条款,将这些国家明确排除在外,并在这些国家以外的地区发布程序。”可见,开放源代码软件对软件专利采取了回避的态度,但是这种回避无法解除软件专利对开放源代码软件的威胁。
MIT的开源软件X Windows系统曾被AT&T公司指控侵犯了其“后援存储”技术的4,555,775号专利。当一个窗口的内容被另一个活动的窗口遮盖住的时候,将被遮盖窗口的内容存储于屏幕之外的存储器中,一旦当前活动窗口消失,被遮盖的窗口可迅速回复,这就是“后援存储”技术。事实上,MIT早在Lisp机器系统上就使用了“后援存储”技术,这甚至比AT&T利用这项技术的时间还早。但是,由于MIT的软件人员认为这项技术太普通了,而没有公开发表。AT&T的专利申请于1985年被USPTO批准,MIT尽管使用在先,但因没有公开发表而被禁止继续使用该技术。
即便是著名的开源软件Linux,也有可能面临专利侵权诉讼。2004年8月2日,美国开放源代码风险管理(Open Source Risk Management,简称OSRM)组织在其网站上发表了题为《开放源代码风险管理的定位:减少Linux的专利风险》的文章,声称OSRM独立完成了一份对于Linux内核潜在专利侵权的评估报告。文中表示:“Linux没有被法院认定的软件专利,但对于有效性尚未被法院认定的283项专利,很有可能引发诉讼。”随后,在2004年8月4日,德国慕尼黑政府宣布,因担心软件专利侵害的赔偿责任,将暂时冻结14000台Linux台式机的引进计划。
当然,不限于开源软件,开源硬件技术也同样有可能面临专利侵权风险。面对人工智能领域日益增长的专利申请,建议可以采取以下措施减少专利侵权风险,包括:1)技术开发过程中进行FTO分析,做好专利预警;2)先将开源技术申请专利再在开源许可证的条件下发布开源技术;3)及早发布软件和算法逻辑、思路,构成他人的在先技术,避免他人申请专利;4)在开源许可证中引入专利报复条款等等。
3. 开源技术应用过程中的商标侵权风险
大部分开源许可证都明示不给予用户商标授权,例如,在MPL许可证规定:不授予任何贡献者商标、服务标记或徽记许可(除可能需要符合有关声明要求的情况下)。因此,在开源技术放弃版权上的财产权,又未进行专利保护的情况下,可以通过商标保护维护开源技术的权益,在不与“自由”属性冲突的前提下,主张商标权仍然不妨碍扩大开源技术的用户群体,同时还能提高开源技术的知名度。
在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注册商标的网站。[9]
对开源技术进行合理的商标保护可以很好地跟踪和保护开源技术的发展。例如,只有通过OSI认证的许可证进行发布的软件才能使用“OSI Certified”商标,通过在每一份开源代码标注“OSI certified”商标,即可轻易地识别出开源代码。经过OSI认证的开源许可证包括:GPL许可证、BSD许可证、Apache许可证等。[10]因此,商标保护是开源软件收取费用的合理渠道,既不会被指责有技术垄断之嫌,又能获得相对永久的保护[11]。
总结
随着开源技术在人工智能领域的应用范围越来越广,由于开源技术的“自由”属性与知识产权“独占性”天然地存在着冲突,使得开源技术在应用过程中的知识产权风险也日益凸显。开源技术的种类、开源许可证的类型、开源技术的使用方式都会影响知识产权风险的大小。企业要有效管控开源技术的知识产权风险,需要从多个方面展开系统性的长期工作,包括:增强开源知识产权风险防范意识,做好开源技术的知识产权风险分析,加强风险防范工作协同,建立开源技术的知识产权管理规则以及全流程管理规则,跟踪开源司法案例,做好开源相关法律研究等。
[注]