曹建农院士:未来边缘计算:趋于分布式智能

2023-05-16

未来边缘计算:趋于分布式智能

作者简介:

曹建农,欧洲科学院院士,IEEE Fellow,CCF Fellow,计算机协会(ACM)
杰出会员。现任香港理工大学研究生院院长、潘乐陶慈善基金数据科学教授、电子计算学系分步式与移动计算讲座教授、人工智能与物联网研究院院长、互联网和移动计算实验室主任、理大大数据分析中心实验室创始人及副主任,并曾于2011-2017年担任电子计算学系系主任。

附人工智能与物联网研究院,研究院介绍:https://www.polyu.edu.hk/riaiot/,招收博士后,博士生,研究助理。


在过去十几年中,云计算已经成为主流技术,改变了很多工业、政府和组织的IT服务的运营模式,也带来了包括商业模式和技术上的诸多革新。但是,云计算面对现在和未来的IoT的应用,也有一些不足之处。IoT起源于1999年,当时RFID技术刚刚兴起,英国一名从事智能家居产业科学家Kevin Ashton预见到,如果RFID联接到每一个物件上,或者说家里的每一个家具、电器上,就会形成一个新的网络。这样的网络可以和当时兴起的Internet相媲美,所以给它取名叫 IoT。

20多年后的今天,IoT已经远远超越了智慧家庭、智能家居的应用,成为了一个集成物理世界和计算机世界的广阔应用领域。它不仅可以感知,还可以进行计算和控制,我们可以看到智慧城市里出现了更多IoT的应用,包括工业物联网(Industry IoT),自主驾驶和车载网,以及大规模的视频监控和现在兴起的元宇宙的底层VR、AR。这些新型的应用带来了新的需求,比如如何识别、感知、进行网络传输、计算和控制。这些需求都必须在非常智能化的方式下进行,而传统的IoT技术无法胜任。因此,要支持先进的IoT应用,就需要新的IoT技术。IoT产生大量的数据,而AI的发展正是基于数据,两者自然而然地结合在一起,诞生了人工智能物联网AIoT。大规模的物联网数据使得AI在物联网领域的应用是非常蓬勃的,这样的数据也给IoT的应用带来很多新的发展。

那么,AI进入IoT的每一个领域之后会带来什么?首先,分布式的IoT数据可以得到广泛应用;其次,过去我们讲的“Internet of Things”中的”Things”本身是没有智能的,但是有了AIoT后,它可以嵌入到物联网里的每一个元素中,使得”Things“变成了”Smart Things“,这样它就不是一个简单的设备,而是嵌入到计算和智能的一个系统,这使得实时地在局部做一些智能的决策成为了可能。那么,AIoT是如何发展起来的呢?AIoT的使能技术有很多,本次主要讲云计算和分布式云,即Edge cloud,它带来了实时性。同时Edge cloud上面的AI应用也变成了Edge AI,带来了智能性。由于能被用户直接存取,IoT设备将智能和计算带给了用户,所以边缘计算也成为各个产业竞争的战场。

在这里插入图片描述

众所周知,边缘计算主要作用是把互联网所需要的数据和计算,从云端推广到边缘侧来实现,让实时数据处理和智能化成为可能。边缘计算不仅减少了对网络的需求,还降低了计算和决策所带来的延迟,增加了实时的反馈。正因为有着诸多好处,边缘云也叫做分布式云,成为了现在的主流技术。2021年Gartner把边缘云称作十大技术趋势之一,各个主要的云服务厂商包括华为、微软、Google和亚马逊都在推广分布式云技术,其中包含各自的平台和开源的软件,包括KubeEdge、Beatyl和OpenYurt,把在云上的Kubernetes技术推广到边缘,并能够无缝地从云到边缘实现任务的执行。

边缘计算最开始是将云上资源受限的IoT设备的计算放到边缘服务器上,主要还是做计算;有了AIoT之后,边缘服务器除了做计算,还可以做AI方面的智能化决策和模型;下一步,边缘的服务器和节点将互相配合,即合作式的边缘计算,各个合作式的边缘服务器上的智能将变成分布式的智能,这将成为边缘计算的一个趋势。

以定位为例,过去使用无线定位,如Wifi、蓝牙,都是模型驱动,但是物理模型受到很多限制。其中最大的限制就是干扰,特别是在室外的环境下,在多人、多物件的情况下会很不准确。AI的兴起让数据驱动的方式变得非常流行,这种方式的好处是可以把AI模型放在一个边缘节点上,获得极佳的实时性。根据深度学习或深度神经网络估算距离,可以推出信号强度和距离之间的一个非线性关系。同时因为受到大量数据的训练,抗干扰性增强,减少误差。

