曹建农院士:未来边缘计算,趋于分布式智能
在过去十几年中,云计算已经成为主流技术,改变了很多工业、政府和组织的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,学习更好地利用边缘资源去降低时延,保护隐私和数据分析。
第三方面就是自主的合作,即边缘节点(如机器人、车)在动态的环境下能自主地做出决定并执行自己的任务,但又进行统一的合作。过去的研究中边缘节点受限于一个集中的控制,即在发出指令之后,再进行统一的行动,感知并汇报它们的状态。而在分布式控制场景中没有集中控制,每一个边缘节点都是自主的,它们的感知作用于环境,而环境是共享的,且环境变化也会带给边缘节点反馈,边缘节点根据反馈进行进一步的学习和调配。这个时候我们要做的主要就是分布式的强化学习。就像人学习一样,通过强化学习,车或者机器人就可以观察周围的环境,和其他的机器人彼此间共享这个环境和状态来学会协作的策略。具体来说,分布式强化学习主要分为分布式的训练和分布式的执行。我们采用的是全分布式,强化学习本身已经非常困难,需要降维和学习策略,那么要进行分布式的强化学习就变得更加困难。因为它不仅需要考虑同环境本身的交互,还需要考虑在这个环境当中各个机器人之间的相互影响。相互影响也对学习带来许多挑战:机器人策略的改变会带来环境的不稳定性;机器人的分布式训练需要单独的奖励反馈,环境给出的反馈怎么分解成对单个机器人的反馈,如何量化每个机器人对团队合作的贡献;机器人的数量增多会给学习过程带来维数灾难问题。
我们在多机器人协作方面做了很多研究和工作。我们用强化学习来训练单个机器人跟踪不同的规则的车道线。我们使用不同的颜色画出车道线的边缘,通过采用机器学习算法从图像中去提取特征,并根据这些特征用强化学习来控制机器人按照轨迹来行走。针对多机器人合作场景,我们采用层级强化学习的方法来解决协作变道的问题。首先,把机器人的策略学习分成上下两层,上层是机器人和机器人之间的合作策略怎么进行学习,包括去预测其他机器人的动作,比如说它要超车的时候,就要来预测前一个机器人会不会也超车,一旦它学习到做出决策之后,下层主要是通过单个机器人的动作执行,包括机器人的具体的速度和方向。那么和传统的强化学习来比较,这样分层的强化区域具有更快的训练速度,也更适合分布式多机器人的协作。
在未来的边缘计算当中,分布式智能的进行将依赖于合作式的边缘计算。合作式边缘计算目前的三大研究方向为任务调度、分布式的机器学习和分布式的自主学习。具体来说,我们将研究如何在实时的情况下做到可靠的机器学习,可靠的任务调度,乃至容错等方面;如何在不同的机器人,不同的车、物体中进行个性化,并保护数据隐私;如何提升边缘节点的决策速度,并通过离线计算和离线智能方面的研究减少边缘节点对云或集中控制的依赖。