开源机器学习软件对AI的发展意味着什么?

作者| Max Langenkamp

OneFlow编译

翻译|徐佳渝、杨婷

为什么要注重机器学习开源软件(MLOSS)?在咱们看来,MLOSS对AI开展来说无足轻重,但未获注重。

机器学习开源软件是开源答应下发布的专为机器学习而规划的核算机软件。机器学习开源软件包含结构(如PyTorch和Pyro)、“一体化”软件包(如scikit-learn)以及模型开发东西(如TensorBoard),但不包含Jupyter Notebook这类交互式核算东西。虽然Jupyter Notebook并非专为机器学习而规划,可是相关从业者经常会用到这款东西。

1、机器学习开源软件无足轻重,但未获注重

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的发展意味着什么?

CD出产函数的表明办法

开源机器学习软件对AI的发展意味着什么?

AI出产函数的隐含办法

艾伦达福将“AI出产函数”运用于人工智能治理,并提出构成该出产函数的要害在于算力、人才、数据、出资、时间以及从前开展和效果等目标[1]。达福就“人工智能开展”研讨进行了讨论,此外,在类似研讨中也有相关讨论,以免除人工智能特定范式的思想限制。

实际上,这就相当于“深度学习”和“人工智能”。而咱们可以挑选不同范式,不过认识到这些范式功用的多样性也十分重要。例如,概率程序更简略吸收现存的显性常识,一起能削减对大数据集可用性的依靠。

虽然出产函数可以明确区分出影响深度学习开展的因子,但也存在局限性。特别是当出产函数被以为是自变量的乘积时,不会考虑出产因子之间的一起依靠联络,而且或许还会隐藏每个因子的上下文信息。

还有另一种办法可以阐明影响AI出产的因子,即运用有序的功用依靠图,亦称沃德利地图(Wardley map),来解释因子之间的同享依靠联络。例如:中心模型表明依靠于算力基础设施和MLOSS结构。

2、沃德利地图为AI出产函数供给了最佳代替计划

沃德利地图运用广泛。比如,可在无手机的状况下用于求生,也可用于电车的路况猜测。此外,还有本关于沃德利地图理论的书本。为探寻MLOSS在AI生态体系中发挥的作用,咱们在下文供给了简略示例。

构建沃德利地图的三大主要过程:描绘用例、为处理用例所需的技能功用下定义以及对该地图相应功用进行排序。

以下是“构建深度学习模型”的用例,也是重中之重。咱们将要点注重结构、预练习模型、数据及硬件的主要功用,且各功用之间彼此具有依靠性。如,结构编译软件(Glow编译器)遭到ML结构(PyTorch)的影响,而结构编译软件依靠于中心表明(ONNX),此外,中心表明又会遭到硬件(NVIDIA GPU)的影响。

现阶段,咱们旨在阐明与ML结构(MLOSS为典型示例)相关的某些要害功用,而非对各方面都泛泛而谈。

开源机器学习软件对AI的发展意味着什么?

图1. 以沃德利地图构建深度学习模型

经过沃德利地图,咱们能更明晰论述有关刻画深度学习研讨的才能之间的联络。根据此,推断出哪些功用将成为未来焦点。咱们会在终究一节具体评论“MLOSS之未来”。

稍后,咱们将经过沃德利地图来讨论人工智能的未来。

3、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项目的开源答应协议为何会失利。

4、经济鼓励措施、社会技能要素和意识形态一起决议MLOSS的开展

鼓励措施

开源机器学习软件对AI的发展意味着什么?

图2. 有关商业鼓励措施怎么影响MLOSS的主张

结合案例研讨及参与者的主张,咱们发现大公司和草创公司的商业鼓励措施各不相同。大公司资助MLOSS是为了引进研制人才,然后能直接操控开源软件生态体系,强化现有才能。

由于许多开源东西的研制人员以前是用户,他们很难明晰表达怎么直接操控开源软件生态体系,因而引进人才家常便饭。这些在怎么设置默许值(如:PyTorch兼容什么类型的硬件)或怎么拓展项目开展方向(如:HuggingFace是否优先考虑与Graphcore的IPU或Google的TPU的兼容性)上均有体现。

