云边协同与人工智能AI的深度融合(云端训练、边端推理)

在面向物联网、大流量等场景下,为了满足更广连接、更低时延、更好控制等需求,云计算在向一种更加全局化的分布式节点组合形态进阶,边缘计算是其向边缘侧分布式拓展的新触角。

以物联网场景举例,设备产生大量数据,上传到云端进行处理,会对云端造成巨大压力,为分担云端的压力,边缘计算节点可以负责自己范围内的数据计算。

同时,经过处理的数据从边缘节点汇聚到中心云,云计算做大数据分析挖掘、数据共享,同时进行算法模型的训练和升级,升级后的算法推送到边缘,使边缘设备更新和升级,完成自主学习闭环。

对于边缘AI总体来说,核心诉求是高性能、低成本、高灵活性。其技术发展趋势可总结为以下几点:

  • 可编程性、通用性;
  • 伸缩性,同一个架构支持不同场景
  • 低功耗,适应更多边缘场景的环境和电力要求
  • 软硬件深度结合
  • 高效的分布式互联和协作计算能力

笔者分别从边缘计算AI加速、端/边/云协同以及边缘计算AI框架等三个部分继续深入剖析AI应用与边缘计算结合之后的双向优化,进一步优化AI应用的用户体验。

1、边缘计算AI加速

针对基于边缘计算场景进行AI加速,笔者参考相关论文认为大致可归结为以下四个方面:

1.1 云边协同(云端训练、边缘推理)

为弥补边缘设备计算、存储等能力的不足,满足人工智能方法训练过程中对强大计算能力、存储能力的需求,研究人员提出云计算和边缘计算协同服务架构。如下图所示,研究人员提出将训练过程部署在云端,而将训练好的模型部署在边缘设备。显然,这种服务模型能够在一定程度上弥补人工智能在边缘设备上对计算、存储等能力的需求。

在这里插入图片描述

1.2 模型分割(云边协同推理)

为了将人工智能方法部署在边缘设备,如下图提出了切割训练模型,它是一种边缘服务器和终端设备协同训练的方法。它将计算量大的计算任务卸载到边缘端服务器进行计算,而计算量小的计算任务则保留在终端设备本地进行计算。显然,上述终端设备与边缘服务器协同推断的方法能有效地降低深度学习模型的推断时延。然而,不同的模型切分点将导致不同的计算时间,因此需要选择最佳的模型切分点,以最大化地发挥终端与边缘协同的优势。

在这里插入图片描述

1.3 模型裁剪

为了减少人工智能方法对计算、存储等能力的需求,一些研究人员提出了一系列的技术,在不影响准确度的情况下裁剪训练模型,如在训练过程中丢弃非必要数据、稀疏数据表示、稀疏代价函数等。下图展示了一个裁剪的多层感知网络,网络中许多神经元的值为零,这些神经元在计算过程中不起作用,因而可以将其移除,以减少训练过程中对计算和存储的需求,尽可能使训练过程在边缘设备进行。在参考文献中,作者也提出了一些压缩、裁剪技巧,能够在几乎不影响准确度的情况下极大地减少网络神经元的个数。

在这里插入图片描述

1.4 设计轻量级加速体系架构

在工业界,有很多公司开始研究低功耗加速芯片。如寒武纪公司推出的思元系列及华为公司推出的昇腾系列,能够适配并兼容多样化的硬件架构,进而支撑边缘计算典型的应用场景。

在学术界,对于边缘AI硬件的设计工作主要集中在提高深度神经网络及相关算法如CNN、FCN和RNN等的计算性能和效率。研究人员利用神经网络的冗余和弹性等特性来优化计算操作和数据移动,以降低NN算法在专用硬件上的功耗并提高性能。下表总结了一些低功耗机器学习处理器的相关情况。

在这里插入图片描述

AI在过去几年中,为互联网应用、工业互联网、医学和生物学及自动驾驶等领域带来了突飞猛进的进展。同时,随着边缘计算的逐步成熟,业界必将更加关注边缘计算AI加速方面的研究进展。

