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

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

3天内不再提示

管理 ML 模型部署中的权衡

茶壶茶茶 2022-07-21 09:19 次阅读

机器学习代码放在哪里——在云中、边缘设备上或前提上——总是需要权衡。这里有一些提示。

工程师经常需要就代码的放置位置做出重要决定:在云中、边缘设备上或本地。这个决定总是涉及权衡——考虑到适用于每组情况的软件、固件、开发工具和硬件的正确组合。在 Samsara 的机器学习和计算机视觉 (ML/CV) 团队中,我们构建模型并开发算法,帮助我们的客户提高其运营的安全性、效率和可持续性。例如,构建应用程序以实时检测和警告有风险的驾驶行为,并最终降低道路事故的频率。

在寻求构建 ML 解决方案时,运输、仓储或制造等行业的运营环境构成了独特的限制。例如,远程位置可能会因连接受限而出现瓶颈,或者拥有无法运行最新最好的模型的过时技术系统。这些限制,再加上这些应用程序的安全关键方面,需要低延迟、计算效率高的 ML 推理,因为往返网络延迟和参差不齐的蜂窝覆盖将消除在云中完全实现这些功能的可能性。因此,除了保证模型的准确性之外,模型还必须在与边缘硬件平台相关的更严格的计算、内存和延迟范围内运行。

可以想象,在为此类边缘部署选择模型时,需要分析和考虑许多权衡。以下是您可能会遇到的一些常见问题,以及如何处理它们。

首先,您必须考虑 ML 引擎的计算吞吐量和准确性之间的权衡。同样,由于蜂窝网络覆盖范围参差不齐,您无法在云中实现所有内容并相信数据可以可靠地交付。在车载高级驾驶员辅助系统 (ADAS) 的情况下,您也不能让笨重的摄像头或处理器挡住车辆的仪表板。您需要权衡这种权衡:一个更紧凑的平台(例如,类似于智能手机中使用的处理器),具有专门的片上系统硬件,可以处理图像和信号处理,同时仍然保留大量处理ML 模型有效运行的空间。

使用这个更紧凑的平台,您必须考虑您的功率预算,尤其是任何基于移动的应用程序。运行程序所消耗的功率越多,您必须消散的热能就越多,电池消耗的电量就越多。某些硬件协处理器支持某些指令集,并且每个计算单元的功率效率非常高。但是,并非所有数学运算都可以在这些指令集中准确地构建。在这些情况下,您必须回退到更通用的计算平台(如 GPUCPU),这些平台支持更多的数学运算,但更耗电。

移动友好型架构旨在利用硬件加速(例如 DSP),可以减少整体模型大小和内存消耗,但仍为您使用它的产品应用程序提供足够好的精度。在这些架构中,您再次面临一系列决策,包括模型准确性/延迟权衡以及是构建自己的 AI 解决方案还是利用外部 AI 服务提供商来训练和测试您的 ML 模型。

接下来,重要的是要考虑您的模型如何集成到所选硬件中。因为所有处理器都有不同的指令集来支持特定的操作,所以查看每个硬件平台的文档以了解这些优势如何影响您的特定代码会有所帮助。每个部署环境都有自己的一组内置特性。例如,tflite、TensorRT、SNPE 等有不同的支持操作集,所有这些都略有不同。无论您最终使用哪种芯片组,您仍然必须将所有数学计算硬塞到将执行这些计算的最终硬件中。

您可能会遇到的一个问题是部署环境可能不支持网络训练时使用的所有网络操作和层。此外,某些操作没有硬件加速实现,迫使您在 CPU 上运行这些元素,这可能会造成内存和性能瓶颈。其中一些不兼容性需要在训练过程中通过修改模型架构本身来解决,而另一些则需要在将模型转换为硬件兼容格式时加以解决。

最后一步是对最终模型版本进行基准测试,并将性能特征与原始规格进行比较。你必须要有创意并精简你的模型,这样它才能以低延迟运行。这包括删除模型操作并将不兼容操作的子图替换为硬件支持的操作以更快地运行。其他策略包括通道修剪、层折叠和权重量化。

归根结底,有时您可以让您的模型同时在设备和云中运行。但是,当您受到底层硬件性能特征、网络延迟和准确性要求的限制时,我们应该考虑在哪里以及如何运行模型。分割模型执行以在边缘设备或云上的后端服务中运行仍然是一门艺术,而不是科学。一个好的产品将整合对解决方案功能和客户需求、硬件限制以及平衡行为的深刻理解,以制定满足这些需求同时尊重物理约束的模型。

— Sharan Srinivasan 和 Brian Tuan 是 Samsara 机器学习和计算机视觉工程团队的软件工程师,Samsara是一家位于旧金山的全球互联运营云公司。在 Samsara,Srinivasan 和 Tuan 负责使用 Tensorflow、OpenCV、Pyspark 和 Go 解决各种机器学习以应对计算机视觉挑战,以构建在边缘运行的模型。


审核编辑 黄昊宇

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

    关注

    1

    文章

    2707

    浏览量

    47707
  • ML
    ML
    +关注

    关注

    0

    文章

    139

    浏览量

    34297