终究,不管添加核算需求(对数字云供给商更有益)仍是改进现有仓库办法,添加MLOSS的运用往往能提高现有功用价值。由于TensorFlow的广泛运用,谷歌Colab的用户量也大大提高。而同享PyTorch更是显着改进了Facebook/Meta的人脸识别、图画字幕功用。

草创公司为社区供给MLOSS以改进现有产品,助力未来产品。社区不仅仅是社区,更是强壮的护城河。它可以助力发挥文化影响力、改进产品、获取营利途径并赋予人们集体认同感。

Hugging Face供给的大型言语模型包广受欢迎便是一个很好的例证。Hugging Face开源了强壮、可拜访的言语模型包,此举让社区收获了很多粉丝。2022年,该公司经过实施有偿模型练习或模型推理,并为大企业供给咨询服务才完成了现金流回正。社区可以帮忙公司发掘人才、改进现有产品、挖掘企业服务的消费群体。

社会技能要素

除了资金和意识形态之外,还有很多社会技能要素也对MLOSS有显着影响。以下是三个最为杰出的影响要素。

  1. 软件易用性是制胜要害

软件的功用会极大地左右人们的挑选,人们倾向于挑选用户界面最直观的软件。值得一提的是,虽然开始缺乏对出产体系指令式办法的支撑,TensorFlow终究仍是采用了PyTorch的指令式神经网络标准。TensorFlow根据graph机制与PyTorch根据eager的机制之间的竞赛就好比是Lisp言语和C言语,或许“正确的作业”与“越坏就越好”之争。

与Lisp言语相比,C言语简略且完好度不够,可是这种“更糟”的C编程言语的采纳率却远远超过了杂乱、完好且“正确”的Lisp言语,PyTorch和TensorFlow之间的竞赛也是如此,PyTorch这种更为简略的办法战胜了TensorFlow更高效的根据graph的模型。

  1. 部分代码完成标准化

数据集操作(dataset manipulation)和矩阵微分(matrix differentiation)是机器学习的两个常见使命,咱们就以此为例。数据集操作在数据集之间的差异很大,但需求的过程很少。相比之下,矩阵微分在模型之间十分类似,但需求的过程更多。矩阵微分的单调乏味和类似性意味着它是软件中最早完成标准化的使命之一。一般来说,模块化、同质化和琐碎的使命会最早被标准化。

  1. 研讨社区的兴趣

机器学习中的盛行范式对MLOSS有显着影响。现在,机器学习的主要模型类型是深度学习,这推进了深度学习(与代替概率编程(alternate probabilistic programming)或主动规划(automated planning)等机器学习范例相反)MLOSS东西的开展。

当然,机器学习干流范式自身就会遭到多种要素的影响,硬件状况、威望基准、商业适用性对于刻画机器学习主导办法来说都很重要。想要深化了解相关信息,咱们可以参看Dotan和Milli (2019)2的论文。

意识形态

终究,意识形态对于MLOSS的开展也有着至关重要的影响。大多数MLOSS要害人物都遭到特定世界观的影响,他们的世界观或许带有宗教性质或是个人价值观的产物。这些价值观鼓励着研讨人员去改进其他开发人员的体验或是促进AI的开展。

Travis Oliphant是NumPy(Python中最常用的库之一)的创立者,他叙述了创立NumPy作为公共服务时发生的故事,可是在那时,他的这一想法遭到了杨百翰大学(Brigham Young University)的参谋和同行们的反对。

其他研讨人员单纯以为推进AI的开展能带来很多好处。Soumith Chintala在一次博客访谈中被问及Facebook资助PyTorch的原因,他答道,“在AI研讨院(Facebook AI Research)中咱们有一个单点议程,这个议程是为了处理AI方面的问题,包含授权他人去处理相关问题。

这好像意味着“处理AI”将极大促进社会开展,这种开展可以是发明新的药品也可以是证明新的定理。同样,H2O.ai和Hugging Face都将“人工智能民主化”作为开源其产品的核心动机。

5、MLOSS(深度学习)中的自我强化反应循环

在本节中,咱们将评论MLOSS的增殖(proliferation)办法,这种办法或许会挑选性地偏心某一种机器学习(深度学习)类型。