由于边缘计算场景的特点,其硬件的异构化程度会显著高于传统数据中心,对现有计算框架也会有非常大的挑战。如何快速支持异构的计算芯片并保证计算的高效,也非常值得产业内的研发力量持续投入。

2 端/边/云协同

在云边协同的过程中,边缘计算主要对需要实时处理的数据进行处理,并为云端提供高价值的数据;云计算则负责非实时、长周期数据的处理,并完成边缘应用的全生命周期管理。下面分别介绍这6种协同方式。

  • IaaS:基础设施服务,Infrastructure-as-a-service
  • PaaS:平台服务,Platform-as-a-service
  • SaaS:软件服务,Software-as-a-service

在这里插入图片描述

2.1 资源协同

资源协同:边缘节点提供计算、存储、网络、虚拟化等基础设施资源,具有本地资源调度管理能力,也接收并执行云端的资源调度管理策略;云端则提供资源调度管理策略,包括边缘节点的设备管理、资源管理以及网络连接管理。

对于边缘计算,需要对计算资源和网络资源有全局的判断,比如边缘设备、边缘节点及中心云资源的使用情况,站在全局角度,进行资源的合理分配,确保性能、成本、服务最优。

在这里插入图片描述

2.1.1 计算卸载

近年来,人们提出了两种计算卸载方法:卸载到云端和卸载到边缘端。其中,卸载到云端允许用户将计算密集型任务卸载到资源强大的云服务器上进行处理;卸载到边缘端是在网络边缘部署云服务,以提供相邻的 IT 服务环境。许多研究者利用这两种方法来研究时延最小化和能耗最小化问题。然而,卸载到云端会因传输距离远而无法很好地处理时延敏感性应用,因此目前大多数研究是把计算任务卸载到边缘端

2.1.2 资源管理策略

资源管理策略一直都是学术界和产业界的研究重点,包括边缘端的本地资源管理与云端的资源管理。边缘计算与云计算协同的资源管理策略对于数据密集型计算非常重要。例如,智能交通、智慧城市以及无人驾驶汽车等都需要减少服务器延迟并提高 Qos.

2.2 数据协同

边缘节点负责终端设备数据的收集,并对数据进行初步处理与分析,然后将处理后的数据发送至云端;云端对海量的数据进行存储、分析与价值挖掘。主要包括两个要点:

  • 数据收集与处理
  • 数据存储与分析
    在这里插入图片描述

边缘AI会处理用户的数据,可以从两个维度来考虑。

一方面,横向考虑,边缘的网络环境多种多样,终端用户设备具有移动性,可能会从一个服务节点移动到另一个服务节点,从一个边缘移动到另一个边缘,从WiFi切换为5G移动网络,甚至从一个运营商切换到另一个运营商,那么用户在旧的环境中产生的数据如何与新环境中的AI程序进行同步会成为一个问题。这里的数据协同不仅需要技术上的支持,更需要商业模式上的支持。

另一方面,纵向考虑,如下图所示,用户在边缘侧产生的数据按照隐私级别可以分为不同类型,如User-Private、Edge-Private、Public等,这些数据可以自下而上分层储存在云边协同系统中的不同层级的数据库中,同时也可以对应不同算力支持的边缘AI的访问权限,例如可以允许云上运行的AI程序读取Public数据来训练一个通用的模型,在边缘侧的AI可以读取Edge-Private数据来在通用模型的基础上训练边缘模型等等。
在这里插入图片描述

2.3 智能协同

边缘端负责深度学习模型的推理,实现分布式智能;云端负责深度学习模型的集中式训练,然后将训练好的模型下发至边缘端

