2020设计之旅02-清单46【机器学习】独家解读!阿里重磅

来自:UI中国 2020-02-14

第46期:用时约4分

【机器学习】独家解读!阿里重磅发布机器学习平台PAI3.0【下】

第46期:用时约4分

【机器学习】独家解读!阿里重磅发布机器学习平台PAI3.0【下】

EAS:机器学习模型在线推理服务与优化

1.弹性扩缩容:在做EAS(在线预测服务ElasticAlgorithmService)之初,PAI团队是想解决另外一款产品OCR(印刷文字识别)使用GPU进行在线inference的问题。

基于混合云方案,我们开发了一套轻量的在线预测系统,即EAS,来满足我们动态变化的资源需求。开发EAS还有另一个重要原因,即对于使用异构计算资源(如GPU)做模型预测的需求在日益增长。在云上,我们有丰富的异构资源可以使用,包括NVDIA的不同显卡类型,在业务层面上可以根据性能要求和性价比选择合适的GPU型号来进行模型预测。

2.多种模型与开发语言:不仅是当下火热的深度学习模型,传统模型(如随机森林,GBDT等)也同样有模型部署成在线服务的需求。因此,EAS决定实现多维度的支持,并更大程度地提高模型预测的灵活性。我们允许用户以多种语言(现在支持C++/Java/Python)来开发模型预测逻辑(我们叫Processor),允许用户在预测逻辑中加入自己的业务逻辑,将简单的模型预测变成端对端的复杂服务。

3.灵活部署:EAS还有一个比较大的特点,就是部署灵活。我们在立项之初即本着部署便捷、依赖最小化的原则去设计我们的系统。底层基于kubernetes构建,目前可通过Helm一键拉起整个集群所需要所有组件,包括服务管控、监控、日志、前端、网关等等,使得EAS可以非常简单地在任何环境里以敏捷版的形式输出部署。

深度学习的inference优化:PAI-BLADE

Blade是PAI团队研发的深度学习推理优化引擎。整体遵循system-oriented-model-optimization和model-oriented-system-optimization的设计理念,在不断压榨底层硬件计算性能极限的同时,通过上层的模型优化技术来进行模型的剪枝、压缩,从而打开更广阔的性能优化空间。

系统层面,Blade包括计算图优化、底层计算库手工优化以及依托于TAOcompiler的通用编译优化。计算图优化会通过迭代式的计算图变换,来减少用户模型中因为建模灵活性引入的冗余计算操作,同时借鉴了经典编译器领域的peepholeoptimization的思想,会将计算图中若干子图替换为Blade自研的更高效的底层计算库实现。

模型层面,Blade内嵌了auto-compression的模块,支持自动化的剪枝、Kernel拆解、量化等模型优化策略其中量化部分支持固定位宽及混合位宽的量化策略,可以有效地发挥新硬件的硬件加速特性。剪枝部分包括自研的基于模型计算图结构动态适配的剪枝压缩策略,可以很好地适配引入多路连接的现代网络结构,

所有的量化压缩策略,目前都已经嵌入到自动化的auto-compression框架流程里,用户只需要提供模型描述、基础配置,以及再训练所需的样本,即可借助于PAI平台能力,自动化完成模型的压缩变换。

基于FPGA的软硬件联合优化:PAI-FCNN

深度学习的巨量计算需求催生了硬件架构上的创新,例如Google的TPU,以及阿里自研的AliNPU芯片。PAI平台顺应业界AI新硬件的大趋势,利用硬件架构可定制的FPGA芯片,基于“软件定义硬件”的理念探索软硬件联合的深度优化,积累了以CNN模型服务为主的PAI-FCNN方案。一方面,PAI-FCNN提供GPU之外的加速方案,为应用提供硬件定制的可能性;另一方面,PAI-FCNN也起到通往AI新硬件的桥梁作用,为未来新硬件的无缝适配打下坚实基础。

1.低延时的推理服务

针对低延时场景定制的硬件架构可以在最小batchsize下提供最高的性能,适合延时敏感的应用。

2.极低精度模型

极低精度模型可以大幅提高硬件利用率,降低硬件功耗。FPGA的硬件可订制性为极低精度模型的使用提供可能,极端例子比如用二进制表示的BNN网络模型。一个实际使用案例是8位特征值,3位权值表示的视频检测网络。

3.对GPU加速不友好的模型

某些复杂的网络模型很难充分利用GPU的计算能力,针对这些模型定制的硬件架构在FPGA上提供比GPU更强的加速能力和更高的性价比。

Powered by Froala Editor