AI深度学习范式的代替计划

除了深度学习,AI研讨还有其他范式,比如概率机器学习(probabilistic machine learning)、根据规矩的专家体系(rule-based expert systems)以及主动规划(automated planning)。

正如一些受访者所说,虽然深度学习是 ML/AL 研讨中的主导范式,但咱们很难理清深度学习取得前进的原因,显然技能优势是一部分原因,可是跟着 MLOSS 生态体系的前进,咱们也不能忽视前进背面巨大的工程优势。充其量,很难评价若代替办法具有类似资源,技能会怎么前进。在最坏的状况下,深度学习发明了一种自我强化动力,使得生态体系的影响比底层技能的优势更重要。

提到深度学习没有显着优势的范畴,验证飞行软件(verifying flight software)便是一个比如,它对确定性有很高的要求。在这些范畴,工程师们会挑选运用与主动规划密切相关的定理证冥具(theorem provers)来正式验证软件质量。现在深度学习还不能担任这方面的使命,由于它们无法供给正式的确保。

更好地支撑深度学习东西有助于加强深度学习

现在MLOSS东西有两种支撑深度学习的办法:削减开发人员摩擦和改动研讨人员鼓励措施。

PyTorch和FastDownward别离是深度学习和主动规划范畴最盛行的两个开源东西。PyTorch主要由Facebook的AI研讨院开发,并得到了极好的支撑。用户通常可以经过单个搜索引擎查询来处理技能问题,这个查询会解析数以万计的帖子和活泼用户。许多有用的代码片段具体说明了怎么调试尺寸不匹配的张量

现在咱们来聊一聊FastDownward。FastDownward的装置十分重要,需求操作体系的基本常识才干下载压缩文件包 (tarball) 并手动配置装置。假如遇到技能问题,用户很难立即取得支撑。在咱们测验的大多数错误查询中,经过搜索引擎直接搜索的办法找不到答案,所以咱们不得不求助于他们的自定义论坛。咱们这样说并不是在降低FastDownward,而是想要说明全职工程师团队之间在用户体验上的巨大差异。

在采访过程中,咱们看到了东西运用摩擦的细小差异是怎么推进TensorFlow转向PyTorch的。咱们以为,研讨东西的易用性对研讨人员注重问题的挑选有着显着的影响。 经过这种办法,当时最盛行的MLOSS东西(PyTorch、JAX、Hugging Face等)促进了深度学习方面的作业,这并不是深度学习作为AI范式的科学价值的直接结果。

由于强壮的生态体系支撑,深度学习东西现已出产化,这让深度学习工程成为一种十分抱负的技能组合,这是MLOSS加强深度学习的另一种办法。

深度学习东西易用、牢靠且得到很多用户社区的支撑,因而许多公司都可以运用深度学习。很多公司现已开始经过TensorFlow等东西运用深度学习,因而,相比其他范式,深度学习范畴专家拥有更多的作业时机,一起职业里对触及深度学习作业的需求量也更高。在Indeed.com上有超过15000个岗位触及深度学习,而触及概率编程和主动规划的岗位则别离只要40个和8个。

6、MLOSS的未来

开源机器学习软件对AI的发展意味着什么?

图3: 深度学习模型的扩展沃德利地图

前面提到过的沃德利地图可以对技能开展轨道作出一些猜测。一般来说,才能越靠近左边就意味着该才能越是不足,就越会制约技能的开展,生态体系的注意力就会转向去提高这些相对被忽视的才能。与定性依据相结合,沃德利地图估测出了下面四个开展趋势。

趋势1:MLOSS的重心将从深度学习结构搬运

虽然深度学习结构(PyTorch 、TensorFlow、Chainer、Theano、Torch以及华为最近发布的MindSpore)之间的竞赛十分激烈,但运用结构表达深度学习模型已不再是瓶颈。

PyTorch的创立者之一Soumith Chintala隐晦地说道“经过PyTorch和TensorFlow,咱们现已看到了结构之间的交融趋势,接下来竞赛的主战场将会是结构编译器,比如XLA、TVM以及PyTorch的Glow,这一范畴将会迎来很多创新”。