以往的研究都是在云端进行人工智能模型的训练、优化和推理,原因是模型的训练和优化需要大量的资源,云服务则是最适合的方案。然而,模型的推理需要的资源比训练、优化少得多,并且有新数据需要实时推理。因 此,在边缘侧进行模型的推理已逐渐成为新的研究热点。考虑到边缘节点的计算存储资源有限,如何减小模型大小和优化模型在边缘推理中 显得尤为重要。常见模型压缩方法主要包括网络剪枝、知识蒸馏、参数量化、结构优化。

  • 1)网络剪枝,通常网络模型参数过多有些权重接近0,或者神经元的输出为 0,可以将这些多余的参数从网络中移除。具体步骤为预训练一个比较庞大的模型,评估每个权重和神经元的重要性,按照参数重要性排序,删除不重要的参数,将缩小的模型用训练数据重新微调一次,可以减小损失,如果模型缩小之后仍然没达到要求则重新评估权重和神经元迭代操作。
  • 2)知识蒸馏,基本思想是可以先训练一个规模大的初始网络,再训练一个小的子网络去学习大的初始网络的行为。使用初始网络的输出来训练而不直接使用标注数据,是因为初始网络可以提供更多的信息,输入一个样本后初始网络会输出各种类别的概率值,这比单纯的标签信息要更丰富。
  • 3)参数量化,如果说网络剪枝是通过减少权重的数量来压缩模型,那么量化则是通过减少权重的大小来压缩模型。量化通常是将大集合值映射到小集合值的过程,这意味着输出包含的可能值范围比输入小,理想情况下在该过程中不会丢失太多信息[86]。参数量化会使用更少的空间的来存储一个参数,然后使用聚类中心来代替整个类的值,这样可以减少参数的储存。
  • 4)结构优化,通过调整网络结构使得其只需要较少的参数,常见方法为低秩近似与切除分离卷积。深层神经网络通常存在大量重复参数,不同层或通道之间存在许多相似性或冗余性,低秩近似的目标是使用较少滤波器的线性组合来近似一个层的大量冗余滤波器,以这种方式压缩层减少了网络的内存占用以及卷积运算的计算复杂性,实现加速。切除分离卷积方法则是将计算进行拆分,共用部分参数,最终实现参数规模缩小。
    在这里插入图片描述

通过合理的模型拆解,将不同的服务模型根据资源、成本、质量、时延等要求部署在合适的位置。通过完成的协同计算框架,确保各子模型之间的协同处理。比如结合产品设计,我们可以将简单的识别推理全部置于端侧设备,如需要判断视频中的物体属于动物还是植物等。

但是进一步的识别功能,我们可以结合边缘侧的推理能力,识别动物为猫科动物或犬科动物等。如果用户需要更加精细的识别,我们可以将边缘侧的识别结果及处理之后得到的特征数据发送至云端,结合云端完善的数据模型和知识体系,将该猫科动物判定为是东北虎还是华南虎。这样通过端、边、云三者的协同,能够在极大保证用户体验的同时,合理的使用各类资源。

合理利用算力协同,也能够做到在边缘侧进行训练。目前工业界还没有成熟的模式,但学术界有相关的研究。如下图所示的ICE智能协同计算框架,将边缘AI的训练分为三个阶段:

  • 第一阶段为预训练阶段(pre-train),云上的应用可以通过读取云端存储的公共数据,来训练一个通用的模型,这是边缘AI的底座,如果没有云端强大算力的帮助,只靠边缘侧算力是难以得到比云端训练更优秀的AI模型。
  • 第二阶段将通用模型下发至边缘侧,读取边缘私有数据,通过转移学习(Transfer Learning),来得到边缘模型。
  • 第三阶段读取增量数据,利用增量学习(Incremental Learning)生成最终边缘模型,这个最终边缘模型就可以用于用户侧的推理了。

这种三步学习的算力协同的模式,可以更好地满足边缘智能的个性化服务需求。

在这里插入图片描述

通过资源协同、算力协同以及数据协同,边缘智能能够高效合理的利用端、边、云的各类资源,极大地优化AI应用在边缘计算场景下的用户体验,进一步放大AI应用的商业价值。

2.4 业务编排协同

边缘节点提供模块化、微服务化的应用实例;云端提供按照客户需求实现业务的编排能力。

