0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

机器学习部署的难点

汽车玩家 来源: AI公园 作者:Alexandre Gonfalonier 2020-05-04 12:05 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

导读

根据我作为顾问的经验,只有非常少的机器学习项目能够投入生产。一个人工智能项目可能会因为多种原因而失败,其中之一就是部署。

在做了几个人工智能项目之后,我意识到,对于那些愿意通过人工智能创造价值的公司来说,大规模部署机器学习(ML)模型是最重要的挑战之一。

根据我作为顾问的经验,只有非常少的机器学习项目能够投入生产。一个人工智能项目可能会因为多种原因而失败,其中之一就是部署。对于每个决策者来说,完全理解部署是如何工作的,以及在达到这一关键步骤时如何降低失败的风险是非常关键的。

部署的模型可以定义为无缝集成到生产环境中的任何代码单元,并且可以接收输入并返回输出。

我曾经看到,为了将他们的工作投入生产,数据科学家通常必须将他或她的数据模型进行工程实现。在这一步中,出现了一些最常见的数据科学问题。

挑战

机器学习有一些独特的特性,使得大规模部署变得更加困难。这是我们正在处理的一些问题:

管理数据科学语言

你可能知道,机器学习应用程序通常由使用不同的编程语言编写组成。它们之间的相互作用并不是很好。我曾多次看到,机器学习pipeline从R开始,在Python中继续,并以另一种语言结束。

一般来说,Python和R是机器学习应用程序中最流行的语言,但我注意到,由于各种原因(包括速度),很少使用这些语言部署生产模型。将Python或R模型移植到像c++Java这样的生产语言中是很复杂的,并且通常会降低原始模型的性能(速度、准确性等)。

当软件的新版本发布时,R包可能会崩溃。此外,R速度慢,无法高效地处理大数据。

对于原型设计来说,它是一种很棒的语言,因为它允许简单的交互和解决问题,但是需要将它翻译成Python或c++或Java来进行生产。

诸如Docker之类的容器化技术可以解决由大量工具引入的不兼容性和可移植性挑战。然而,自动依赖项检查、错误检查、测试和构建工具将不能解决跨越语言障碍的问题。

可复现性也是一个挑战。实际上,数据科学家可以使用不同的编程语言、库或同一库的不同版本来构建模型的多个版本。手动跟踪这些依赖关系很困难。为了解决这些挑战,需要一个机器学习生命周期工具,它可以在训练阶段自动跟踪并记录这些依赖项,并将它们作为代码的配置,然后将它们与训练的模型一起打包到一个随时可以部署的工件中。

我建议你使用一种工具或平台,它可以立即将代码从一种语言转换为另一种语言,或者允许你的数据科学团队在API背后部署模型,以便在任何地方集成它们。

计算能力和GPU

神经网络通常会非常深,这意味着训练和使用它们进行推理需要大量的计算能力。通常,我们希望我们的算法运行得更快,对于很多用户来说,这可能是一个障碍。

此外,现在许多生产上的机器学习都依赖于GPU。然而,它们既稀缺又昂贵,这很容易给机器学习的扩展任务增加另一层复杂性。

可移植性

模型部署的另一个有趣的挑战是缺乏可移植性。我注意到这通常是遗留分析系统的问题。由于缺乏将软件组件轻松迁移到另一个主机环境并在那里运行的能力,组件可能会被锁定在特定的平台上。这可能为数据科学家在创建和部署模型时制造障碍。

可扩展性

对于许多AI项目来说,可扩展性是一个真正的问题。实际上,你需要确保你的模型能够扩展并满足生产中性能和应用程序需求的增长。在项目开始时,我们通常依赖于可管理范围内的相对静态数据。随着模型进入生产环境,它通常会接触到大量的数据和数据传输模式。你的团队将需要一些工具来监视和解决性能和可扩展性方面的问题,这些问题将随着时间的推移而出现。

我认为,可扩展性问题可以通过采用一致的、基于微服务的方法来进行生产分析来解决。团队应该能够通过简单的配置更改快速地将模型从批处理迁移到随需应变的流处理。类似地,团队应该有扩展计算和内存占用的选项,以支持更复杂的工作负载。

机器学习峰值计算

一旦你的算法被训练好了,它们并不是时时刻刻被使用——你的用户只会在需要的时候调用它们。

这可能意味着你只需要支持上午8:00时的100个API调用,而在8:30时需要支持10,000个API调用。

根据我的经验,我可以告诉你,使用动态扩大或缩小你的服务来确保不为你不需要的服务器付费是一个挑战

由于所有这些原因,只有少数数据科学项目最终真正进入生产系统。

模型的稳定和鲁棒

我们总是花很多时间准备模型。我们需要把原型变得稳定和鲁棒,这样它就可以实际服务于大量的用户,这通常需要大量的工作。