趋势2:更多大型预练习模型东西

最近,许多闻名项目都在对大型预练习模型进行迭代升级。Github的大模型Copilot是GPT-3[12]的微调版别,旨在帮忙Python进行代码编写。从最基础的层面来说,这触及为预练习模型供给服务的基础设施。

当时的大言语模型太大,无法在单台核算机上运转,但OpenAI的GPT-3 API和Hugging Face的服务基础设施现已可以做到这一点。后续东西答应办理不同模型版别,用于组合大型的不同预练习模型的元结构,以及用于将不同形式(例如视觉、声音、文本)合并到预练习模型中的东西。

趋势3:(潜在闭源)数据东西愈加多样

许多草创公司正试图处理当时处理数据的临时性质(ad-hoc nature),但没有整合到单一东西上。更广泛地说,跟着 Andrew Ng 的“以数据为中心的人工智能”等活动的开展,许多研讨人员以为数据这一东西和研讨的要点被忽视了。假如这一观点正确,那么用于数据查看和出产的东西将变得尤为重要。

是否对这些未来东西开源将取决于使命规划。与大学或小型草创公司的 GB 级实验相比,PB 级数据体系,例如特斯拉的主动驾驶汽车数据pipeline会开源的或许性要小得多。这或许会让大小型东西开展道路进一步分解,大规划东西由 Scale 等专有平台供给,部分小规划数据东西则会开源,可供研讨人员免费运用。

开源机器学习软件对AI的发展意味着什么?

表1.不同类型的数据东西

对危险的简要反思

数据东西的开展趋势对机器学习的中期危险来说意味着什么?与核算的开展趋势类似,数据东西的开展趋势好像也是小部分公司集中了大部分才能。这种开展趋势或许更便于办理,各国政府都已成功展现出办理由通用技能开展而来的垄断职业的才能,比如说电力。可是令人担忧的是,咱们对这些技能的操控才能远远跟不上办理才能的开展。

MLOSS 中的社区标准也对潜在危险有严重影响。由于MLOSS有很多强壮社区,假如其间某个有影响力的社区无视发布强壮AI体系的安全问题,在这种状况下,咱们以为高危险模型(例如丧命病毒生成)的研讨人员更或许揭露发布他们的模型。

由于AI体系通常是可组合的,所以咱们猜测模型增殖(model proliferation)的危险或许呈非线性增长。由于不良分子可以将不同形式的模型相结合,因而揭露可用模型或许发生的危险将远远超出揭露的模型数量。假如要严肃对待这种状况,那么咱们就必须要在模型发布之前拟定慎重的相关标准。

为了添加研讨牢靠性,咱们对模型未来的开展前景作了一些估测,这些估测都有一定的或许性:

  1. 到2027年1月,根据Paperswithcode(中国境外),PyTorch和JAX将成为最受欢迎的三大深度学习结构中的其间两大结构。
  2. Python将成为2027年最盛行的机器学习言语。
  3. ONNX将成为干流的中心表明结构。
  4. 在2023至2027年间,对大众闭源的前5大言语模型不会开源。
  5. 到2027年,三个最受欢迎的数据东西供给平台在很大程度上会是专有的,也便是说他们不会开源仓库的要害组成部分。

这些猜测大多根据咱们的直觉,并不完全精确,但咱们以为,不管怎么这些大略的猜测都有一定的作用,因而也将其列了下来。

下一步研讨方向

  • 其他范畴(比如LLVM等编译器)里的MLOSS和OSS有哪些相同/不同点?
  • 咱们希望数据东西以何种有别于结构东西的办法开展?
  • 扩展概率编程与深度学习(特别是核算)所需的才能有何不同?
  • 中国的MLOSS与美国的有何不同?这对人工智能研讨常识的传达来说意味着什么?
  • 开源数据东西的鼓励与其他MLOSS(尤其是结构)的鼓励有何不同?

(本文经授权后由OneFlow社区编译发布,译文转载请联络取得授权。原文:
maxlangenkamp.me/posts/mloss…

欢迎 Star、试用 OneFlow 最新版别:
github.com/Oneflow-Inc…