与传统的集中式处理的大型应用程序不同,微服务可 以实现功能模块之间的完全解耦。边缘节点通过模块化分解,将一个对象分解为具有特定接口的单个模块。每个模块服务于一个特定的功能,通过指定的接口进行连接,而每个功能都有多个应用实例。用户通过在服务器调用应用实例来访问服务实现请求,具有相同功能的多个服务实例可以部署在不同的服务器上,使得边缘服务器提供应用实例成为快速响应用户请求与时延敏感性应用程序的不二之选。

2.5 应用管理协同

最近有些研究关注边缘计算应用的部署与运行环境,这是因为边缘计算提供分布式云计算功能和高性能、低延迟、高带宽的服务环境。然而,应用类型和所处边缘位置的不同,会导致边缘计算硬件的选择部署和提供的环境不同。例 如,边缘用户端节点设备采用低成本、低 功 耗 的 ARM 处 理 器 或 者英特尔 Atom 处理器;边缘基站服务器采用英特尔至强系列处理器。而微服务、容器及虚拟化技术等的云原生软件架构能够减少因硬件基础设施差异化带来的部署及运维问题。

如今,越来越多有影响力的 IT 公司或应用程序供应商开始借助微服务技术(如 Kubernetes)来开发复杂的应用程序。此外,借助基于容器的技术,这些基于微服务的应用程序可以轻松地部署在边缘服务器上。考虑到物联网应用程序是分布式的,且通常包含多个计算密集型任务,因此需要在每个单独的计算节点上完成应用程序的部署与管理。研究者一直在探索如何找到一个合适的、低成本的应用程序部署方案。CNCF云原生基金会开源的Kubeedge通过 Kubernetes管理远程边缘节点并使用相同的API将应用程序部署到边缘并进行管理,给应用程序带来了更好的性能,同时提升了用户体验。

2.6 服务协同

服务协同主要是指边缘计算的边缘服务与云计算的云服务进行协同。边缘节点按照云端策略实现部分EC-SaaS服务,通过 EC-SaaS与云端SaaS的协同实现面向客户的按需服务;云端主要提供SaaS服务在云端和边缘节点的服务分布策略,以及云端承担的SaaS服务能力。

最后总结一下6种协同技术的对比。
在这里插入图片描述

3 边缘计算AI计算框架

在云数据中心中,算法执行框架更多地执行模型训练任务,在训练过程中需要接收大规模、批量化的信息数据,比较关注训练的迭代速度和收敛率等。而在边缘设备上更多的是执行预测任务,输入一般是实时的小规模数据,大多数场景下执行预测任务,因此更加关注于预测算法执行速度及端侧或边缘侧的资源开销。

目前业界针对边缘计算场景,也提出了针对性的设计方案,例如用于移动设备或嵌入式设备的轻量级解决方案TensorFlow Lite,Caffe2和Pytorch等。

结语

云边协同是一种新型计算范式,其将云计算强大的资源能力与边缘计算超低的时延特性结合起来,实现了边缘支撑云端应用,云端助力边缘本地化需求的协同优化目标。

AI和边缘计算已获得国内外学术界和工业界的广泛关注和认可,并且已经在很多商业场景下发挥作用。将AI应用部署至边缘已成为提升智能服务的有效途径。

尽管目前边缘智能仍处于发展的初期,然而,边缘智能够产生极大的促进效果,并成为各行各业的黏合剂和智能产业发展的催化剂,促进多个行业的升级转型。

参考资料:

  • [1]华为云原生团队:AI 与边缘计算结合的双向优化
  • [2]黄成龙,柯宇曦,华向东等.边缘计算在智慧农业中的应用现状与展望[J].农业工程学报,2022,38(16):224-234.
  • [3]田鹏新,司冠南,安兆亮等.基于数据驱动的云边智能协同综述[J/OL].计算机应用:1-10[2023-03-28].http://kns.cnki.net/kcms/detail/51.1307.TP.20230314.1518.004.html.
  • [4]陈玉平,刘波,林伟伟等.云边协同综述[J].计算机科学,2021,48(03):259-268.
  • [5]刘耕,赵立君,陈庆勇等.联邦学习在5G云边协同场景中的原理和应用综述[J].通讯世界,2020,27(07):50-52.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/5682.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

