为什么要关注机器学习开源软件(MLOSS)?
发布时间:2023-06-02 13:52:11
机器学习开源软件举足轻重,但未获重视
MLOSS举足轻重
过去十年,只要构建过ML模型的人都知道MLOSS至关重要,无论是Deepmind的研发工程师,还是印度的高中生都无一例外会使用开源软件来构建模型。我们采访了24名ML从业者,他们都给出了相同的答案:MLOSS工具在模型构建中的地位举足轻重。
从业者都在免费使用MLOSS工具,也就意味着这类工具会对人工智能发展产生巨大影响。然而,探索MLOSS对AI发展影响的研究人员却寥寥无几。
MLOSS未获重视
迄今为止,研究者就影响人工智能发展的因素展开了多次讨论,其焦点都集中于算力,部分研究者将算法和数据也列为了影响因素之一。例如,艾伦·达福(Allan Dafoe)认为影响人工智能发展的关键因素是计算能力(算力)、人才、数据、洞察力及资金。[1] 黄(Hwang) (2018)探究了硬件供应链对机器学习发展的影响。罗森菲尔德(Rosenfeld) (2019)和海斯特内斯(hesistest)(2017)研究了数据集大小与人工智能模型精度的关系。
越来越多的文献都提到了数据集大小和人工智能模型精度,旨在明确如何建立人工智能中输入和预测误差之间的关系模型。然而,据我们所知,目前还未有关于MLOSS如何影响人工智能发展的深入研究。
目前,我们的关注点是数据、算力等因素如何改变人工智能的发展方向,不过,同时也应聚焦于MLOSS在人工智能发展中的角色。
MLOSS及AI生产函数
我们在早期研究中存在这样的疑惑:数据、算力及MLOSS这些AI生产的影响因素相互之间有何联系,而阐明这些因素之间的联系正是理解AI系统开发默认轨迹(default trajectory)的关键。
柯布-道格拉斯生产函数(Cobb-Douglas production function)是经济学中常用的界定方式。该函数用于资本和原材料等变量的建模,通过函数参数化以表示投入与产出的关系。
艾伦·达福将“AI生产函数”应用于人工智能治理,并提出构成该生产函数的关键在于算力、人才、数据、投资、时间以及先前进展和成果等指标[1]。达福就“人工智能进展”研究进行了探讨,此外,在类似研究中也有相关探讨,以解除人工智能特定范式的思维限制。
实际上,这就相当于“深度学习”和“人工智能”。而我们可以选择不同范式,不过认识到这些范式功能的多样性也十分重要。例如,概率程序更容易吸收现存的显性知识,同时能减少对大数据集可用性的依赖。
虽然生产函数可以明确区分出影响深度学习发展的因子,但也存在局限性。特别是当生产函数被认为是自变量的乘积时,不会考虑生产因子之间的共同依赖关系,而且可能还会隐藏每个因子的上下文信息。
还有另一种方法可以阐明影响AI生产的因子,即使用有序的功能依赖图,亦称沃德利地图(Wardley map),来解释因子之间的共享依赖关系。例如:中间模型表示依赖于算力基础设施和MLOSS框架。
沃德利地图为AI生产函数提供了最佳替代方案
沃德利地图应用广泛。譬如,可在无手机的情况下用于求生,也可用于电车的路况预测。此外,还有本关于沃德利地图理论的书籍。为探寻MLOSS在AI生态系统中发挥的作用,我们在下文提供了简单示例。
构建沃德利地图的三大主要步骤:描述用例、为处理用例所需的技术功能下定义以及对该地图相应功能进行排序。
以下是“构建深度学习模型”的用例,也是重中之重。我们将重点关注框架、预训练模型、数据及硬件的主要功能,且各功能之间相互具有依赖性。如,框架编译软件(Glow编译器)受到ML框架(PyTorch)的影响,而框架编译软件依赖于中间表示(ONNX),此外,中间表示又会受到硬件(NVIDIA GPU)的影响。
现阶段,我们旨在阐明与ML框架(MLOSS为典型示例)相关的某些关键功能,而非对各方面都泛泛而谈。
图1. 以沃德利地图构建深度学习模型
通过沃德利地图,我们能更清晰阐述有关塑造深度学习研究的能力之间的关系。基于此,推断出哪些功能将成为未来焦点。我们会在最后一节详细讨论“MLOSS之未来”。
稍后,我们将通过沃德利地图来探讨人工智能的未来。
MLOSS通过构建标准、推行实验及创建社区来促进人工智能研究的发展
我们对23名参与者进行了定性访谈,进而确定了MLOSS影响人工智能生态系统的三大主要因素。
构建标准
标准化是指我们普遍认可的单一技术或技能规范。参与者从研制标准化模型类型、协调框架、为开发人员提供一致的用户体验这三个方面谈论了构建标准带来的的影响。
对大型神经网络相关从业者而言,模型类型标准化做出的贡献最为突出。十年前,拥有百万参数的模型是一项浩瀚工程。然而现如今,研究人员只需连接互联网以及使用合适的硬件,就能免费下载一个超1700多亿参数的模型或用这一模型进行在线推理。因此,如今大多数与机器学习相关的工作都会涉及大型神经网络,这与MLOSS工具的普及以及硬件和性能工程的发展密不可分。
我们见证了深度学习框架的高度标准化:虽然2016年MXNet、Theano、TensorFlow、Caffe2、Torch这几种深度学习框架占据很大的市场份额,但是西方相关从业者已普遍将PyTorch、JAX及TensorFlow视为深度学习的三大主流框架。
该访谈中,所有参与者至少使用过这三大主流框架中的一种。据Paperswithcode显示 ,截至2022年6月,采用PyTorch的相关论文占公开发表论文的62%、JAX占7%,TensorFlow占1%。虽然DeepMind公开支持JAX这类框架的使用,但是,我们认为Paperswithcode关于JAX的使用数据无法证明JAX越来越受欢迎。
此外,我们还可以看到框架内部用户体验层面的融合。部分参与者指出,TensorFlow以往默认的基于graph的机制无法给予人们直观感受,对初学者而言更不友好。他们解释道:因为PyTorch具有更为直观的命令式模型规范,所以才采用PyTorch。
值得注意的是,由于受到PyTorch带来的冲击,TensorFlow 2.0也采用了PyTorch的接口,使其用户体验与PyTorch趋于一致。
推行实验
推行实验不仅能迅速落实我们的想法,还能提供新的思考方式。PyTorch Lightning开发了一个权重矩阵汇总模块,从而节省了研究人员调试模型的时间。而Torch的命令式编程也为研究人员提供了新思路。这也意味着将基于graph的模型规范应用于Tree-LSTMs这类新颖架构成为现实,这在以前是无法想象的。
创建社区
与开源软件(OSS)生态系统类似,MLOSS的重要之处在于它为社区技术贡献者及用户提供了交互机会。创建这类社区的好处诸多,例如用户能为社区贡献力量、提供反馈、输出技术内容,并为MLOSS志愿者提供就业机会。
开源软件论坛为交流提供了新平台,让用户成为社区贡献者是很好的实例。社区中也发生了一些趣事,一些对社区作出了巨大贡献的用户随后被社区项目赞助者看中,从而获得了工作机会。虽未经系统统计,但总的来说加入MLOSS论坛及社区就有可能获得一定的就业机会。
通过在线社区,人们可采取多种方式与项目组织方进行交流。例如,PyTorch的联合创始人Sousmith Chintala曾公开谈论PyTorch社区对早期工具开发所带来的影响。要想开源软件研发走得更远、保证项目的成功,关键在于能否获得大众认可;而要想对项目作出一个不被支持的修改,可谓难上加难,即使失败也不足为奇。为了让这一观点更具说服力,不妨邀读者来一探究竟:Facebook更改React项目的开源许可协议为何会失败。
经济激励措施、社会技术因素和意识形态共同决定MLOSS的发展
激励措施
图2. 有关商业激励措施如何影响MLOSS的建议