在许多情况下,整个模型需要用一种适合体系结构的语言重新编码。仅这一点往往就会导致大量痛苦的工作,从而导致几个月的部署延迟。完成之后,必须将其集成到公司的IT体系结构中,包括前面讨论的所有库问题。此外,在生产环境中访问数据也常常是一项困难的任务。

更多的挑战

在做项目的过程中,我也注意到了以下问题:

如果我们改变了一个输入特征,那么其余特征的重要性、权重或使用可能也会改变。机器系统必须设计得易于跟踪特征工程和选择更改。

当模型被不断迭代和微妙地改变时,跟踪配置更新同时保持配置的清晰性和灵活性将成为额外的负担。

有些数据输入可能随时间而改变。我们需要一种方法来理解和跟踪这些变化,以便能够完全理解我们的系统。

在机器学习应用程序中会出现一些传统的单元/集成测试无法识别的错误。部署错误的模型版本、忘记某个特征以及在过时的数据集上进行训练只是其中的几个例子。

测试和验证的问题

正如你可能已经知道的,模型由于数据更改、新方法等而不断发展。因此,每次发生这样的变化时,我们都必须重新验证模型的性能。这些验证步骤引入了几个挑战:

除了在离线测试中验证模型外,评估生产模型的性能也非常重要。通常,我们在部署策略和监视部分对此进行规划。

与常规软件应用程序相比,机器学习模型需要更频繁地更新。

自动化机器学习平台

有些人可能听说过自动化机器学习平台。这可能是一个快速生成模型的好方法。此外,该平台可以支持多个模型的开发和比较,因此企业可以选择最适合其预测准确性、延迟和计算资源需求的模型。

多达90%的企业机器学习模型可以自动开发。数据科学家可以与业务人员合作,开发目前自动化无法实现的一小部分模型

许多模型经历了漂移(性能随时间降低)。因此,需要监视已部署的模型。每个部署的模型都应该记录所有的输入、输出和异常。模型部署平台需要提供日志存储和模型性能可视化。密切关注模型性能是有效管理机器学习模型生命周期的关键。

必须通过部署平台监视的关键元素

发布策略

探索许多不同的方式来部署你的软件,“shadow mode”和“Canary”部署对机器学习应用程序特别有用。在“shadow mode”中,你捕获生产中新模型的输入和预测,而实际上并不服务于这些预测。相反,你可以自由地分析结果,如果检测到错误,则不会产生重大后果。

当你的体系结构成熟时,请考虑启用渐进的或“Canary”版本。这种做法是指你可以向一小部分客户发布产品,而不是“要么全部发布,要么什么都不发布”。这需要更成熟的工具,但它可以最小化错误。

总结

机器学习仍处于初级阶段。实际上,软件和硬件组件都在不断发展,以满足机器学习的当前需求。

Docker/Kubernetes和微服务体系结构可以用来解决异构性和基础设施方面的挑战。现有的工具可以单独地极大地解决一些问题。我认为,将所有这些工具结合起来以使ML运作化是当今最大的挑战。