在食品安全领域,我们可以把一些比较昂贵的设备和技术通过EdgeAI部署到低成本的边缘节点上。例如真假红酒的检测,通过普通的声波技术,如扬声器和麦克风,基于真实液体和假液体具有不同的深阻抗这一特征,来检测出模型异常的假液体,这个方法的准确度可以达到92%-95%。另一个例子是食物新鲜度和真假比较,通过把手机上的低成本的照片传送到昂贵的高频光谱的图像上,通过机器学习的方法来辨别和识别。这些技术都已经被广泛应用,所以AI在边缘计算领域的应用是一个非常重要的领域。

在这里插入图片描述

那么,如何把AI推广到分布式的Edge AI上?可以通过合作式的边缘计算,即边缘的节点之间共享数据和计算资源,合作完成任务。在这个过程当中,节点要合作完成分布式任务,产生分布式智能。在过去的几年当中,分布式智能的研究主要集中在三个方面,一是分布式的任务调度和任务执行,二是分布式机器学习,即分布式Edge AI,三是如何让边缘节点和分布式IoT设备在自主合作的情况下,用分布式的方法来解决问题。

分布式任务的执行,是对分布式智能最基础的一个研究领域,即怎样把在不同的边缘服务器上执行的任务,通过分布式的调度共享在这些边缘的服务器上来执行。一个复杂的任务,比如说车载网,需要识别交通流量和道路情况,要先分解成若干子任务,再部署到不同的边缘服务器上,或者是部署到云上执行。在协作式边缘计算场景中做任务调度,对任务调度系统和算法可伸缩性提出了新的挑战:首先,和传统的并行和分布式计算比较,边缘计算任务是由终端设备提交,是从下往上的,且任务执行时产生的数据也是由边缘节点产生的分布式数据;其次,边缘网络由不同的节点组成,是不稳定的、带宽受限的,因此在任务执行方面的通信和计算资源也是耦合在一起的。

图片

第二个是现在大家都在进行研究的分布式机器学习。众所周知,分布式机器学习实际上不是一个新的领域,那如何将分布式学习推广到在边缘网络上来进行?这就需要利用分散在各个边缘节点上的本地数据和资源,来共同完成机器学习过程,主要分成模型训练和模型推理。模型训练,是指多个边缘节点利用本地数据,协同训练一个AI模型,然后聚合这些边缘节点的模型参数;模型推理,是指单个和多个边缘节点执行AI模型。在实时的边缘场景下如何保证训练和推理的性能、速度和准确度,实际上将面临很多挑战,下图是在云上、数据中心进行分布学习和在边缘网络上进行分布学习的对比。

在这里插入图片描述

举一个分布式合作的视频监控的例子,现在的AI使能的视频应用往往比较复杂,需要训练和部署很多模型,组成一个pipeline,比如怎么定义、定位物体,怎么追踪、重新识别、塑性识别、动作识别等。所以它需要多个网络服务器之间的合作。下图是一个合作式的视频监控的框架,最底下是多个边缘的服务器,服务器上的资源能够被统一使用,形成一个统一的资源库。通过资源管理和任务调度,对资源进行合理、有效地使用,从而加速开发和优化视频应用的AI模型的性能。平台层可以提供机器学习的服务、数据服务和可视化的服务,应用层可以实现视频、监控的这些应用的调度。将上述框架部署在校园场景,可以监控校园里面的人流量、用电量等,同时也可以做一些资源感知的分布式的Egde,学习更好地利用边缘资源去降低时延,保护隐私和数据分析。

第三方面就是自主的合作,即边缘节点(如机器人、车)在动态的环境下能自主地做出决定并执行自己的任务,但又进行统一的合作。过去的研究中边缘节点受限于一个集中的控制,即在发出指令之后,再进行统一的行动,感知并汇报它们的状态。而在分布式控制场景中没有集中控制,每一个边缘节点都是自主的,它们的感知作用于环境,而环境是共享的,且环境变化也会带给边缘节点反馈,边缘节点根据反馈进行进一步的学习和调配。这个时候我们要做的主要就是分布式的强化学习。就像人学习一样,通过强化学习,车或者机器人就可以观察周围的环境,和其他的机器人彼此间共享这个环境和状态来学会协作的策略。具体来说,分布式强化学习主要分为分布式的训练和分布式的执行。我们采用的是全分布式,强化学习本身已经非常困难,需要降维和学习策略,那么要进行分布式的强化学习就变得更加困难。因为它不仅需要考虑同环境本身的交互,还需要考虑在这个环境当中各个机器人之间的相互影响。相互影响也对学习带来许多挑战:机器人策略的改变会带来环境的不稳定性;机器人的分布式训练需要单独的奖励反馈,环境给出的反馈怎么分解成对单个机器人的反馈,如何量化每个机器人对团队合作的贡献;机器人的数量增多会给学习过程带来维数灾难问题。

