互联网资讯 / 人工智能 · 2023年10月28日 0

AI工具市场火爆,这个行业竞争激烈

在 linkedIn 上,很多你申请的机器学习职位都有超过 200 名竞争者。在 AI 工具上人们也有这么多选择吗?

为了完整了解机器学习技术应用的现状,毕业于斯坦福大学,曾就职于英伟达的工程师 ChIP Huyen 决定评测目前市面上所有能找到的 AI / 机器学习工具。

在搜索各类深度学习全栈工具列表,接受人们的推荐之后,作者筛选出了 202 个较为热门的工具进行评测。最近,她的统计结果让机器学习社区感到有些惊讶。

首先要注意的是:

这一列表是在 2019 年 11 月列出的,最近开源社区可能会有新工具出现。

有些科技巨头的工具列表庞大,无法一一列举,比如 AWS 就已经提供了超过 165 种机器学习工具。

有些创业公司已经消失,其提出的工具不为人们所知。

作者认为泛化机器学习的生产流程包括 4 个步骤:

项目设置

数据 pIPeline

建模和训练

服务

作者依据所支持的工作步骤将工具进行分类。项目设置这一步没有算在内,因为它需要项目管理工具,而不是机器学习工具。由于一种工具可能不止用于一个步骤,所以分类并不简单。

工具的时间演变历程

作者追溯了每种工具发布的年份。如果是开源项目,则查看首次提交,以查看项目开始公开的时间。如果是一家公司,则查看该公司在 CRunchbase 上的创办年份。然后她绘制了随着时间的推移,每个类别中工具数量的变化曲线。具体如下图所示:

AI工具市场火爆,这个行业竞争激烈

不出所料,数据表明,随着 2012 年深度学习的复兴,该领域才开始呈爆炸式增长。

AlexNet 之前(2012 年之前)

直到 2011 年,该领域仍然以建模训练工具为主导,有些框架(比如 scikIT-leaRn)仍然非常流行,有些则对当前的框架(Theano)产生了影响。2012 年以前开发出来且至今仍在使用的一些工具要么完成 IPO(如 CloudeRa、Datadog 和 AlteRyx),要么被收购(FiguRe Eight),要么成为受社区欢迎并积极开发的开源项目(如 SpaRk、Flink 和 Kafka)。

开发阶段(2012-2015)

随着机器学习社区采用「let&Rsquo;s thRow data at IT」的方法,机器学习空间就变成了数据空间。当调查每个类别中每年开发出的工具数量时,这一点更加明显。2015 年,57%(82 个工具中有 42 个)的工具都是数据 pIPeline 工具。具体如下图所示:

AI工具市场火爆,这个行业竞争激烈

生产阶段(2016 年至今)

每个人都知道越基础的研究越重要,但大多数公司都无法支持研究人员进行纯技术方向的探索&Mdash;&Mdash;除非能够看到短期商业利益。随着机器学习研究、数据和已训练模型数量的增多,开发者和机构的需求增加,市场对于机器学习工具的需求也有了巨大的增长。

2016 年,谷歌宣布将神经机器学习技术应用到谷歌翻译中,这是深度学习在现实世界里首次落地的重要标志。

这一全景图仍不完整

AI 创业公司现在已经有很多了,但它们大多数都面向技术的落地,而不是提供开发工具。用风险投资的术语来说,大多数初创公司都是垂直 AI 领域里的。在福布斯 2019 年公布的 50 大 AI 初创公司里,只有 7 家是以机器学习开发工具为主业的。

对于大多数人来说,应用更为直观。你可以走进一家公司说:「我们可以让你们的一半客服工作实现自动化。」工具实现的价值总是间接的,但又深入整个生态系统。在一个市场中,很多公司都可以提供相同的应用,但其背后用到的工具却只有寥寥几种。

经过大量搜索和比对,在这里作者只列出了 200 余个 AI 工具,相对于传统计算机软件工程来说这个数字很小。如果你想评测传统的 Python 应用开发,你可以用谷歌几分钟内找出至少 20 个工具,但如果你想试试机器学习模型,事情就完全不一样了。

机器学习工具面临的问题

很多传统的软件工具都可以用于开发机器学习应用。但是在机器学习应用中,也有很多挑战是独有的,需要特殊的工具。

在传统软件开发流程中,写代码是最难的一步,但在机器学习工作中,写代码只是整个流程中耗费精力较小的一部分。开发一个可以带来很大性能提升,并且在现实世界中可以落地的新模型非常耗费时间和资金。大多数公司都会选择不去开发新模型,而是直接拿来就用。

对于机器学习来说,使用最多 / 最好数据的应用总会获胜。所以与其专注于提升深度学习算法,大多数公司都会花费大量时间提升数据的质量。因为数据的变化总是很快,机器学习应用也需要快速的开发和部署。在很多例子中,你甚至需要每天都部署新的模型。