部署机器学习是并且将继续是困难的,这只是组织将需要处理的一个现实。值得庆幸的是,一些新的架构和产品正在帮助数据科学家。此外,随着越来越多的公司扩展数据科学操作,他们也在实现使模型部署更容易的工具。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 机器学习
    +关注

    关注

    67

    文章

    8571

    浏览量

    137445
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    人工智能深度学习系统班v12.0 第12期咕泡

    突破学习难点,深度学习进阶心得 在深度学习的这条路上,入门并不算太难。跑通一个MNIST手写数字识别、用预训练模型做个图像分类,甚至在CIFAR-10上把准确率刷到90%以上,这些只要
    的头像 发表于 05-08 18:10 904次阅读

    【幸狐Omni3576边缘计算套件试用体验】OpenClaw 板端部署

    【幸狐Omni3576边缘计算套件试用体验】OpenClaw 板端部署 本文介绍了幸狐Omni3576边缘计算套件实现 OpenClaw 板端部署的项目设计,包括环境搭建、OpenClaw 部署
    发表于 04-19 20:56

    泰克科技怎么解决人形机器人真正的测试难点

    刚刚结束的焉知机器人大会,再次把人形机器人推到了聚光灯下。从整机厂、核心零部件企业,到感知、控制、执行与电源相关的上下游玩家,几乎所有讨论都在传递同一个信号:人形机器人,正在从“概念热”走向“工程热”。
    的头像 发表于 04-03 09:19 754次阅读

    英飞凌携手NVIDIA,依托数字孪生技术加速部署安全可靠的机器

    管理系统及安全领域的优势,以及 NVIDIA 的 AI、机器人和仿真平台,共同助力生态系统设计并推动人形机器人的部署
    发表于 03-19 16:52 1379次阅读
    英飞凌携手NVIDIA,依托数字孪生技术加速<b class='flag-5'>部署</b>安全可靠的<b class='flag-5'>机器</b>人

    人工智能与机器学习在这些行业的深度应用

    自人工智能和机器学习问世以来,多个在线领域的数字化格局迎来了翻天覆地的变化。这些技术从诞生之初就为企业赋予了竞争优势,而在线行业正是受其影响最为显著的领域。人工智能(AI)与机器学习
    的头像 发表于 02-04 14:44 793次阅读

    机器学习和深度学习中需避免的 7 个常见错误与局限性

    无论你是刚入门还是已经从事人工智能模型相关工作一段时间,机器学习和深度学习中都存在一些我们需要时刻关注并铭记的常见错误。如果对这些错误置之不理,日后可能会引发诸多麻烦!只要我们密切关注数据、模型架构
    的头像 发表于 01-07 15:37 413次阅读
    <b class='flag-5'>机器</b><b class='flag-5'>学习</b>和深度<b class='flag-5'>学习</b>中需避免的 7 个常见错误与局限性

    基于ETAS嵌入式AI工具链将机器学习模型部署到量产ECU

    AI在汽车行业的应用日益深化,如何将机器学习领域的先进模型(如虚拟传感器)集成到ECU软件中,已成为业界面临的核心挑战。
    的头像 发表于 12-24 10:55 6527次阅读
    基于ETAS嵌入式AI工具链将<b class='flag-5'>机器</b><b class='flag-5'>学习</b>模型<b class='flag-5'>部署</b>到量产ECU

    探索RISC-V在机器人领域的潜力

    SLAM等轻量级算法时表现出了不错的性能,CPU占用率在可接受范围内。整个系统响应及时,证明了MUSE Pi Pro完全有能力作为小型移动机器人的“大脑”。 四、 其他功能浅尝 • AI模型部署
    发表于 12-03 14:40

    今日看点:智元推出真机强化学习;美国软件公司SAS退出中国市场

    智元推出真机强化学习机器人训练周期从“数周”减至“数十分钟”   近日,智元机器人宣布其研发的真机强化学习技术,已在与龙旗科技合作的验证产线中成功落地。据介绍,此次落地的真机强化
    发表于 11-05 09:44 1204次阅读

    半导体电镀的难点分析

    半导体电镀工艺面临多重技术挑战,这些难点源于微观尺度下的物理化学效应与宏观工艺控制的相互制约。以下是关键难点的深度剖析: 一、均匀性控制困境 在晶圆级制造中,电流密度分布的自然梯度导致边缘效应显著
    的头像 发表于 10-09 13:30 1122次阅读

    如何在机器视觉中部署深度学习神经网络

    人士而言往往难以理解,人们也常常误以为需要扎实的编程技能才能真正掌握并合理使用这项技术。事实上,这种印象忽视了该技术为机器视觉(乃至生产自动化)带来的潜力,因为深度学习并非只属于计算机科学家或程序员。 从头开始:什么
    的头像 发表于 09-10 17:38 1135次阅读
    如何在<b class='flag-5'>机器</b>视觉中<b class='flag-5'>部署</b>深度<b class='flag-5'>学习</b>神经网络

    明阳 IPv6 解决方案,精准扫清深化部署中的难点与痛点

    随着IPv4地址的枯竭和IPv6规模化部署的加速,企业网络和应用系统向IPv6迁移已成为不可逆转的趋势。然而,在实际推进过程中,企业往往面临诸多棘手问题。难点一:缺乏IPv6深化部署发展情况监测能力
    的头像 发表于 08-19 14:28 1876次阅读
    明阳 IPv6 解决方案,精准扫清深化<b class='flag-5'>部署</b>中的<b class='flag-5'>难点</b>与痛点

    FPGA在机器学习中的具体应用

    随着机器学习和人工智能技术的迅猛发展,传统的中央处理单元(CPU)和图形处理单元(GPU)已经无法满足高效处理大规模数据和复杂模型的需求。FPGA(现场可编程门阵列)作为一种灵活且高效的硬件加速平台
    的头像 发表于 07-16 15:34 3193次阅读

    【Banana Pi BPI-RV2开发板试用体验】部署内网穿透

    支持,但已经不再推荐。 1. 在具有公网 IP 的机器部署 frps 部署 frps 并编辑 frps.toml 文件。以下是简化的配置,其中设置了 frp 服务器用于接收客户端连接的端口和简单的认证
    发表于 06-29 20:05

    边缘计算中的机器学习:基于 Linux 系统的实时推理模型部署与工业集成!

    你好,旅行者!欢迎来到Medium的这一角落。在本文中,我们将把一个机器学习模型(神经网络)部署到边缘设备上,利用从ModbusTCP寄存器获取的实时数据来预测一台复古音频放大器的当前健康状况。你将
    的头像 发表于 06-11 17:22 1207次阅读
    边缘计算中的<b class='flag-5'>机器</b><b class='flag-5'>学习</b>:基于 Linux 系统的实时推理模型<b class='flag-5'>部署</b>与工业集成!