都2023了,学习自动化测试还有必要么?会不会浪费我时间

最近收到不少小伙伴私信提问,其中问得比较多的就是“学习自动化测试有那么重要吗?”。 我的回答是肯定的——很重要。 相信不少同学都有诸如此类的疑问,例如:“日常工作中好像用不上自动化?”、“手工点点点好像也可…

【从零开始学习 UVM】9.1、UVM Config DB —— UVM Resource database 资源库详解

文章目录 resource 是一个参数化的容器,可以保存任意数据。资源可用于配置组件、为序列提供数据或在TestBench不同部分之间启用信息共享。它们使用作用域信息(scope)存储,因此其可见性可以限制在TestBench的某些部分中。您可以将任何数据类型放入资源数据库中,并使另一个组…

若依后端管理系统学习日志

文章目录遇到的问题1. 自定义模块404解决方案1. 自定义后台异常返回2. 添加导入按钮3. 树形列表搜索遇到的问题 1. 自定义模块404 idea没有报错,但是点击进去页面显示404。 F12查看错误信息,原来是访问后端controller接口没有成功,找不到导…

上传文件—ajax

目录 一、上传图片文件 1.写基本html 完成页面主框架 2.script部分 2-0 主框架 上传文件按钮被点击触发事件 2-1验证使得否选择文件 2-2 介绍 FormData 2-3 监听onreadystatechange事件 小结 二、实现上传文件进度条 1. 在bootstrap找进度条组件 2.script 完成进度条算法…

Java锁深入理解2——ReentrantLock

前言 本篇博客是《Java锁深入理解》系列博客的第二篇,建议依次阅读。 各篇博客链接如下: Java锁深入理解1——概述及总结 Java锁深入理解2——ReentrantLock Java锁深入理解3——synchronized Java锁深入理解4——ReentrantLock VS synchronized Java锁…

QT Qwidget 事件处理机制

qlineEdit Qt事件处理是指在Qt应用程序中处理各种事件的过程。事件是指在应用程序中发生的各种操作,例如按键、鼠标点击、窗口移动等。Qt提供了一个事件处理机制,使得开发者可以对这些事件进行处理,以实现应用程序的各种功能。 Qt中的事件处…

CMake设置Visual Studio工程的调试环境变量和工作目录cwd的方法

1、设置在Visual Studio中调试的环境变量,此设置仅仅在VS中点击那个绿色三角运行时有效,与你直接双击打开exe文件运行无关,有效避免多版本动态库全部写入系统环境变量的污染问题; # Visual Studio中调试依赖的独立环境变量 set_p…

代码随想录算法训练营第五十天| ● 309.最佳买卖股票时机含冷冻期 ● 714.买卖股票的最佳时机含手续费 ●总结

309.最佳买卖股票时机含冷冻期 看完题后的思路 dp[i][] 0: 第i天不持有股票的最大利润 1: 持有 递推公式 dp[i][0]max(第i-1天不持有,第i-1天持有,在第i天卖了) dp[i][1]max(第i-1天持有, 第i-2天不持有,第i天持有) 初始化 dp[0][0]0; dp[0][1]-price[i]; dp[1][0]max(x,x) d…

PCB模块化设计23——LDO线性稳压电源模块PCB布局布线设计规范

目录PCB模块化设计23——LDO线性稳压电源模块PCB布局布线设计规范一、LDO线性稳压电源组成与概念二、LDO的电路的主干道布局要点PCB模块化设计23——LDO线性稳压电源模块PCB布局布线设计规范 一、LDO线性稳压电源组成与概念 LDO线性稳压器是最基本的稳压电源变换,…

STM32时钟与定时器

