您当前的位置:首页 > 电脑百科 > 人工智能

200 个工具分析机器学习十年:前途未卜、工程师是核心

时间:2020-06-30 16:04:51  来源:  作者:
【CSDN 编者按】人工智能和机器学习经过十年多的发展,在过去的几年间,各类工具数量迎来了持续的爆发式的增长,机器学习也正式由科研走进工业生产阶段。本文作者 —— 来自硅谷一家初创公司的计算机科学家 Chip Huyen 梳理挖掘出 202 个机器学习工具,并进行分类研究,总结出了至关重要的两点:
  • 开源已经变成一种行业标准,任何一个刚起步的公司,都必须与现有的开源工具进行竞争;
  • 如果必须在人工智能专家和工程师之间做一个选择,那么请选择工程师。

200 个工具分析机器学习十年:前途未卜、工程师是核心

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

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

头图 | CSDN 下载自东方 IC

出品 | CSDN(ID:CSDNnews)

以下为译文:

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

  • 全栈深度学习,
    https://github.com/alirezadir/Production-Level-Deep-Learning

  • LF AI 基金会全景图,
    https://landscape.lfai.foundation/

  • 人工智能与数据全景图,
    http://dfkoz.com/ai-data-landscape/

  • 媒体列出的众多 AI 初创公司

  • 我在 Twitter(
    https://twitter.com/chipro/status/1202815757593108480)和 LinkedIn(
    https://www.linkedin.com/posts/chiphuyen_machinelearning-machinelearningproduction-activity-6608605129010753536-bdZ7)中收到的回复

  • 其他人(朋友、网友、风投等)与我分享的内容

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

免责申明

  • 这个列表是我在 2019 年的时候整理的,在过去的 6 个月,市场中可能会有一些变化。

  • 有一些科技公司有大量的工具,我并不能一一列举。如 Amazon Web Services 提供了超过 165 种完整的服务。

  • 有许多不知名或者已经不存在的公司并没有在此分析的数据之中。

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

  • 概述

  • 机器学习的发展历史

  • 机器学习前途未卜

  • 机器学习运维(MLOps)面临的问题

  • 开源与开放核心

  • 总结

200 个工具分析机器学习十年:前途未卜、工程师是核心

概述

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

  • 项目立项

  • 数据处理

  • 建模与训练

  • 提供产品服务

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

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

200 个工具分析机器学习十年:前途未卜、工程师是核心

机器学习的发展历史

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

200 个工具分析机器学习十年:前途未卜、工程师是核心

工具数量图

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

  • 前卷积神经网络时代(2012 年之前)

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

  • 高速发展阶段(2012 - 2015 年)

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

200 个工具分析机器学习十年:前途未卜、工程师是核心

工具数量增长曲线

  • 生产阶段(2016 年至今)

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

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

200 个工具分析机器学习十年:前途未卜、工程师是核心

机器学习前途未卜

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

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

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

200 个工具分析机器学习十年:前途未卜、工程师是核心

机器学习运维(MLOps)面临的问题

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

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

对于机器学习来说,使用更多、更好的数据,能够实现更好效果的应用程序。大多数的公司都将重点放在数据优化上,而不是机器学习算法的优化上。由于数据的快速变化,我们的机器学习应用程序也需要快速的进行发布。在很多机器学习应用的场景中,你需要每天都进行模型更新。

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

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

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

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

  • 监控:如何知道你的数据分布发生了变化,你需要重新训练模型?例如:Dessa,Alex Krizhevsky 基于AlexNet 开发的,在 2020 年被 Square 收购;

  • 数据标签:如何快速的给新的数据打标,或将已经存在的数据进行重新打标来支持新的模型训练?例如:Snorkel;

  • 持续集成、持续交付:如何保证你的模型在每一次修改后都能够按照预期的进行工作,你不可能花费好几天的时间去等待训练收敛的结果?例如:Argo;

  • 交付:如何打包并发布你的新模型?例如:OctoML;

  • 模型压缩:如何将你的机器学习模型进行压缩,让他能够在客户的设备上运行?例如:Xnor.ai 这家公司,由艾伦研究所拆分出来,专注模型压缩的初创企业,在 2018 年 5 月,估值 6200 万美元,获得 1460 万美元的融资。在 2020 年 1 月, 苹果以 2 亿美元收购了它,并关闭了它的网站

  • 推理优化:如何提高你的模型推理速度?多步融合?低精度?减小模型可以使推理速度变得更快。例如:TensorRT;

  • 边缘设备:硬件设计让机器学习算法能够更快速地运行在更廉价的设备上。例如:Coral SOM;

  • 隐私:如何使用用户的数据进行训练并且保证用户的隐私?如何让你的应用程序满足 GDPR ?例如:PySyft。

我根据这些机器学习工具主要解决的问题绘制了下图:

200 个工具分析机器学习十年:前途未卜、工程师是核心

工具数量

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

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

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

另一个没有被解决的重要问题是在部署与服务上,在这一方面缺乏解决方案的原因在于研究人员与运维人员之间缺少沟通。在有能力从事人工智能研究的公司中(通常是大公司),研发团队与运维团队几乎都是分开的,两个团队之前的合作只能通过(产品、项目)经理来实现。而在小公司中,员工能看到全局,但是他们会受到产品需求的限制。只有少数初创公司,这些公司聘请了有经验的运维工程师和有经验的研究人员一起协同办公,成功的解决了这一问题。并且这些初创公司占据了人工智能很大一部分市场。

200 个工具分析机器学习十年:前途未卜、工程师是核心

开源与开放核心

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

这里有几个开源软件的原因:一是所有支持开源的人多年来一直都在说的原因,透明、协作、灵活,但这一个原因似乎只是一个道德上的约束。另一个是,客户并不想在看不到源代码的情况下使用新的工具,因为在看不到源代码的情况下,如果这个工具被关闭,他们将不得不重写代码,实现这个功能。

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

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

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

200 个工具分析机器学习十年:前途未卜、工程师是核心

总结

关于人工智能的泡沫是否会破灭,人们也是议论纷纷。现在,人工智能上很大一部分投资都在自动驾驶上,但是到现在仍然没有一款完全自主驾驶的汽车出现。一些人认为投资者将会对人工智能失去希望,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,计算机科学家,现就职于硅谷的一家人工智能初创公司,专注于机器学习生产流程。

译者:罗昭成



Tags:机器学习   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
基于算法的业务或者说AI的应用在这几年发展得很快。但是,在实际应用的场景中,我们经常会遇到一些非常奇怪的偏差现象。例如,Facebook将黑人标记为灵长类动物、城市图像识别系统...【详细内容】
2021-11-08  Tags: 机器学习  点击:(32)  评论:(0)  加入收藏
这是几位机器学习权威专家汇总的725个机器学习术语表,非常全面了,值得收藏! 英文术语 中文翻译 0-1 Loss Function 0-1损失函数 Accept-Reject Samplin...【详细内容】
2021-10-21  Tags: 机器学习  点击:(43)  评论:(0)  加入收藏
要开始为开源项目做贡献,有一些先决条件:1. 学习一门编程语言:由于在开源贡献中你需要编写代码才能参与开发,你需要学习任意一门编程语言。根据项目的需要,在后期学习另一种语言...【详细内容】
2021-10-20  Tags: 机器学习  点击:(37)  评论:(0)  加入收藏
作者:阿米特·V. 乔希(Ameet V Joshi)来源:华章科技 01 人工智能艾伦·图灵(Alan Turing)对人工智能的定义如下:如果窗帘后面有一台机器,并且有人正在与之互动(无论以何...【详细内容】
2021-09-07  Tags: 机器学习  点击:(76)  评论:(0)  加入收藏
字节跳动基础架构团队基于火山引擎机器学习平台 Clever 及其丰富的行业落地经验,推出开源项目 Klever,以工程化的方式降低智能技术落地门槛,助力企业快速打造智能业务。作者: 陈...【详细内容】
2021-02-19  Tags: 机器学习  点击:(170)  评论:(0)  加入收藏
特征选择是识别和选择与目标变量最相关的输入变量子集的过程。特征选择最简单的情况可能是存在数字输入变量和用于回归预测建模的数字目标的情况。这是因为可以计算出每个输...【详细内容】
2021-01-15  Tags: 机器学习  点击:(117)  评论:(0)  加入收藏
1、集成学习及Boosting算法集成学习属于机器学习,它是一种“训练思路”,并不是某种具体的方法或者算法。集成学习的核心思想是把已有的算法进行结合,从而得到更好的效果。集成...【详细内容】
2020-12-29  Tags: 机器学习  点击:(176)  评论:(0)  加入收藏
“终有一天,人工智能会像我们看待非洲平原上低级生物的化石一样看待我们。在人工智能眼中,人类只是直立行走的猿猴,用着粗糙的语言和简陋的工具,从诞生起就注定会灭绝。”&mdash...【详细内容】
2020-12-17  Tags: 机器学习  点击:(147)  评论:(0)  加入收藏
专注Python、AI、大数据,请关注公众号七步编程!人工智能方向的项目,和数据可视化是紧密相连的。模型训练过程中梯度下降过程是什么样的?损失函数的走向如何?训练模型的准确度怎么...【详细内容】
2020-10-15  Tags: 机器学习  点击:(357)  评论:(0)  加入收藏
在数据领域,很多人都在说机器学习,但是只有很少的人能说清楚怎么回事。网上关于机器学习的文章,大多都是充斥各种定理的厚重学术三部曲(我搞定半个定理都够呛),或是关于人工智能...【详细内容】
2020-09-25  Tags: 机器学习  点击:(111)  评论:(0)  加入收藏
▌简易百科推荐
作为数据科学家或机器学习从业者,将可解释性集成到机器学习模型中可以帮助决策者和其他利益相关者有更多的可见性并可以让他们理解模型输出决策的解释。在本文中,我将介绍两个...【详细内容】
2021-12-17  deephub    Tags:AI   点击:(16)  评论:(0)  加入收藏
基于算法的业务或者说AI的应用在这几年发展得很快。但是,在实际应用的场景中,我们经常会遇到一些非常奇怪的偏差现象。例如,Facebook将黑人标记为灵长类动物、城市图像识别系统...【详细内容】
2021-11-08  数据学习DataLearner    Tags:机器学习   点击:(32)  评论:(0)  加入收藏
11月2日召开的世界顶尖科学家数字未来论坛上,2013年诺贝尔化学奖得主迈克尔·莱维特、2014年诺贝尔生理学或医学奖得主爱德华·莫索尔、2007年图灵奖得主约瑟夫·斯发斯基、1986年图灵奖得主约翰·霍普克罗夫特、2002...【详细内容】
2021-11-03  张淑贤  证券时报  Tags:人工智能   点击:(39)  评论:(0)  加入收藏
鉴于物联网设备广泛部署、5G快速无线技术闪亮登场,把计算、存储和分析放在靠近数据生成的地方来处理,让边缘计算有了用武之地。 边缘计算正在改变全球数百万个设备处理和传输...【详细内容】
2021-10-26    计算机世界  Tags:边缘计算   点击:(45)  评论:(0)  加入收藏
这是几位机器学习权威专家汇总的725个机器学习术语表,非常全面了,值得收藏! 英文术语 中文翻译 0-1 Loss Function 0-1损失函数 Accept-Reject Samplin...【详细内容】
2021-10-21  Python部落    Tags:机器学习   点击:(43)  评论:(0)  加入收藏
要开始为开源项目做贡献,有一些先决条件:1. 学习一门编程语言:由于在开源贡献中你需要编写代码才能参与开发,你需要学习任意一门编程语言。根据项目的需要,在后期学习另一种语言...【详细内容】
2021-10-20  TSINGSEE青犀视频    Tags:机器学习   点击:(37)  评论:(0)  加入收藏
SimpleAI.人工智能、机器学习、深度学习还是遥不可及?来这里看看吧~ 从基本的概念、原理、公式,到用生动形象的例子去理解,到动手做实验去感知,到著名案例的学习,到用所学来实现...【详细内容】
2021-10-19  憨昊昊    Tags:神经网络   点击:(47)  评论:(0)  加入收藏
语言是人类思维的基础,当计算机具备了处理自然语言的能力,才具有真正智能的想象。自然语言处理(Natural Language Processing, NLP)作为人工智能(Artificial Intelligence, AI)的核心技术之一,是用计算机来处理、理解以及运...【详细内容】
2021-10-11    36氪  Tags:NLP   点击:(49)  评论:(0)  加入收藏
边缘计算是什么?近年来,物联网设备数量呈线性增长趋势。根据艾瑞测算, 2020年,中国物联网设备的数量达74亿,预计2025年突破150亿个。同时,设备本身也变得越来越智能化,AI与互联网在...【详细内容】
2021-09-22  汉智兴科技    Tags:   点击:(54)  评论:(0)  加入收藏
说起人工智能,大家总把它和科幻电影中的机器人联系起来,而实际上这些科幻场景与现如今的人工智能没什么太大关系。人工智能确实跟人类大脑很相似,但它们的显著差异在于人工智能...【详细内容】
2021-09-17  异步社区    Tags:人工智能   点击:(57)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条