公有云是云计算概念的主流解决方案,但是对于边缘端部署情况,需要面临如网络延迟太大,网络连接不稳定等诸多问题。提供离线SDK部署方案可以解决以上问题
百度智能云平台包含模型的训练和发布全流程,模型发布阶段会对接训练阶段的模型产出,对于离线部署的客户需要生成离线推理SDK包。EdgeKit对接适配多款硬件如Nvidia-GPU,高通骁龙芯片等。同时为了压缩部署成本,需要对已有的模型实施一系列模型压缩算法,以达到加速目的。
EdgeKit
1. 负责EdgeKit在Nvidia-GPU端上落地,基于TensorRT推理框架开发边缘端推理引擎;负责EdgeKit在高通骁龙系列DSP、GPU端上落地,基于SNPE推理框架的边缘端推理引擎,支持包括SE-ResNeXt、YoloV3、Faster-RCNN等多个CV模型;
2. 拓展网络支持范围和优化推理性能,TensorRT自定义包括relu6、broadcast_mul、upsample等算子,优化算子性能,单线程推理延迟平均减少~5%;开发SNPE INT8量化组件,针对不同的网络结构适配量化算法。
3. 负责开发EdgeKit针对经典机器学习模型的推理引擎,支持包括决策树、逻辑回归等多种机器学习模型,支持框架包括SkLearn、XGBoost、PMML;建设经典机器学习model zoo。
4. 跨平台移植,负责利用MSVC和MinGW工具将EdgeKit的多个C/C++组件适配到Windows平台。
Juicer模型压缩
1. 开发Juicer针对Paddle模型的量化、通道剪枝、知识蒸馏等模型压缩组件,模型压缩方法支持多个CV网络结构,包括SE-ResNeXt、YoloV3、Faster-RCNN等;将压缩后的模型适配到包括Intel-x86、Nvidia-GPU、ARM等多种设备端。
2. 设计并实现组合压缩策略,基于airflow开发相关调度组件显著提升原模型性能,如在Intel x86平台上实现YoloV3单线程推理延迟平均降低155%,模型体积减小153%、内存占用降低237%;主导模型压缩组件升级到动态计算图;优化通道剪枝策略,利用敏感度分析方法搜索更佳的模型结构以达到更优的压缩效果,mAP/Top1平均提升~1%。