写点什么

AI、ML 和数据工程 | InfoQ 趋势报告(2021 年)

2021 年 9 月 14 日

AI、ML和数据工程 | InfoQ趋势报告(2021年)

本文要点

  • 我们看到越来越多的公司正在使用深度学习算法。因此,我们将深度学习从创新者转移到了早期采用者的类别中。与此相关的是,深度学习也面临着新的挑战,比如在边缘设备上部署算法以及非常大的模型的训练。

  • 尽管采用的速度比较缓慢,但是现在有了更多的商用机器人平台。我们看到了在学术界之外的一些应用,但是相信未来会有更多未被发现的使用场景。

  • GPU 编程依然是一个很有前途的技术,但现在还没有得到充分的利用。除了深度学习之外,我们相信还有更多有趣的应用。

  • 通过使用像 Kubernetes 这样的技术,在典型的计算机堆栈上部署机器学习正变得越来越容易。我们看到不断出现的工具正在将越来多的组成部分实现了自动化,比如数据收集和重训练步骤。

  • AutoML 是一项很有前景的技术,它能够帮助数据科学家重新关注实际的问题域,而不是关注如何优化超参数。



InfoQ 的编辑每年都会讨论 AI、ML 和数据工程当前的状态,从而识别出作为软件工程师、架构师或数据科学家应该关注的关键趋势。我们将自己的讨论整理成技术采用曲线并附加相关的评论,以帮助读者了解事情的演变情况。我们还探讨了作为路线图和技能发展的一部分,你应该要考虑哪些东西。


我们还首次将这些讨论录制成了InfoQ Podcast上的特别节目Kimberly McGuire是 Bitcraze 的机器人工程师,每天的工作都在与自主无人机打交道,他加入了编辑部来分享他的经验和观点。

深度学习转移到了早期采用者中

尽管深度学习在 2016 年才开始引起我们的兴趣,但是我们现在决定将它从创新者(Innovator)类别转移至早期采用者(Early Adopter)。我们看到深度学习方面有两个主要的框架,分别是TensorFlowPytorch。两者在整个行业中都有广泛应用。我们应该承认,PyTorch 是学术研究领域的主导者,而 TensorFlow 是商业/企业领域的领导者。这两个框架在功能方面保持了相当的均衡,所以具体选择哪个框架取决于你在生产性能方面的要求。


我们注意到,越来越多的开发者和组织在收集和存储他们的数据时,都遵循这样的方式,那就是易于被深度学习算法处理,以便于“学习”与商业目标有关的东西。很多人专门为深度学习设置了他们的机器学习项目。TensorFlow 和 PyTorch 正在为多种类型的数据建立抽象层,并将大量的公共数据集也纳入到了他们的软件中。


我们还看到,用于深度学习的数据集的规模正在大幅度增加。我们看到,下一个挑战是借助分布式数据和并行训练实现的分布式训练。这种框架的例子有 FairScaleDeepSpeedHorovod。这就是为什么我们将“大规模分布式深度学习”引入创新者类别的主题列表中的原因。


我们现在在行业中看到的另一个挑战是与训练数据本身相关。一些公司没有大的数据集,这意味着他们能够从使用其特定领域的预训练模型中获益良多。由于创建数据集可能是一项成本高昂的工作,为模型选择合适的数据是一个新的挑战,工程团队必须学会如何解决这一点。

深度学习应用的边缘部署是一项挑战

目前,在边缘设备上运行 AI 依然存在挑战,比如手机、Raspberry Pi,甚至更小的微处理器。这里的挑战在于把大型集群上训练得到的模型部署到一个小型的硬件上。要实现这一点所要依赖的技术是网络权重的量化(为网络权重使用更少的比特)、网络修剪(移除贡献不大的权重)以及网络提炼(训练一个更小的神经网络来预测相同的内容)。例如,这可以通过谷歌的 TensorFlow light 和 NVIDIA 的 TensorRT 来实现。当我们缩小模型的时候,有时候确实会看到性能的下降,但是性能下降多少以及这是否是一个问题,则要取决于应用。