目录 一、STM32的时钟系统 二、SysTick定时器 三、HAL_Delay的实现 四、通用定时器 一、STM32的时钟系统 概念时钟系统是由振荡器(信号源)、定时唤醒器、分频器等组成的电路。常用的信号源有晶体振荡器和RC振荡器。 意义时钟是嵌入式系统的脉搏&…

自然语言处理中的数据预处理:理论与实践

❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博…

2020-2022年美赛C题信件汇总

2020-2022年美赛O奖C题写信汇总(机翻) 2020 <1> Dear Marketing Director of Sunshine Company , According to your requirements, we analyze the ratings and reviews of competitive products on Amazon for baby pacifier, microwave and hair dryer to be intro…

C++ 模板、函数模板、类模板

函数模板、类模板 文章目录函数模板、类模板前言1.模板1.1 模板的概念1.2 模板的特点2. 函数模板2.1 函数模板语法2.2 函数模板注意事项2.3 普通函数与函数模板的区别2.4 普通函数与函数模板的调用规则2.5 模板的局限性2.6 函数模板案例3. 类模板3.1 类模板语法3.2 类模板与函数…

2023年Java程序员生存指南,8个中肯建议度过寒潮!

最近小源看到一个2023Java程序员生存指南&#xff0c;觉得挺有意思的&#xff0c;今天分享给大家&#xff01; 第一&#xff0c;不要在互联网公司基于低代码做开发。 第二&#xff0c;保证一定强度的刷题&#xff0c;原因嘛你懂的~ 第三&#xff0c;凡是要求名校的岗位&#xf…

C#,码海拾贝(08)——埃特金(Aitken)逐步曲线插值算法,《C#数值计算算法编程》源代码升级改进版

埃特金逐步线性插值法&#xff08;Aitken successive linear interpolation method&#xff09;一种能逐步升阶的插值方法.用拉格朗日插值多项式计算函数近似值时&#xff0c;如果精度不满足要求&#xff0c;需增加插值节点以提高插值多项式次数时&#xff0c;原来算出的结果均…

字节二面,原来我对自动化测试的理解太浅了

如果你入职一家新的公司&#xff0c;领导让你开展自动化测试&#xff0c;作为一个新人&#xff0c;你肯定会手忙脚乱&#xff0c;你会如何落地自动化测试呢&#xff1f; 01 什么是自动化 有很多人做了很长时间的自动化但却连自动化的概念都不清楚&#xff0c;这样的人也是很悲…

七、网络安全

&#xff08;一&#xff09;网络安全设计 1、网络安全体系设计 &#xff08;1&#xff09;物理安全 通信线路的可靠性、硬软件设备的安全性、设备的备份、防灾害防干扰能力、设备的运行环境、不间断电源 eg机房安全 &#xff08;2&#xff09;系统安全 操作系统本身的缺陷…

vue尚品汇商城项目-day01【4.完成非路由组件Header与Footer业务】

文章目录4.完成非路由组件Header与Footer业务4.1使用组件的步骤&#xff08;非路由组件&#xff09;本人其他相关文章链接4.完成非路由组件Header与Footer业务 在咱们项目开发中&#xff0c;不在以HTML CSS 为主&#xff0c;主要搞业务、逻辑 开发项目的流程&#xff1a; (1)…

模式识别 —— 第六章 支持向量机(SVM)与核(Kernel)

模式识别 —— 第六章 支持向量机&#xff08;SVM&#xff09;与核&#xff08;Kernel&#xff09; 文章目录模式识别 —— 第六章 支持向量机&#xff08;SVM&#xff09;与核&#xff08;Kernel&#xff09;硬间隔&#xff08;Hard-Margin&#xff09;软间隔&#xff08;Soft…

52LeetCode刷题_LeetCode刷题手册

虽然刷题一直饱受诟病&#xff0c;不过不可否认刷题确实能锻炼我们的编程能力&#xff0c;相信每个认真刷题的人都会有体会。现在提供在线编程评测的平台有很多&#xff0c;比较有名的有 hihocoder&#xff0c;LintCode&#xff0c;以及这里我们关注的 LeetCode。 LeetCode收录…