网站建设方案书应急处置方案,google搜索首页,专业的微商代运营团队,自己建网站做电商还赚钱吗本文要点
我们看到越来越多的公司正在使用深度学习算法。因此#xff0c;我们将深度学习从创新者转移到了早期采用者的类别中。与此相关的是#xff0c;深度学习也面临着新的挑战#xff0c;比如在边缘设备上部署算法以及非常大的模型的训练。尽管采用的速度比较缓慢#…本文要点
我们看到越来越多的公司正在使用深度学习算法。因此我们将深度学习从创新者转移到了早期采用者的类别中。与此相关的是深度学习也面临着新的挑战比如在边缘设备上部署算法以及非常大的模型的训练。尽管采用的速度比较缓慢但是现在有了更多的商用机器人平台。我们看到了在学术界之外的一些应用但是相信未来会有更多未被发现的使用场景。GPU 编程依然是一个很有前途的技术但现在还没有得到充分的利用。除了深度学习之外我们相信还有更多有趣的应用。通过使用像 Kubernetes 这样的技术在典型的计算机堆栈上部署机器学习正变得越来越容易。我们看到不断出现的工具正在将越来多的组成部分实现了自动化比如数据收集和重训练步骤。AutoML 是一项很有前景的技术它能够帮助数据科学家重新关注实际的问题域而不是关注如何优化超参数。 InfoQ 的编辑每年都会讨论 AI、ML 和数据工程当前的状态从而识别出作为软件工程师、架构师或数据科学家应该关注的关键趋势。我们将自己的讨论整理成技术采用曲线并附加相关的评论以帮助读者了解事情的演变情况。我们还探讨了作为路线图和技能发展的一部分你应该要考虑哪些东西。
我们还首次将这些讨论录制成了InfoQ Podcast上的特别节目。Kimberly McGuire是 Bitcraze 的机器人工程师每天的工作都在与自主无人机打交道他加入了编辑部来分享他的经验和观点。
深度学习转移到了早期采用者中
尽管深度学习在 2016 年才开始引起我们的兴趣但是我们现在决定将它从创新者Innovator类别转移至早期采用者Early Adopter。我们看到深度学习方面有两个主要的框架分别是TensorFlow和Pytorch。两者在整个行业中都有广泛应用。我们应该承认PyTorch 是学术研究领域的主导者而 TensorFlow 是商业/企业领域的领导者。这两个框架在功能方面保持了相当的均衡所以具体选择哪个框架取决于你在生产性能方面的要求。
我们注意到越来越多的开发者和组织在收集和存储他们的数据时都遵循这样的方式那就是易于被深度学习算法处理以便于“学习”与商业目标有关的东西。很多人专门为深度学习设置了他们的机器学习项目。TensorFlow 和 PyTorch 正在为多种类型的数据建立抽象层并将大量的公共数据集也纳入到了他们的软件中。
我们还看到用于深度学习的数据集的规模正在大幅度增加。我们看到下一个挑战是借助分布式数据和并行训练实现的分布式训练。这种框架的例子有 FairScale、DeepSpeed和Horovod。这就是为什么我们将“大规模分布式深度学习”引入创新者类别的主题列表中的原因。
我们现在在行业中看到的另一个挑战是与训练数据本身相关。一些公司没有大的数据集这意味着他们能够从使用其特定领域的预训练模型中获益良多。由于创建数据集可能是一项成本高昂的工作为模型选择合适的数据是一个新的挑战工程团队必须学会如何解决这一点。
深度学习应用的边缘部署是一项挑战
目前在边缘设备上运行 AI 依然存在挑战比如手机、Raspberry Pi甚至更小的微处理器。这里的挑战在于把大型集群上训练得到的模型部署到一个小型的硬件上。要实现这一点所要依赖的技术是网络权重的量化为网络权重使用更少的比特、网络修剪移除贡献不大的权重以及网络提炼训练一个更小的神经网络来预测相同的内容。例如这可以通过谷歌的 TensorFlow light 和 NVIDIA 的 TensorRT 来实现。当我们缩小模型的时候有时候确实会看到性能的下降但是性能下降多少以及这是否是一个问题则要取决于应用。
有趣的是我们看到有些公司正在调整他们的硬件以更好地支持神经网络。在苹果设备以及拥有张量核心tensor core的 NVIDIA 显卡中我们都看到了这一点。谷歌新的 Pixel 手机也有一个张量芯片可以在本地运行神经网络。我们认为这是一个积极的趋势它将使机器学习能够用到比现在更多的环境中。
用于有限应用的商业机器人平台变得越来越流行
在家庭中机器人吸尘器已经非常普遍。一个新的机器人平台正变得越来越流行它就是SpotBoston Dynamics 的行走机器人。它正被警察局和军队用于日常监视这样的场景中。尽管这类机器人平台很成功但它们仍然只能在有限的范围内使用而且是在非常有限的场景下。然而随着人工智能能力的提高我们希望在未来看到更多的使用案例。
一种正在走向成功的机器人是自动驾驶汽车。Waymo 和其他公司正在测试内部没有安全驾驶员的汽车这意味着这些公司对这些车辆的能力充满信心。我们认为大规模部署所面临的挑战在于扩大这些车辆的可行驶区域并在上路前证明这些汽车是安全的。
GPU 和 CUDA 编程允许将问题进行并行化处理
GPU 编程方式允许程序执行大规模的并行任务。如果程序员的目标可以通过将一个任务分割成许多互不依赖的小子任务来实现的话那么这个程序就适合用 GPU 进行编程。不幸的是用 NVIDIA 公司的 GPU 编程语言CUDA进行编程对许多开发人员来说仍然是很困难的。有一些框架可以为我们提供帮助如PyTorch、Numba和PyCUDA它们应该会使这种编程方式更容易进入通用市场。现在大多数开发人员正在使用 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