有趣的是,我们看到有些公司正在调整他们的硬件以更好地支持神经网络。在苹果设备以及拥有张量核心(tensor core)的 NVIDIA 显卡中,我们都看到了这一点。谷歌新的 Pixel 手机也有一个张量芯片,可以在本地运行神经网络。我们认为这是一个积极的趋势,它将使机器学习能够用到比现在更多的环境中。

用于有限应用的商业机器人平台变得越来越流行

在家庭中,机器人吸尘器已经非常普遍。一个新的机器人平台正变得越来越流行,它就是Spot:Boston Dynamics 的行走机器人。它正被警察局和军队用于日常监视这样的场景中。尽管这类机器人平台很成功,但它们仍然只能在有限的范围内使用,而且是在非常有限的场景下。然而,随着人工智能能力的提高,我们希望在未来看到更多的使用案例。


一种正在走向成功的机器人是自动驾驶汽车。Waymo 和其他公司正在测试内部没有安全驾驶员的汽车,这意味着这些公司对这些车辆的能力充满信心。我们认为,大规模部署所面临的挑战在于扩大这些车辆的可行驶区域,并在上路前证明这些汽车是安全的。

GPU 和 CUDA 编程允许将问题进行并行化处理

GPU 编程方式允许程序执行大规模的并行任务。如果程序员的目标可以通过将一个任务分割成许多互不依赖的小子任务来实现的话,那么这个程序就适合用 GPU 进行编程。不幸的是,用 NVIDIA 公司的 GPU 编程语言CUDA进行编程,对许多开发人员来说仍然是很困难的。有一些框架可以为我们提供帮助,如PyTorchNumbaPyCUDA,它们应该会使这种编程方式更容易进入通用市场。现在,大多数开发人员正在使用 GPU 实现深度学习应用,但我们希望在未来能够看到更多的应用。

半监督自然语言处理在基准测试中表现良好

GPT-3 和其他类似的语言模型在“通用自然语言 API”方面的表现很突出。它们可以处理各种各样的输入,并且正在打破许多现有的基准。我们看到,以半监督(semi-supervised)的方式使用的数据越多,最终结果就越好。它们不仅在正常的基准上表现良好,而且同时对许多基准进行了归纳概括。


关于这些神经网络的架构,我们看到人们从 LSTM 这样的递归神经网络转向了 transformer 架构。训练的模型是非常巨大的,要使用大量的数据,并花费大量的钱来进行训练。针对产生这些模型所耗费的资金和能量,引发了一些相关的批评。大模型的另一个问题是推理速度。当为这些算法实现实时应用时,它们可能不够快。

MLOps 和 Data ops 能够更容易地实现训练和重新训练算法

我们看到,所有主要的云供应商都支持通用的容器编排框架,如Kubernetes,它们也越来越多地集成了对基于 ML 的使用场景的良好支持。这意味着我们可以在云平台上轻松地将数据库部署为容器,并将其进行扩展和伸缩。这样做的一个好处是,它有内置的监控。值得注意的一个工具是KubeFlow,它可以在 Kubernetes 上协调复杂的工作流程。


关于在边缘上部署算法,我们看到了工具上的改进。比如K3s,这是适用于边缘的 Kubernetes,还有KubeEdge,它与 K3s 有所不同。虽然这两种产品都还处于初始阶段,但它们有望改善基于容器的人工智能在边缘的部署。


我们还看到一些支持完整的 ML Ops 生命周期的产品正在出现。其中一个这样的工具是AWS Sage maker,它可以帮助我们轻松地训练模型。我们相信,最终 ML 将被集成到完整的 DevOps 生命周期中。这将创造一个反馈循环,我们部署一个应用程序,监控应用程序,并根据正在发生的情况在重新部署之前回过头去做一些改变。

AutoML 允许将 ML 生命周期的一部分自动化

我们看到使用所谓的“AutoML”的人稍微有所增加:在这种技术中,机器学习生命周期的一部分会被自动化。程序员可以专注于获得正确的数据和模型的大致概念,而计算机可以找出最佳的超参数(hyperparameter)。现在,这主要用于寻找神经网络的架构,以及寻找最佳的超参数来训练模型。

