查看原文
其他

如何解决边缘推理中那些异构的“坎”

大话小数 中国金融电脑+ 2022-12-13

验“金”室


在验金室往期文章以小窥大,从视频考勤看边缘智能”中,笔者曾以人脸考勤为例介绍和分析了边缘智能、数据智能的优势。本文将继续深入探讨在深度学习框架“百花齐放”以及专用AI加速芯片“层出不穷”的现阶段,人工智能推理应用下沉到边端不同的推理框架和硬件之上所面临的软硬件异构难题。


边缘智能部署“三部曲”


目前,业界边缘智能应用落地主要采用“云端训练,边端推理”的策略,其部署流程通常分为模型生成、应用编译、应用部署三个阶段(如图1所示)。


图1 边缘智能推理部署流程


1.模型生成阶段


基于深度学习框架(如Pytorch/Tensorflow等)构建算法模型,并完成模型训练,最终输出可执行的推理模型文件。


2.应用编译阶段


从框架层获取已经训练好的推理模型,并对其进行优化,生成可适配边缘计算资源的模型中间表示文件。


3.应用部署阶段


将编译优化后的模型中间表示文件部署到边缘网关、边缘一体机等边缘运行环境上,使推理模型在异构硬件上获得合理的资源分配。


边缘智能部署中那些异构的“坎”


在实际的落地应用中,边缘智能不再局限于单一的推理框架和计算芯片,在推理部署的三个阶段中面临着多层次、多维度的异构挑战(如图2所示)。


图2 边缘智能部署中面临的多层次、多维度的异构挑战


1.在模型生成阶段,异构深度学习框架缺乏通用性


我们面临的不再是单一的深度学习框架(以下简称“学习框架”),而是在各式各样的学习框架之间实现算法模型的转换和迁移。例如,视频流智能分析希望将基于Pytorch实现的开源算法迁移到Tensorflow框架上进行统一的开发部署,由于不同的学习框架之间训练生成的算法模型缺乏通用性,传统的解决策略是将基于其他学习框架的训练模型在Tensorflow框架上进行重新训练,但大多数情况下这种解决方案会因为不同的框架对某种常用算子的定义不同而导致训练结果和预期不一致,继而影响模型的精确度。


2.在应用编译阶段,深度学习推理编译工具重复“造轮子”


目前,业内还未形成成熟的硬件加速芯片生态。面对类型众多的加速芯片,各类深度学习推理引擎难以做到一一适配。为此,各大厂商利用各自独家支持的底层硬件“造轮子”,开发各自的深度学习推理引擎。例如,英伟达的TensorRT专注于算法模型在GPU架构上推理性能的提高,小米的MACE关注移动端和AIoT设备深度学习的运行加速优化,而百度的Paddle Lite更关注对Android和IOS移动端异构加速的支持。


3.在应用部署阶段,以硬件资源为代价的推理部署策略不再适用于边缘推理


边缘计算资源受环境限制通常采用ARM/FPGA/ASIC等轻量级的专用AI加速芯片作为基础计算能力,由于难以提供云端的AI推理环境,导致云边之间的推理环境异构。因此,云端应用的传统推理部署不再适用于边缘硬件的异构环境,给边缘智能推理部署带来挑战:一是边缘端性能/内存/存储有限,复杂的主流框架不适用于边缘端部署;二是主流框架无法直接支持ARM/FPGA/ASIC;三是边缘端通常不需要训练功能,而对前向推理的速度有极高的要求。


业界解决思路


面对层出不穷的软硬件,虽然业界尚未有提供计算芯片、计算框架等异构兼容的全量解决方案,但为应对边缘智能部署的异构问题,业界采取了以下三种实施策略,形成了有效的边云协同解决方案。


1.统一软硬件解决方案


在AI训练和推理部署的过程中,厂商采用专用的软硬件架构作为支撑进行推理部署,加强软硬件结合,为学习框架反向定制专用AI芯片,以提供集核心框架、工具和服务平台于一体的端到端高效解决方案,规避软硬件异构难以适配的瓶颈问题。


以国内首个开源学习框架PaddlePaddle为例,百度以PaddlePaddle为主导,构建软硬件一体化的AI生产平台“百度大脑”,并发布支持该框架的专用AI芯片“昆仑”以及远场语音交互芯片“鸿鹄”(如图3所示),实现AI计算、计算架构与应用场景的创新融合。


图3 百度“鸿鹄”远场语音交互芯片


2.基于主流框架选择性兼容


 厂商针对自身业务需求、客户需求以及产品生态体系,构建自己的全栈推理架构。该推理架构通常不进行全量支持,而是选择性支持满足自身需求的软硬件资源以及业界主流的架构体系,这样既能满足自身发展需求,又可以减少多源异构带来的困扰。


以华为的AI解决方案为例,该解决方案在应用层为客户提供直接接入AI的平台接口ModelArts;在软件框架层不仅提供对自身框架MindSpore的支持,还同时支持其他主流学习框架,比如Tensorflow、PyTorch等;而软硬件接口CANN以及专用硬件Ascend系列则采用自家产品,以全栈式的AI解决方案为终端和云端赋能(如图4所示)。


图4 华为全栈式AI解决方案


采用相似策略的还有Nvidia的GPU和谷歌的GPU架构。


3.主导异构标准共建生态


以解决推理部署的异构问题为出发点,业界头部厂商或者权威机构采用联合共建生态的方式,共同提出应对软硬件异构的解决方案以及实施标准,以在增加自身影响力的同时,促进业界生态的良性发展,从而达到双赢的目的。


以ONNX生态体系建设为例,ONNX是一种针对机器学习所设计的开放式的文件格式,用于存储训练好的模型,软硬件服务商均可基于ONNX标准优化模型性能。它的规范及代码主要由Microsoft、Facebook和IBM等公司共同开发。在软件框架层,目前业界大部分学习框架都对ONNX进行了官方支持(如图5所示),而在硬件适配的问题上,ONNX生态体系则采用推理引擎ONNX Runtime充当一个中间接口的角色,通过Tensor RT、nGraph等加速芯片的推理引擎增加对ONNX Runtime的支持,以达到业界软硬件广泛适配的目的。


图5 ONNX标准支持的模型


在5G“万物智联”的时代,边缘智能可就近提供实时智能边缘服务,为人工智能从研究阶段转向落地实施阶段提供了机遇。同时,业界越来越多的深度学习框架以及层出不穷的专用神经网络加速芯片也给边缘智能部署带来更多挑战。因此,边缘智能的应用部署在保证算法的精确度的条件下,应综合考虑边缘推理应用中临时离线、低时延的计算服务需求以及云边之间推理环境差异等诸多因素,制定合理的端云协调解决方案,有效解决具体推理部署中的软硬件异构难题。






更多精彩内容


FCC30+

长按左边二维码

关注我们不迷路



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存