智客公社

标题: 200 个工具分析机器学习十年:开源是大势,工程师是核心 [打印本页]

作者: 飱淰    时间: 2020-6-30 08:44
标题: 200 个工具分析机器学习十年:开源是大势,工程师是核心
[attach]411639[/attach]

[attach]411640[/attach]

【编者按】人工智能和机器学习经过十年多的发展,在过去的几年间,各类工具数量迎来了持续的迸发式的增长,机器学习也正式由科研走进工业消费阶段。本文作者 —— 来自硅谷一家初创公司的计算机迷信家 Chip Huyen 梳理发掘出 202 个机器学习工具,并停止分类研讨,总结出了至关重要的两点:


作者 | Chip Huyen,本文已获作者翻译授权

译者 | 罗昭成,编辑 | 唐小引

题图 | 东方 IC

出品 | AI科技大本营(ID:rgznai100)

为了更好地了解如今的机器学习、人工智能的工具,更好地预测它们的前景。我搜集了一切我能搜集到的有关人工智能与机器学习的材料。这些资源来源以下几个方面:

我从中过滤掉运用机器学习做产品的公司(如,运用机器学习提供数据分析的公司)、不常用的工具或没有人运用的工具之后,还有 202 个机器学习的工具。这里(https://docs.google.com/spreadsheets/d/1OV0cMh2lmXMU9bK8qv1Kk0oWdc_Odmu2K5sOULS9hHQ/)有残缺的列表。假如有你觉得应该包含但我没有列出来的工具,请告诉我。

免责声明

本文包含以下 6 部分内容:

[attach]411641[/attach]


概述

创建一个机器学习的产品(https://github.com/chiphuyen/machine-learning-systems-design),包含以下 4 个步骤:

我将我统计出来的机器学习工具,根据这些工具对下面步骤的支持状况,对所无机器学习工具停止分类。当然,这外面不包含项目立项相关的内容,它需求的是项目管理工具,而不是机器学习工具。分类这件事情并没有看起来那么简单,很多工具都可以协助你完成多个事情。并且它们不置可否的解释,也并不能让我们很好了解它的作用,像下面的这些描画:“我们打破了数据迷信的极限”,“我们将 AI 项目转变成商业成果”,“像呼吸一样,随意运用你的数据”,还有我最喜欢的一句:“我们驰骋在数据迷信中。”

每个工具都有它最擅长的部分,我将包含多种才能的工具分类到它最擅长的那一类中。假如它擅长一切部分,我就将它们放在 N 合一这个类别中。当然,分类中还包含基础设备提供商,他们提供训练与存储的基础设备,并且大部分都是云服务提供商。

[attach]411642[/attach]


机器学习的发展历史

首先,我将这些工具发布的工夫停止了整理。假如这个工具是一个开源项目,我从该项目的第一次提交末尾,查找项目公开的工夫;假如是一家公司,我运用它在 Crunchbase 上注册的工夫作为工具的发布工夫。基于这些数据,我绘制了各类工具每年发布的数量图。

[attach]411643[/attach]

工具数量图


不出所料,数据中可以看到,随着深度学习的发展,在 2012 年末尾迎来迸发式的增长。

直到 2011 年,机器学习次要工作都是在建模和训练模型上,那时的一些框架,到如今还很盛行(如:Scikit-Learn),当然还有一些框架为如今的发展留下了深远的影响。很多机器学习工具末尾于 2012 年前,不断持续优化迭代到明天,直到它们 IPO(Cloudera、Datadog、Alteryx)或者被收买,或者成为社区盛行的开源项目(Spark、Flink、Kafka)。

当机器学习的社区采用“数据驱动”的方法时,机器学习的发展就变成了数据处理的发展。每年在每个类别中工具的发布数量,也明晰地展现出了这一点。在 2015 年,有 57% 数据处理工具。

[attach]411644[/attach]

工具数量增长曲线


纯粹的技术研讨对机器学习范畴来说非常重要,但是大多数公司并没有足够的研讨经费支持技术研讨,除非对应的技术研讨能在短期内运用在真实的商业场景中。随着机器学习的研讨与发展,海量的数据与处理模型的增长,使得机器学习越来越触手可得。越来越多的人为他们的运用找到运用机器学习的场景,这也近一步添加了我们对机器学习工具的需求。

在 2016 年,Google 宣布运用神经网络来提高 Google 翻译的准确度(https://ai.googleblog.com/2016/09/a-neural-network-for-machine.html),这也是深度学习运用在真实商业场景中的先例之一。从那时起,有很多的机器学习工具被开发出来,协助我们更好的做人工智能的产品。

[attach]411645[/attach]


机器学习出路未卜

如今有很多人工智能相关的初创公司,它们中大多数都是将机器学惯用于它们的产品(如提供业务分析或客户支持等产品),而不是做机器学习工具的初创公司(创建工具来协助其别人完成产品)。用投资人的话来说,他们大多数都是在人工智能的垂直范畴。在 2019 年福布斯排行榜中,50 家人工智能公司,其中只要 7 家是做机器学习工具的公司。

当你去一家公司,告诉他们,运用你的产品可以减少一半客户支持的投入,因此运用类的产品可以更好的售卖、商业化。但是机器学习相关的工具却很难卖出去,但是这些工具对人工智能的影响非常大,由于他们的目的不是做某一个单一的运用程序,而是在做一个生态。许多公司可以提供相似的人工智能产品,但是在创建机器学习产品的流程中,通常很少有工具可以共存。

经过我广泛的搜索调查,我却只能找到大约 200 多个人工智能的工具,与传统软件相比,这点工具是非常微乎其微的。假如你想找一个传统 Python 运用程序的测试工具,花两分钟工夫,你在 Google 上至少能找到 20 个。但是假如你想找一个测试机器模型的工具,你就很难可以找到了。

[attach]411646[/attach]


机器学习运维(MLOps)面临的成绩

很多传统软件开发的工具也可以用于人工智能产品的开发中,但是,人工智能产品中有很多独有的应战,它们需求特有的工具去处理。

对于传统的软件工程师来说,写代码是最难的一部分。但对于机器学习来说,写代码只是应战中很小的一部分。开发一个可以在商业中运用的模型非常困难,并且成本很高。大多数公司并不会将重点放在模型的开发上,而是运用现有的模型。

对于机器学习来说,运用更多、更好的数据,可以完成更好效果的运用程序。大多数的公司都将重点放在数据优化上,而不是机器学习算法的优化上。由于数据的疾速变化,我们的机器学习运用程序也需求疾速的停止发布。在很多机器学习运用的场景中,你需求每天都停止模型更新。

机器学习算法的大小也是一个成绩。一个大型的 BERT 模型有 340M 的参数,整个算法大小约为 1.35GB。即便这个模型可以在你用户的设备(如手机)上安装,这个模型在新的样本上停止推理所花费的工夫也有能够使得运用程序毫无用途。举个例子:在运用输入法的时分,算出建议字符花费的工夫比你手动输入的工夫还长,那自动完成的模型就一点用都没有。

Git 运用了一行一行的比较方式,比较两个文本文件的差异,因此它对传统软件程序开发非常敌对。但是它并不适用数据集以及模型之间的差异比对。又如 Pandas 可以很好地停止数据处理,但是它不支持在 GPU 上运转。

CVS 等基于行的数据格式,非常合适在数据量小运用程序中运用。但假如你的运用程序有许多功能,并且这些功能只需求运用数据中的一个子集,这种状况下,运用基于行格式的方式仍需求加载一切的数据。PARQUET 和 OCR 等列格式的工具,针对上述的场景停止了相应的优化。

机器学习产品在发布上也面临着很多成绩:

我根据这些机器学习工具次要处理的成绩绘制了下图:

[attach]411647[/attach]


工具数量

这些工具很大一部分都聚焦在数据处理上:数据管理、标记、数据查询、数据处理、数据生成等。这些数据处理工具旨在构建一个平台,数据处理是项目中资源最密集的阶段。假如有人在你的平台上,给你提供数据,你就能很容易为他们提供预先构建的训练模型。

建模和训练模型次要是框架来完成的。而深度学习框架竞争曾经逐渐趋于冷却,现次要是 PyTorch 和 TensorFlow 之间的竞争。以及一些基于这两个框架的更高层次的框架之间的竞争,它们围绕这两个框架来处理特定的义务:NLP 与 NLU 以及多模态成绩。这些框架都是分布式训练框架。这还有一个新的框架 JAX,很多厌恶 TensorFlow 的 Google 开发者都运用它。

如今有很多独立的工具用于一些实验跟踪,并且盛行的框架中都内置有他们本人的实验跟踪的功能。超参数是一个非常重要的功能,有些人留意到他们也不奇异,但是他们似乎都没有抓住重点,超参数的瓶颈并不是设置参数,而是高效的计算才能。

另一个没有被处理的重要成绩是在部署与服务上,在这一方面缺乏处理方案的缘由在于研讨人员与运维人员之间短少沟通。在有才能从事人工智能研讨的公司中(通常是大公司),研发团队与运维团队几乎都是分开的,两个团队之前的合作只能经过(产品、项目)经理来完成。而在小公司中,员工能看到全局,但是他们会遭到产品需求的限制。只要多数初创公司,这些公司延聘了有阅历的运维工程师和有阅历的研讨人员一同协同办公,成功的处理了这一成绩。并且这些初创公司占据了人工智能很大一部分市场。

[attach]411648[/attach]


开源与开放核心

在 202 个工具中,其中有 109 个是开源软件(OSS)。即便有些工具不是开源的,它们大多数也会附带一些开源的工具。

这里有几个开源软件的缘由:一是一切支持开源的人多年来不断都在说的缘由,透明、协作、灵敏,但这一个缘由似乎只是一个道德上的约束。另一个是,客户并不想在看不到源代码的状况下运用新的工具,由于在看不到源代码的状况下,假如这个工具被关闭,他们将不得不重写代码,完成这个功能。

开源并不意味着不盈利,也不意味着收费。开源的维护很费时,并且成本也很高。听说,TenserFlow 团队有接近 1000 人。公司不会在没有商业目的的状况下提供开源软件。假如有更多的人运用他们的开源工具,就会有更多的人了解他们,信任他们的技术,并且会购买他们的专有工具,并且也能让更多的人希望加入他们公司。

Google 经过推行 TenserFlow,希望可以让更多的人运用他们的云服务。NVIDIA 维护 cuDF 库也是希望有更多的人来买他们的 GPU。Databricks 收费提供 MLflow,但出售他们的数据分析平台。Netflix 最近成立了专门的机器学习团队,发布他们自研的 Metaflow 框架,用以吸引人才。自然言语处理工具 SpaCy 是收费的,但是 Prodigy 却是收费的。

开源曾经变成了一种行业标准,创业公司很难从中找到一种可行的商业形式。任何一个刚起步的公司,都必须与现有的开源工具停止竞争。假如你也仅仅只开放核心,你需求细心思索,哪些特性是要包含在开源软件中,而哪些是要放在付费的版本中。既要让用户不觉得你贪心,也要可以让收费用户付费。

[attach]411649[/attach]


总结

关于人工智能的泡沫能否会幻灭,人们也是议论纷纷。如今,人工智能上很大一部分投资都在自动驾驶上,但是到如今照旧没有一款完全自主驾驶的汽车出现。一些人以为投资者将会对人工智能得到希望,Google 也冻结了在机器学习上的人员招聘,Uber 解雇了一半的人工智能研讨团队。有传闻说,学习机器学习相关的人员远多于机器学习相关的工作岗位。

如今是进入人工智能范畴的好机遇吗?我置信,如今是有在炒作人工智能的概念,但在某一个时辰,会冷静上去。有能够这个工夫点曾经发生了。我不置信机器学习会消逝,有才能停止机器学习研讨的公司会越来越少,但是绝不会缺乏将机器学习现有的工具引入产品的公司。

假如必须在人工智能专家和工程师之间做一个选择,那么请选择工程师。对于工程师来说,学习人工智能相关知识会很容易,但是对于人工智能专家来说,成为一个很好的工程师要困难得多。假如你是一个优秀的工程师,并且可以为构建人工智能工具而努力,我会由衷地感激你。

致谢:感激 Andrey Kurenkov 在我撰写本文时所做出的指点。感激 Luke Metz 的审校。

英文:What I learned from looking at 200 machine learning tools

链接:https://huyenchip.com/2020/06/22/mlops.html

作者:Chip Huyen,计算机迷信家,现就职于硅谷的一家人工智能初创公司,专注于机器学习消费流程。

[attach]411650[/attach]

作者: nuoya00888    时间: 2020-6-30 14:25
对不起,我就来看看,不说话
作者: 撒哈拉的寂寞    时间: 2020-7-1 13:01
顶一个,顶一个,顶一个
作者: 尕燕子    时间: 2020-7-2 13:31
这帖子写的不错




欢迎光临 智客公社 (http://bbs.cnaiplus.com/) Powered by Discuz! X3.4