在这里插入图片描述

我们在多机器人协作方面做了很多研究和工作。我们用强化学习来训练单个机器人跟踪不同的规则的车道线。我们使用不同的颜色画出车道线的边缘,通过采用机器学习算法从图像中去提取特征,并根据这些特征用强化学习来控制机器人按照轨迹来行走。针对多机器人合作场景,我们采用层级强化学习的方法来解决协作变道的问题。首先,把机器人的策略学习分成上下两层,上层是机器人和机器人之间的合作策略怎么进行学习,包括去预测其他机器人的动作,比如说它要超车的时候,就要来预测前一个机器人会不会也超车,一旦它学习到做出决策之后,下层主要是通过单个机器人的动作执行,包括机器人的具体的速度和方向。那么和传统的强化学习来比较,这样分层的强化区域具有更快的训练速度,也更适合分布式多机器人的协作。

图片

在未来的边缘计算当中,分布式智能的进行将依赖于合作式的边缘计算。合作式边缘计算目前的三大研究方向为任务调度、分布式的机器学习和分布式的自主学习。具体来说,我们将研究如何在实时的情况下做到可靠的机器学习,可靠的任务调度,乃至容错等方面;如何在不同的机器人,不同的车、物体中进行个性化,并保护数据隐私;如何提升边缘节点的决策速度,并通过离线计算和离线智能方面的研究减少边缘节点对云或集中控制的依赖。

图片
KubeEdge社区

KubeEdge是业界首个云原生边缘计算框架、云原生计算基金会内部唯一孵化级边缘计算开源项目,社区已完成业界最大规模云原生边云协同高速公路项目(统一管理10万边缘节点/50万边缘应用)、业界首个云原生星地协同卫星、业界首个云原生车云协同汽车、业界首个云原生油田项目,开源业界首个分布式协同AI框架Sedna及业界首个边云协同终身学习范式,并在持续开拓创新中。

  • KubeEdge网站 : https://kubeedge.io
  • GitHub : https://github.com/kubeedge/kubeedge
  • Slack : https://kubeedge.slack.com
  • 邮件列表 : https://groups.google.com/forum/#!forum/kubeedge
  • 每周社区例会 : https://zoom.us/j/4167237304
  • Twitter : https://twitter.com/KubeEdge
  • 文档地址 : https://docs.kubeedge.io/en/latest/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