我们认为这是一个很好的进步,因为它意味着,在将业务逻辑转化为机器学习可以解决的格式方面,机器学习工程师和数据科学家将发挥更大的作用。我们认为这种努力使得跟踪自己正在进行的实验变得更加重要。像MLflow这样的技术可以帮助跟踪实验。


总而言之,我们认为问题空间正在从“寻找最好的模型来捕获你的数据”转向“寻找最好的数据来训练你的模型”。你的数据必须是高质量的,你的数据集必须是平衡的,而且它必须包含应用的所有可能的边缘场景。要做到这一点目前主要是手工实现的,并且需要对问题领域有很好的理解。

成为机器学习工程师都要学些什么

我们认为,过去几年中,机器学习在教育方面也发生了变化。从经典文献入手可能不再是最好的方法了,因为过去几年有太多的进步了。我们建议挑选一个深度学习框架入门,如 TensorFlow 或 PyTorch。

挑选一个专注的学科是个好主意。在 InfoQ,我们将学科划分为以下几类:数据科学家、数据工程师、数据分析师或数据运维。根据你所选的专业,你要学习更多关于编程、统计或神经网络和其他算法的知识。

作为 InfoQ 的编辑,我们想分享的一点是,建议参加Kaggle比赛。你可以在你想了解的领域中挑选一个问题,比如图像识别或语义分割。通过创建一个好的算法并在 Kaggle 上提交结果,你会看到你的解决方案与参加同一比赛的其他 Kaggle 用户相比处于什么样的水准。这样你会有动力在 Kaggle 排行榜上获得更高的排名,通常比赛的获胜者会在比赛结束后写下他们的获胜方法都采用了哪些步骤。这样,你就会不断地学到更多的技巧,从而可以直接应用到你的问题领域。


最后但同样重要的是,InfoQ 也有很多资源。我们经常发布关于机器学习的最新和最重要的新闻、文章、演讲和播客。你也可以看看我们的文章如何成功应聘为机器学习工程师。最后,请参加 11 月举办的QCon plus会议,并参加“ML 无处不在”的主题。

作者简介:


