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

    文章

    3160

    浏览量

    48703
  • ML
    ML
    +关注

    关注

    0

    文章

    145

    浏览量

    34598
收藏 人收藏

    评论

    相关推荐

    AI模型部署管理的关系

    AI模型部署管理是AI项目成功的两大支柱,它们之间既相互独立又紧密相连,共同推动着AI技术从实验室走向实际应用。
    的头像 发表于 11-21 10:02 62次阅读

    YOLOv6在LabVIEW的推理部署(含源码)

    YOLOv6 是美团视觉智能部研发的一款目标检测框架,致力于工业应用。如何使用python进行该模型部署,官网已经介绍的很清楚了,但是对于如何在LabVIEW实现该模型
    的头像 发表于 11-06 16:07 170次阅读
    YOLOv6在LabVIEW<b class='flag-5'>中</b>的推理<b class='flag-5'>部署</b>(含源码)

    企业AI模型部署怎么做

    AI模型部署作为这一转型过程的关键环节,其成功实施对于企业的长远发展至关重要。在此,AI部落小编为您介绍企业AI模型部署的步骤以及注意事项
    的头像 发表于 11-04 10:15 100次阅读

    llm模型本地部署有用吗

    ,将这些模型部署到本地环境可能会带来一些挑战和优势。 1. LLM模型概述 大型语言模型(LLM)通常是基于深度学习的神经网络模型,它们能够
    的头像 发表于 07-09 10:14 395次阅读

    PerfXCloud大模型开发与部署平台开放注册

    PerfXCloud 介绍 PerfXCloud是澎峰科技为开发者和企业量身打造的AI开发和部署平台。它专注于满足大模型的微调和推理需求,为用户提供极致便捷的一键部署体验。 PerfXCloud为算
    的头像 发表于 07-02 10:27 352次阅读
    PerfXCloud大<b class='flag-5'>模型</b>开发与<b class='flag-5'>部署</b>平台开放注册

    使用TVM量化部署模型报错NameError: name \'GenerateESPConstants\' is not defined如何解决?

    各位好,我在使用TVM部署模型时,遇到一下错误,请问如何解决?我进esp.py文件看,有如下两个函数是找不到定义的: GenerateESPConstants(), ExtractConstantsFromPartitionedFunction(),
    发表于 06-28 10:50

    模型端侧部署加速,都有哪些芯片可支持?

    电子发烧友网报道(文/李弯弯)大模型在端侧部署是指将大型神经网络模型部署在移动终端设备上,使这些设备能够直接运行这些模型,从而执行各种人工智
    的头像 发表于 05-24 00:14 3958次阅读

    基于stm32h743IIK在cubeai上部署keras模型模型输出结果都是同一组概率数组,为什么?

    基于stm32h743IIK,在cubeai上部署keras模型模型输出结果都是同一组概率数组,一点也搞不明白,看社区也有相同的问题,但没有解决方案
    发表于 05-20 08:18

    使用 Renesas RA8M1 MCU 快速地部署强大高效的 AI 和 ML 功能

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

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

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

    边缘侧部署模型优势多!模型量化解决边缘设备资源限制问题

    电子发烧友网报道(文/李弯弯)大模型的边缘部署是将大模型部署在边缘设备上,以实现更快速、更低延迟的计算和推理。边缘设备可以是各种终端设备,如智能手机、平板电脑、智能家居设备等。通过将大
    的头像 发表于 01-05 00:06 3347次阅读

    【爱芯派 Pro 开发板试用体验】人体姿态估计模型部署前期准备

    部署模型的整体架构。接下来就回到最开始定的主线上了——人体姿态估计。这篇文章就是记录对一些轻量化人体姿态估计模型的调研,和前期准备。 1、人体姿态估计任务介绍 下面对人体姿态估计任务做一个简单的介绍
    发表于 01-01 01:04

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

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