曹建农院士:未来边缘计算:趋于分布式智能 的相关文章

  • golang错误处理

    Go语言主要的设计准则是 xff1a 简洁 明白 xff0c 简洁是指语法和C类似 xff0c 相当的简单 xff0c 明白是指任何语句都是很明显的 xff0c 不含有任何隐含的东西 xff0c 在错误处理方案的设计中也贯彻了这一思想 我们
  • golang使用gdb

    GDB调试简介 GDB是FSF 自由软件基金会 发布的一个强大的类UNIX系统下的程序调试工具 使用GDB可以做如下事情 xff1a 启动程序 xff0c 可以按照开发者的自定义要求运行程序 可让被调试的程序在开发者设定的调置的断点处停住
  • Go怎么写测试用例

    如何编写测试用例 由于go test命令只能在一个相应的目录下执行所有文件 xff0c 所以我们接下来新建一个项目目录gotest 这样我们所有的代码和测试代码都在这个目录下 接下来我们在该目录下面创建两个文件 xff1a gotest g
  • golang应用日志

    seelog介绍 seelog是用Go语言实现的一个日志系统 xff0c 它提供了一些简单的函数来实现复杂的日志分配 过滤和格式化 主要有如下特性 xff1a XML的动态配置 xff0c 可以不用重新编译程序而动态的加载配置信息 支持热更
  • golang网站错误处理

    我们的Web应用一旦上线之后 xff0c 那么各种错误出现的概率都有 xff0c Web应用日常运行中可能出现多种错误 xff0c 具体如下所示 xff1a 数据库错误 xff1a 指与访问数据库服务器或数据相关的错误 例如 xff0c 以
  • golang应用部署

    程序开发完毕之后 xff0c 我们现在要部署Web应用程序了 xff0c 但是我们如何来部署这些应用程序呢 xff1f 因为Go程序编译之后是一个可执行文件 xff0c 编写过C程序的读者一定知道采用daemon就可以完美的实现程序后台持续
  • golang备份和恢复

    我们经常会遇到生产服务器的网络断了 硬盘坏了 操作系统崩溃 或者数据库不可用了等各种异常情况 xff0c 所以维护人员需要对生产服务器上的应用和数据做好异地灾备 xff0c 冷备热备的准备 在接下来的介绍中 xff0c 讲解了如何备份应用
  • golang自定义路由器设计

    HTTP路由组件负责将HTTP请求交到对应的函数处理 或者是一个struct的方法 xff0c 如前面小节所描述的结构图 xff0c 路由在框架中相当于一个事件处理器 xff0c 而这个事件包括 xff1a 用户请求的路径 path 例如
  • golang中的Session支持

    session集成 beego中主要有以下的全局变量来控制session处理 xff1a related to session SessionOn bool 是否开启session模块 xff0c 默认不开启 SessionProvider
  • golang表单及验证支持

    在Web开发中对于这样的一个流程可能很眼熟 xff1a 打开一个网页显示出表单 用户填写并提交了表单 如果用户提交了一些无效的信息 xff0c 或者可能漏掉了一个必填项 xff0c 表单将会连同用户的数据和错误问题的描述信息返回 用户再次填
  • sublime搭建C/C++编译环境

    代码一 xff1a 34 cmd 34 34 g 43 43 34 34 file 34 34 std 61 c 43 43 11 34 34 o 34 34 file path file base name 34 34 amp 34 34
  • golang用户认证

    在开发Web应用过程中 xff0c 用户认证是开发者经常遇到的问题 xff0c 用户登录 注册 登出等操作 xff0c 而一般认证也分为三个方面的认证 HTTP Basic和 HTTP Digest认证第三方集成认证 xff1a QQ 微博
  • golang多语言支持

    专注后台开发相关技术 xff0c 广度深度并存 xff0c 干货情怀同在 微信搜索 盼盼编程 关注这个不一样的程序员 强烈推荐人工智能学习网站 beego中设置全局变量如下 xff1a Translation i18n IL Lang st
  • golang中的pprof支持

    专注后台开发相关技术 xff0c 广度深度并存 xff0c 干货情怀同在 微信搜索 盼盼编程 关注这个不一样的程序员 强烈推荐人工智能学习网站 Go语言有一个非常棒的设计就是标准库里面带有代码的性能监控工具 xff0c 在两个地方有包 xf
  • 大厂动态规划面试汇总,提升内功

    注 xff1a 本文是BAT真题收录很值得大家花心思看完 xff0c 看完会有收获 前言 算法是面试大公司必考的项目 xff0c 所以面试前准备好算法至关重要 xff0c 今天整理的常见的动态规划题目 xff0c 希望可以帮到大家 要想学习
  • 进程知识点,只需这一篇

    前言 你的进程 xff0c 为啥挂了 xff1f 进程挂了 xff0c 这个问题大家并不陌生 学完这篇 xff0c 你会对进程有一定了解 后面碰到进程挂的情况 xff0c 你很快能找到对应解决思路 进程在操作系统中 xff0c 是一个很重要
  • 算法:多数元素,多种解法

    前言 xff1a 以前做数学题的时候 xff0c 老师说 xff1a 你们学习多种解题方法 遇到类似不同的问题 xff0c 你都会了 xff0c 这样能提高解题能力 如果你写出多种解法 xff0c 面试官会对你刮目相看 下面一题 xff0c
  • 栈和队列互相实现,一文弄懂它们的关系

    前言 栈和队列是比较基础的数据结构 无论在工作中 xff0c 还是在面试中 xff0c 栈和队列都用的比较多 在计算机的世界 xff0c 你会看到队列和栈 xff0c 无处不在 栈 xff1a 一个先进后出的数据结构 队列 xff1a 一个
  • linux下调试core dump方式汇总,工作必备技能

    缘起 调试 xff0c 是开发流程中一个非常重要的环节 每个程序员都应 xff0c 具备调试代码的能力 xff0c 尤其对于从事 Linux 下的开发的读者 从事 linux 下后台开发 xff0c 有时候会遇到程序突然崩溃的情况 xff0

随机推荐