Roland Meertens 是一名计算机视觉工程师,在 Autonomous Intelligent Driving 公司从事自动驾驶车辆的智能计算机视觉算法。在此之前,曾研究过自然语言处理(NLP)问题的深度学习方法、社会机器人学以及无人机的计算机视觉、机器学习和计算机视觉问题。他所做的有趣的事情是神经机器翻译、小型无人机的避障,以及为老年人服务的社交机器人。除了在 InfoQ 上发布关于机器学习的新闻,他有时也会在他的博客 pinchofintelligence.com 和 twitter(https://twitter.com/rolandmeertens)上发表文章。在业余时间,他喜欢在树林里跑步,并参加障碍跑。


Kimberly McGuire 目前在 Bitcraze AB 公司工作,担任软件开发人员。2019 年,她获得了荷兰代尔夫特理工大学航空航天工程学院的博士学位。主题是关于“用袖珍无人机进行蜂群探索”。McGuire 研究了在计算能力有限的 MAV 上完成室内探索的生物启发方式,这些 MAV 可以放在手掌上。除此之外,她对具身人工智能(embodied artificial intelligence)有广泛的兴趣,并努力跟上最新的发展。


Srini Penchikala 是德克萨斯州奥斯汀的一名高级 IT 架构师。他在软件架构、设计和开发方面有超过 25 年的经验,目前专注于云原生架构、微服务和服务网格、云数据管道和持续交付。Penchikala 撰写了Big-Data Processing with Apache Spark,并与人合写了 Manning 出版的“Spring Roo in Action”。他经常在会议上发言,是一名大数据培训师,并在各种技术网站上发表了多篇文章。


Raghavan "Rags" Srinivas (@ragss) 是一名架构师/开发人员布道者,旨在帮助开发人员建立高度可扩展和可用的系统。作为 Rackspace 公司的 OpenStack 倡导者和解决方案架构师,他不断面临从低级别的基础设施到高级别的应用问题的挑战。他主要关注的领域是分布式系统,专门研究云计算和大数据。在 Hadoop、HBase 和 NoSQL 的早期阶段,他都从事过相关的工作。他曾经多次获得 JavaOne rock star 称号。


Anthony Alford 是 Genesys 的开发组经理,他正在从事与客户体验有关的几个人工智能和 ML 项目。在设计和构建可扩展软件方面,他有超过 20 年的经验。Anthony 拥有电子工程博士学位,专业是智能机器人软件,曾在人与人工智能交互和 SaaS 业务优化的预测分析领域研究过各种问题。


查看英文原文:

Article: AI, ML and Data Engineering InfoQ Trends Report - August 2021

2021 年 9 月 14 日 15:24209

评论

发布
暂无评论
发现更多内容

直播回顾丨鉴释首席架构师刘新铭为您解读“第一性原则”

鉴释

软件开发 代码质量 软件质量与安全

六种主要服务器管理协议简单概述-行云管家

行云管家

行云管家 服务器协议 服务器管理

postgresql安装

阿呆

postgresql

揭秘百度微服务监控:百度游戏服务监控的演进

百度开发者中心

云计算 微服务 最佳实践 方法论 云原生

一套终结微服务!阿里大牛亲荐SpringCloud进阶手抄本限时开源

Java领路人

Java 编程 程序员 面试 架构师

创业邦专访丨兼容国内外市场的代码分析软件,鉴释科技帮助企业减少bug发生率

鉴释

创业公司

BoCloud博云:ESB老旧力不能支,微服务独立自治强势替代

BoCloud博云

微服务

gitlab忘记root用户的密码

阿呆

gitlab #GitLab

架构实战训练营模块三课后作业

Clarke

51CTO专访|鉴释首席架构师刘新铭:让软件开发更安全、更高效

鉴释

编译器

我们三岁啦!

鉴释

性能测试误差对比研究(四)

FunTester

性能测试 接口测试 测试框架 测试开发 误差分析

上架一夜遭全网封杀!阿里大牛熬夜半年手码的Java面试指南太强了

白亦杨

论工作几年深陷业务代码的程序员如何实现自我提升

北游学Java

Java 程序人生

围观|解读新一代企业数字化架构的“三驾马车”

尔达Erda

开源 DevOps 云原生 数字化转型 数字化

【报名】百度EasyDL研讨会:揭秘智能化硬件AI应用的技术难点与行业落地

百度大脑

人工智能 智能化

鉴释课堂丨编译器技术入门知识一网打尽

鉴释

编译器 编译器原理

性能测试误差对比研究(三)

FunTester

性能测试 接口测试 测试框架 误差分析

金钟罩还是铁布衫?TcaplusDB定时备份助你万无一失!

数据人er

数据库 nosql tencentdb TcaplusDB

百度前端三面面试题全部公开,三面的最后一个问题令我窒息

前端依依

百度 面试 前端开发 经验总结 大厂面试真题

工程师文化落地的几点思考

baiyutang

敏捷 敏捷开发 精益开发 精益思想 敏捷管理

2021全国人工智能师资培训走进北理工,百度飞桨助力高校教师提升AI能力

百度大脑

人工智能 高校

如何使用 Kind 快速创建 K8s 集群?

尔达Erda

开源 云原生 k8s PaaS kind

上架一夜遭全网封杀!阿里大牛熬夜半年手码的Java面试指南太强了

Java 白

Java 编程 程序员 架构师

阿那亚:靠客户反馈驱动企业成长

石云升

商业价值 服务 7月日更

没想到专科的我,仅凭阿里这份JDK源码笔记居然拿到了年薪30W的offer

Java架构师迁哥

RTC月度小报5月丨教育aPaaS灵动课堂升级、抢先体验VUE版 Agora Web SDK、声网Agora与HTC达成合作

声网Agora

月度小报 行业深度

Apache APISIX 和 Envoy 性能大比拼

Apache APISIX 中国社区

网关 APISIX envoy

成为Linux大佬的学习之路-规划

学神来啦

Linux 运维 linux运维 linux学习

VSCode 断点调试 electron-vue 主进程

admin

Vue 调试 Electron

hbase运维故障案例分析

GrowingIO技术专栏

大数据 运维 HBase

AI、ML和数据工程 | InfoQ趋势报告(2021年)-InfoQ