前言
- 为什么说边缘计算带来了数据、计算的根据变化?
- 边缘AI是边缘计算最重要的应用之一,它的挑战是什么?
- 一个用于边缘计算场景的新型AI服务部署平台——Astraea是如何诞生的?
- 如何通过Astraea一键化部署边缘AI服务?
近日,阿里云边缘计算团队博士后付哲的论文《Astraea: Deploy AI Services at the Edge in Elegant Ways》入选2020年IEEE边缘计算国际会议(IEEE International Conference on Edge Computing),并在大会上进行了宣讲。他和他的团队如何看待以上问题,本文将为您解答。
边缘计算:5G时代对云网融合的挑战
近年来,边缘计算已经成为信息和通信技术中最热门的研究领域之一。随着5G时代的到来,越来越多的设备连接到互联网上,伴随着视频直播、云游戏、VR/AR、自动驾驶等带宽消耗和延迟敏感的应用,给云计算带来了巨大的挑战。
边缘计算支持分布式计算模式,将计算和数据资源转移到靠近最终用户的边缘节点,从而为新时代的创新应用提供高带宽、低延迟和大规模连接能力。
边缘计算带来了数据、计算分布的根本变化。5G有以下特性:eMBB(增强型移动宽带)、uRLLC(超可靠低延迟通信)、mMTC(大规模机器类型通信)。这些特性驱动着越来越多的数据和计算从云端转移到边缘。有行业报告表示:在5G时代,80%数据和计算将发生在边缘。
边缘 AI 是边缘计算的重要应用之一
与此同时,边缘人工智能越来越受到人们的关注。Gartner去年的一份报告显示,Edge-AI正从其幼年期走向顶峰,预计将在2-5年内达到成熟期。我们时常在媒体报道中看到如下说法:边缘人工智能是下一波人工智能,人工智能是边缘计算中最常见的负载,人工智能是边缘计算的杀手级应用,等等。
人工智能的思维方式与人类的思维方式非常相似。一个人从过去发生的事情中吸取教训,从而得到终身的教训,如果有新的问题,他/她可能会从他/她以前学到的教训中得到解决办法。就像人类所做的一样,人工智能模型是从训练数据中训练出来的,如果有新的数据,模型就会输出结果。第一阶段称为训练,第二阶段称为推理。训练和推理是人工智能的两个主要阶段。
训练阶段需要大量的计算能力,因为它需要大量的矩阵乘法和迭代,而且即使使用GPU这样的硬件加速,对于复杂的模型通常也需要几个小时或几天的时间。推理阶段需要相对较低的响应时间,特别是对于某些对延迟敏感的应用程序,如自动驾驶等等。推理的整个过程应该在不到1秒甚至更短的时间内完成。随着神经网络越来越深入和复杂,海量的计算资源需求爆发,在移动设备上进行人工智能推理变得越来越困难。
云-边-端计算任务卸载与协作
新兴的边缘计算范式带来了一个更好的解决方案,将人工智能服务的部分计算迁移到边缘,以缓解延迟和带宽瓶颈。这存在两个关键问题:第一个问题是是否将任务从云或终端设备卸载到边缘,第二个问题是如何以适当的方式将任务分配给云、边缘和终端设备。
我们设P为终端设备、边缘服务器和云服务器的处理能力,C为计算任务量,D为需要传输的数据,B为终端设备与边缘节点或中心云之间的带宽。如果等式(1)成立,将计算从终端设备迁移到边缘服务器可以减少响应时间。如果等式(2)成立,则将计算迁移到边缘服务器后的性能优于迁移到中心云。
但是,边缘AI依旧存在痛点和难点。主要包含以下三个方面:
难部署
•AI框架种类众多,算法模型难以直接部署到生产环境,提供服务调用接口
•边缘资源类型异构,不同AI服务对资源需求不同
难运维
•生产环境的 AI 服务需要支持服务生命全周期管理,包括版本升级、灰度发布、状态监测、自动扩缩容等等
难调度
•边缘计算是典型的分布式系统,需要为终端用户选择合适的边缘资源提供边缘AI服务,同时在用户体验、算力成本和流量成本上做到最优权衡
人工智能模型的开发人员和数据科学家通常不知道或不太关心他们的模型在生产环境中是如何服务的。例如,在边缘部署模型时,必须考虑到不同框架的AI模型需要不同的部署方式,同时也需要一个API服务器将AI模型对外提供给终端用户。此外,边缘人工智能服务还需要全生命周期管理的能力,包括版本升级、灰度发布、自动缩放等,以及灵活的调度能力,以优化用户体验、计算成本和流量成本之间的权衡。
Astraea的诞生
因此,阿里云边缘计算团队提出了Astraea — 一个适用于边缘计算场景的新型AI服务部署平台,它简化了部署阶段,同时充分利用了边缘计算的优势。一个AI服务开发者只需提交模型、相关调用脚本和边缘资源需求,Astraea负责镜像构建、资源分配、模型服务和状态监测等全过程,最终提供标准的Restful API供终端设备使用。
Astraea具有以下优点。首先,Astraea的用户只需要提交不到10行的模板配置,Astraea能够在1分钟时间内构建映像,在5分钟时间内完成服务边缘部署。其次,Astraea支持Scikit learn、TensorFlow、Pythorch、ONNX等多个人工智能框架,可以一键化为AI服务自动生成Restful API。借助Astraea以及阿里云边缘节点服务,AI服务可以下沉到距离用户10公里的范围内。同时,Astraea基于阿里云边缘节点服务能力实现运维自动化。
如何通过Astraea一键化部署边缘AI服务
如以上视频所示,左侧是对图像进行分类的推理示例,右侧是边缘资源需求示例文件。用户只需输入astraea build和astraea deploy命令,这个AI服务就自动部署在指定的边缘节点上,并为用户提供可被调用的Restful API。用户可以方便地调用这个API来对图像进行分类。
基于Astraea,可以实现另外一项边缘AI服务:实时车牌检测服务。
使用Raspberry Pi 4和相适配的摄像头作为终端设备,利用5G CPE提供网络连接,并使用Astraea部署边缘AI服务。由视频可以看到,通过将推理转移到边缘节点,我们在Raspberry Pi 4上能够实现几乎实时的车牌识别能力。
Astraea项目设计和架构
模型开发人员只需要提交三项文件:第一个文件是AI模型,无论它依赖于哪个机器学习框架;第二个文件是用来表示如何调用模型以及返回的输出数据格式的脚本文件;第三个文件用来表示AI服务的元信息(包括名称、版本、API端口等)和边缘计算资源的需求,包括CPU、GPU、内存大小和AI服务要覆盖的地理区域。
Astraea能够自动分析提交的文件,封装模型并提供Restful API调用能力,构建容器映像并将其推送到边缘容器仓库。Astraea同时解析资源需求,并相应地在指定的边缘节点中运行边缘AI服务。
Astraea基于边缘节点服务平台实现以下能力:
镜像仓库:作为边缘AI镜像的储存仓库,并提供镜像分发加速能力
应用发布:提供边缘AI服务的一键部署和灰度发布功能
监测运维:负责边缘AI容器状态监测和相关日志服务
关于Astraea的实验测评
阿里云边缘计算团队通过在低性能终端设备上实现实时对象识别服务来评估Astraea。在实验中,选择Raspberry Pi 4作为终端设备,YOLOv3模型来识别图像或视频中的物体。模型的权重是在云中预先训练的,因为与边缘节点或终端设备相比,中心云数据中心有更大的能力来训练模型。同时,在实验中,选择了位于中国杭州的边缘节点(配有Tesla V100 GPU)。
实验架构:
实验过程中,终端设备(Raspberry Pi)捕获图像,调用Astraea提供的web服务API来获得识别结果,最后将结果显示在原始图像上。作为比较,在第二个实验中,我们在终端设备处理所有目标识别的任务。
实验中测试了不同大小、不同分辨率下的检测性能。如图所示,在Raspberry Pi 4上的目标识别时间平均为20秒左右,这对于实时目标识别来说是无法接受的。如果使用Astraea在边缘节点部署目标识别服务,推理时间平均小于0.1秒。即使算上从终端设备到边缘节点的网络传输时间,该方案平均可以节省98.5%的时间。因此,当目标识别任务中的推理阶段被卸载到边缘节点时,终端用户感觉到识别速度比终端设备单机方案快25~110倍。此外,我们还测试了视频中的实时目标识别,结论是相比Raspberry Pi本身处理帧速率提升了50倍。
结论
在本项工作中,阿里云边缘计算团队提出了边缘 AI 部署项目 Astraea,提供从 AI 算法模型到边缘云部署的一站式解决方案,解决模型开发者“算法落地”和“部署运维”两方面的难题。Astraea 能够自动化地完成 AI 服务在边缘节点的部署,将 AI 模型的推理过程转化为 Restful API 接口供终端用户调用,提供低时延、省带宽、广覆盖、易运维的边缘 AI 服务。实验结果表明,通过计算任务的卸载和协同,边缘AI服务相较于传统方法能够得到25倍至110倍的性能提升。
对论文/这个项目感兴趣的伙伴,欢迎联系付哲jeff.fz@alibaba-inc.com