此外,ML 算法的规模也是一个问题。预训练的大规模 BERT 模型具有 3.4 亿参数,大小为 1.35GB。即使 BERT 模型可以拟合手机等消费类设备,但在新样本上运行推理所耗费的大量时间就使其对于现实世界的众多应用毫无用处。

试想,如果自动补全模型提示下一个字符所花费的时间比用户自己键入的时间还要长,那么有什么必要用这个模型呢?

Git 通过逐行的差异比较实现了版本控制,因而对大多数传统软件工程程序的效果很好。但是,GIT 并不适用于数据库或者模型检查点的版本控制。Panda 对大多数传统数据框操作的效果很好,但在 GPU 上不起作用。

CSV 等基于行的数据格式对于使用较少数据的应用有很好的效果。但是,如果你的样本具有很多特征,并且你只想利用其中的一个子特征,则使用基于行的数据格式依然需要你加载所有的特征。PARQUET 和 OCR 等柱状文件格式针对这种用例进行了优化。

ML 应用面临的一些问题如下所示:

监测:怎么知道你的数据分布已经改变以及需要重新训练模型?

数据标注:如何快速地标注新数据,或者为新模型重新标注现有数据?

CI/CD 测试:由于你不能花几天的时间等着模型训练和收敛,所以如何运行测试以确保每次改变后模型像期望地那样运行?

部署:如何封装和部署新模型或者替换现有模型?

模型压缩:如何压缩 ML 模型使其拟合消费类设备?

推理优化:如果加速模型的推理时间?是否可以将所有操作融合在一起?是否可以采用更低精度?缩小模型或许可以加速推理过程。

边缘设备:硬件运行 ML 算法速度快且成本低。

隐私:如何在保护隐私的同时利用用户数据来训练模型?如何使流程符合《通用数据保护条例》(GDPR)?

在下图中,作者根据开发工具能够解决的主要问题列出了它们的数量:

AI工具市场火爆,这个行业竞争激烈

一大部分集中在数据 pIPeline,包括数据管理、贴标签、数据库 / 查询、数据处理和数据生成。数据 pIPeline 工具可能也想成为一体化平台。由于数据处理是项目中最耗费资源的阶段,一旦有人在你的平台上放置他们的数据,那就很有可能给他们提供预构建或预训练的模型。

建模和训练工具大多是框架。当前深度学习框架之争有所平静,主要集中在 PyToRch 和 TensoRFlow 这两者之间,以及基于这两者解决 NLP、NLU 和多模态问题等特定任务的更高级的框架。分布式训练领域也有一些框架。还有一个出自谷歌的新框架 JAX,每个讨厌 TensoRFlow 的谷歌员工都力捧这个框架。

存在一些用于实验追踪的独立工具,一些流行深度学习框架还有内置的实验追踪功能。超参数调整很重要,所以出现专门用于超参数调整的工具并不奇怪,但是它们似乎没有一个流行起来。因为超参数调整的瓶颈不是设置,而是运行它所需的算力。

尚未解决但最令人兴奋的问题在部署和服务空间中。缺少服务方法的原因之一是研究人员与生产工程师之间缺乏沟通。在有能力进行人工智能研究的公司,研究团队与部署团队是分开工作的,两个团队仅通过 P 打头的经理互相交流进行沟通。而员工可以看到整个堆栈的小公司就会受到即时产品需求的限制。

只有少数几家初创公司能够缩小差距,这些公司通常是由已有成就的研究人员创建,并且有足够的资金雇佣优秀的工程师。而这样的初创公司将会占据人工智能工具市场很大一部分。

开源和开放内核

作者选择的 202 种工具中有 109 种是开源软件,并且没有开源的工具也常常与其他开源工具绑在一起。

开源软件的出现和发展由多种原因促成,以下是所有开源软件支持者谈论数年的一些原因,包括透明度、协作、灵活性以及合乎伦理道德。客户可能不希望使用无法获取源代码的新工具。否则,如果不开放源代码的工具无法使用,则必须重写代码。这是初创公司经常出现的状况。

开源软件并不意味着非盈利和免费,开发者有其更深远的目的。需要看到,开源软件的维护耗时且花费不菲。传闻 TensoRFlow 团队的成员数接近 1000 人。一家企业提供开源软件肯定有其商业目的,举例而言,越来越多的人使用某家公司的开源软件,那么该公司的名头就会越来越响,人们也就更加信任这家公司的专业技术,最终可能会购买他们的专有工具,甚至加入他们的团队。

这样的例子比比皆是。谷歌不遗余力地推广他们的工具,其目的是想用户使用其云服务。英伟达维护 cuDF,旨在售卖更多的 GPU。DatabRicks