收藏 人收藏

    评论

    相关推荐

    基于 Renesas 的 RA8M1 实现 AI 和 ML 部署

    新的工作负载会增加功耗,尽管要求设计人员尽量降低功耗并加快产品上市时间。 设计人员需要一个计算选项,既能保持 MCU 的效率,又能增加专为低功耗应用定制的高性能功能。这一选项还应保留与传统 MCU 相关的简单部署模式,同时增加足够的功能,以支持 AI 和 ML 带来的复杂
    的头像 发表于 04-23 15:04 560次阅读
    基于 Renesas 的 RA8M1 实现 AI 和 <b class='flag-5'>ML</b> <b class='flag-5'>部署</b>

    使用CUBEAI部署tflite模型到STM32F0模型创建失败怎么解决?

    CRC IP,用MX生成工程时已经启用了CRC,代码也有。 但是依旧无法生成模型。 想问问该如何解决,还是说F0还是无法部署AI模型
    发表于 03-15 08:10

    使用ml configurator进行tflite网络模型的转换不成功怎么解决?

    使用ml configurator进行tflite网络模型的转换不成功,提示错误,请帮忙协助谢谢 [ERROR] Failed to run QEMU
    发表于 01-31 06:56

    【爱芯派 Pro 开发板试用体验】模型部署(以mobilenetV2为例)

    啊抱歉,上周得了一周的流感,人才活过来。。本来还想研究下sam它是怎么部署的,但是时间好像有点来不急,就讲个最简单的efficientNet吧。但是会仔细讲下使用模型部署,实际也就是推理引擎的全过程
    发表于 12-10 16:34

    人工智能大模型、应用场景、应用部署教程超详细资料

    部署过程的难度。教程中所使用的模型均为开源模型,同步提供了相应的下载链接,为客户节省宝贵的时间。 Adain风格迁移模型 这是一种风格迁
    发表于 11-13 14:49

    PODsys:大模型AI算力平台部署的开源“神器”

    模型是通用人工智能的底座,但大模型训练对算力平台的依赖非常大。大模型算力平台是指支撑大模型训练和推理部署的算力基础设施,包括业界最新的加速
    的头像 发表于 11-08 09:17 464次阅读
    PODsys:大<b class='flag-5'>模型</b>AI算力平台<b class='flag-5'>部署</b>的开源“神器”

    如何本地部署模型

    近期,openEuler A-Tune SIG在openEuler 23.09版本引入llama.cpp&chatglm-cpp两款应用,以支持用户在本地部署和使用免费的开源大语言模型,无需联网也能使用!
    的头像 发表于 10-18 11:48 1693次阅读
    如何本地<b class='flag-5'>部署</b>大<b class='flag-5'>模型</b>

    如何使用TensorFlow将神经网络模型部署到移动或嵌入式设备上

    有很多方法可以将经过训练的神经网络模型部署到移动或嵌入式设备上。不同的框架在各种平台上支持Arm,包括TensorFlow、PyTorch、Caffe2、MxNet和CNTK,如Android
    发表于 08-02 06:43

    开发和部署ML模型介绍

    实践中的机器学习: ML 工作流
    的头像 发表于 07-05 16:30 541次阅读
    开发和<b class='flag-5'>部署</b><b class='flag-5'>ML</b><b class='flag-5'>模型</b>介绍

    如何部署ML模型到Google云平台

    实践中的机器学习:在 Google 云平台上部署 ML 模型
    的头像 发表于 07-05 16:30 426次阅读
    如何<b class='flag-5'>部署</b><b class='flag-5'>ML</b><b class='flag-5'>模型</b>到Google云平台

    机器学习构建ML模型实践

    实践中的机器学习:构建 ML 模型
    的头像 发表于 07-05 16:30 457次阅读

    在OpenNCC上部署人脸检测模型

    电子发烧友网站提供《在OpenNCC上部署人脸检测模型.zip》资料免费下载
    发表于 06-27 10:34 0次下载
    在OpenNCC上<b class='flag-5'>部署</b>人脸检测<b class='flag-5'>模型</b>

    用于区分人类和大象的ML模型

    电子发烧友网站提供《用于区分人类和大象的ML模型.zip》资料免费下载
    发表于 06-14 11:02 0次下载
    用于区分人类和大象的<b class='flag-5'>ML</b><b class='flag-5'>模型</b>

    将Pytorch模型转换为DeepViewRT模型时出错怎么解决?

    我最终可以在 i.MX 8M Plus 处理器上部署 .rtm 模型。 我遵循了 本指南,我将 Pytorch 模型转换为 ONNX 模型,然后按照指南中的描述,我尝试将 ONNX
    发表于 06-09 06:42

    ML模型推向边缘实现了AI的新用例

    如前文所讨论的那样,ML模型通常依赖于大量的并行运算。本质上讲,它们需要原始的计算能力。但是,在算力和设备消耗的实际功率之间始终要进行权衡与取舍。要将ML
    的头像 发表于 05-09 09:51 619次阅读