从科研、金融、零售到工业、农业等,越来越多的行业和商业场景正在应用人工智能提高效率,降低成本。人工智能在产业升级、改善人类生活方面发挥着越来越重要的作用。开发者在部署AI模型时,会面临一个使用场景问题:不同的使用场景和业务问题,需要对模型采用不同的部署方式。可以通过多种方式部署AI模型。常见的模型部署形式分为两种:服务器部署和嵌入式部署。服务器部署是指将模型部署在CPU/GPU上,形成可调用的API接口。可根据需要选择云服务器部署和本地服务器部署;嵌入式部署是指将嵌入式设备部署在边缘侧或端侧,在单机上进行离线操作。下表比较了两种部署方法的特性。当用户的模型应用场景没有网络覆盖,或者业务数据比较机密,或者对预测时延要求高时,往往会选择嵌入式部署方式。嵌入式部署方式具有实时响应、低网络开销、隐私保护、高能耗比等优点;但同时,由于边缘设备种类繁多,适配和部署难度大。在百度和波士顿咨询集团的联合调查中,我们发现在有定制化商业模式需求的客户中,超过35%的场景需要离线边缘计算。前文提到,由于设备的多样性,端计算的研发和部署成本要高于云部署,而且往往实际业务场景对端上运行的模型的时延和稳定性有极高的要求。.因此,如何将定制模型部署到各种终端设备上是一个技术难题。为满足开发者多样化的部署形式需求,百度大脑一站式AI开发平台EasyDL支持多种部署方式,包括公有云部署、本地服务器部署、设备端SDK、软硬件一体化方案等。EasyDL是基于飞桨的一站式企业开发平台。提供智能标注、模型训练、服务部署等全流程功能。内置丰富的预训练模型,全面支持飞桨大师模式。它面向不同的人群和需求。提供三个版本:经典版、专业版和零售版。EasyDL支持的多种部署方式适用于各种业务场景和运行环境,方便开发者根据需要灵活选择。支持的设备也非常丰富,从最常见的x86、ARM、Nvidia-GPU,到NPU、FPGA,支持10多种硬件。由于百度飞桨深度学习平台相关功能的支持,EasyDL具有强大的端计算部署能力。在生成端计算模型时,会经过一系列的优化、加速、压缩等功能。对于这一系列能力的解释,我们可以从网络结构层面和芯片能力两个方面入手。在网络结构层面,会进行opfusion(如conv-add-relu、conv-bn等)、fp16/int8量化、模型裁剪等优化。以最近推出的ARM定点量化为例。其优点包括低内存带宽、低功耗和低计算资源占用。在一些网络中,它可以带来4倍的模型压缩,4倍的内存带宽提升,以及更高效的缓存利用。在很多场景下,定点量化不会造成网络精度的额外损失。量化主要分为两类:PostTrainingQuantization和QuantizationAwareTraining。前者是定点量化方法,利用KL散度等方法确定量化参数,不需要重新训练。后者是对训练好的模型进行再训练,建立模数来确定量化参数。在量化训练过程中,前向传播的工作流程可以表示为:基于模拟量化训练的前向过程的等效工作流程将插入连续的量化op和Dequantizeop,并改变相应反向算子的输入。在评估阶段,将量化算子的参数改为量化值,最后通过PaddleLite工具将模型文件中的参数数据类型改为int8na?vebuffer形式。在后续的版本升级中,EasyDL将继续推出模型裁剪和优化。根据灵敏度选择最优的裁剪比例组合进行部分卷积和裁剪,可以达到模型体积减少一倍以上,精度损失小于1%的优化效果。结合定点量化和后续的蒸馏策略,将进一步全面优化模型的体积和推理速度。在芯片层面,EasyDL会根据具体的硬件类型进行专项优化。例如芯片支持ARM64上的NEON,将充分利用其16个128位寄存器优化浮点运算;在NvidiaGPU设备上,EasyDL将使用TensorRT库来计算和加速子图;CoreML引擎用于加速推理;在华为手机上,如果支持DDK,会调用华为HiAI引擎进行推理。此外,EasyDL还支持英特尔的MKLOpenVino、高通的SNPE等推理引擎。在某些平台上,可以根据具体的深度学习网络和芯片类型进行合理的自动选择,在保证精度的同时最大限度地发挥芯片能力,大大提高推理速度。经过网络、硬件等各个层面的优化,模型在大小、内存占用、推理速度等方面都会有更好的表现,部分模型的推理速度可以提升数倍以上。近日,EasyDL新上线了对华为Atlas200和Atlas300加速卡的支持,可以支持最新的基于达芬奇的Ascend310AI处理器,同时兼顾开发板和服务器场景。结合EasyDL已有的优化技术,在EasyDL的高性能模型上可以达到6ms的性能。开启多批次优化后,单张300加速卡每秒最高可处理1000张图片。在EasyDL平台上,模型加速优化的整个过程都会在系统中自动完成。用户只需根据自身场景需求选择具体硬件,即可自动生成适配相应硬件的端计算部署包。现在,用户在发布模型时,只需勾选“同时获取加速版”,EasyDL后台会自动为用户生成具有量化、压缩等优化能力的加速版SDK和模型,并且用户可以直接下载使用。过程也基本相同。而且部署包的使用非常快捷方便。用户无需关注深度学习和具体硬件等底层逻辑,只需要关注输入图像和输出识别结果。目前,已有不少企业根据具体的业务场景,使用EasyDL平台仅用少量业务数据训练出高精度的AI模型,并根据使用场景和运行环境选择了合适的部署方式。加速版SDK的量化压缩等能力,使用门槛低,方便快捷,正在越来越多的业务场景发挥作用,快速解决业务需求。立即试用EasyDL:https://ai.baidu.com/easydl/
