今天给大家介绍 OpenMMLab 君的一位好基友——OpenPPL 。
咱俩师出同门。OpenPPL 是商汤基于自研高性能算子库的开源深度学习推理平台,提供云原生环境下的 AI 模型多后端部署能力。当然了,它也支持 OpenMMLab 的深度学习模型的高效部署。简单来说,用 OpenMMLab 开发的模型,可以通过 OpenPPL 高效可靠地运行在现有的 CPU、GPU 等计算平台上,为云端场景提供人工智能推理服务。
在性能方面,目前在单 batch 模型推理领域,OpenPPL 在部分模型的性能可以超越 TensorRT 的较新版本,大幅领先 onnxruntime 等开源平台。是不是很给力?
1. 双剑合璧
这部分主要介绍深度学习模型中,训练与部署的关系,对此比较熟悉的朋友,可直接略过,查看后文中支持的 OpenMMLab 模型列表。
要理解OpenPPL的作用,要解释下整个 AI 应用的开发链路。
一般来说,整个过程会经过数据采集和算法模型设计,产出需要的算法模型;模型经过压缩与转换后,使用 AI 推理平台做推理;最后产品落地去使用。
不难看出,这个过程中有两步很关键:训练与推理。
在训练阶段,开发者需要将数据集「投喂」给 OpenMMLab 体系中的算法,以训练神经网络。比如,分辨图像里的动物是一只猫还是一只狗,最终形成一个业务所需并且训练有素的算法模型。
推理则是用经过训练的模型,对新的数据进行预测,比如拿一张训练时没用过的新的图片,去分辨里面是猫还是狗。完成推理这一步,才算是人工智能技术落地应用的开始。
但要高效地部署模型,并不是一件那么容易的事。训练时可能只考虑模型效果好,但推理部署时不仅要考虑模型推理的效果,还要注意性能、运行速度等方面;又或者推理部署时使用的设备,与训练时的会不一样,从而达不到想要的效果。
这就好比说,一个没有做多设备适配的 App,很难指望它可以流畅地运行在各种手机上,即使安装上了,体验也可能不好。
作为 AI 应用落地最关键的一环,推理引擎 OpenPPL 的作用,就是让经过训练的模型可以更高效地运行起来,为开发者提供更好的人工智能推理服务。
不难看出,OpenPPL 结合深度学习时代最完整的计算机视觉开源算法体系(骄傲.jpg)OpenMMLab,可以达到 1+1>2 的效果。
2. 目前支持哪些模型?
OpenPPL 支持 OpenMMLab 各系列的前沿模型,同时提供模型前后处理所需图像处理算子。
1) 支持网络动态特性
2) 提供 MMCV 算子高性能实现
3) 遵循 ONNX 开放标准,提供 ONNX 转换支持
目前 OpenPPL 支持 OpenMMLab 以下模型:
MMDetection
一个提供基准测试的目标检测开源工具箱
- Faster R_CNN
- RetinaNet
- SSD
- YOLOv3
- Mask R_CNN
- AutoAssign
- Double-Head RCNN
- Dynamic R-CNN
- FASF
- GHM
- Mask Scoring R-CNN
- TridentNet
- PAFPN
- YOLOF
MMClassification
一个提供基准测试的图像分类开源工具箱
- ResNet
- ResNeXt
- ResNeSt
- SE-ResNet
- MobileNetV2
- ShuffleNetV2
- VGG
MMSegmention
最全面的语义分割开源工具箱
- ANN
- APCNet
- DANet
- DeepLabV3
- DeepLabV3+
- DMNet
- DNLNet
- Fast-SCNN
- FCN
- GCNet
- HRNet
- NonLocal Net
- OCRNet
- PSPNet
- Semantic FPN
- UPerNet
MMEditing
一个用于编辑任务的图像和视频编辑工具箱
- DIM
- IndexNet
- SRCNN
- MSRResNet
- ESRGAN
- RDN
- EDSR
MMOCR
一个文本检测、文本识别和文本理解工具箱
- PSENet
- PANet
MMPose
一个支持多类物体的2D/3D姿态估计工具箱
- HRNet
- LiteHRNet
- MSPN
MMAction 2
下一代行为理解开源工具箱
- TSN
- SlowOnly
更多支持模型持续更新中 ~
文章来源:公众号【OpenMMLab】
2021-09-09 14:00