简介¶
近年来,得益于深度学习技术的快速发展,计算视觉技术也已经逐渐从实验室中走出来,大步跨入大规模商业化应用的阶段。深度学习CV建模作为一门前沿技术,对于广大的视觉AI应用开发者、工程师而言,想要熟练运用的话是有一定门槛的,主要体现在以下几个方面:
- 深度学习算法代码开发成本高,大量细节debug代价大;
- 模型更新迭代快,对工程师而言,理解背后的原理和细节需要花大量时间;
- 算法训练、推理性能优化需要专业的系统知识;
- 数据标注成本太高;
- 开源算法直接在PAI上使用,有一定的学习和改造成本;
为了帮助PAI上的CV应用算法开发者解决上述痛点,PAI深度学习算法团队研发了一套方便、易用的CV建模框架PAI-EasyVision,旨在帮助CV应用开发者方便快捷的构建视觉模型并应用于生产。PAI-EasyVision的初版发布于2018年十月,其核心能力定位在框架易用性、高性能以及模型丰富度三个方面
- 易用性方面,针对视觉任务的多样性,我们做了面向多任务的,模块化、可插拔的原子化功能接口设计,其功能涵盖了数据IO,预处理,训练,离线预测的整个建模的完整流程,且在PAI的各种环境如Studio,DSW下可以开箱即用;
- 性能方面,算法底层实现封装了pai-tf的多种引擎优化,包括分布式训练,编译优化,混合精度等等,用户通过简单的配置文件即可在PAI环境下享受极致的性能体验,同时也兼容了在开源环境下的使用方式;
- 模型丰富度方面,我们不仅提供了大量的在开源数据集上预训练好的模型,也把我们自研的优秀模型集成到了框架当中(比如端到端的OCR模型),进一步降低用户的开发和训练成本;
在过去的一年半当中,我们继续在上述几个方面持续打磨EasyVision框架。我们在model_zoo上做了大量的模型扩充,提供多种模型的训练预测能力。我们提供了PAI-VIP、PAI命令、PAI-DSW多种灵活的调用方式,满足各个层次用户的建模需求。我们研发了灵活高可用的分布式流水线离线预测架构,支持上亿级别数据的的快速离线处理。 同时我们基于PAI平台系统优化团队的系统优化、模型优化能力,让模型分布式训练更快, 让模型变得更小,更快地在PAI集群、PAI-EAS上进行预测。 此外,我们增加了训练预测的自定义接口,方便用户复用PAI-EasyVision的各种已有功能和优化工作。
易用性¶
考虑到用户分层,有些用户希望通过简单的交互操作完成模型训练,有的用户希望在d2定时调度模型训练、预测任务,用的用户希望复用easy-vision已有模块,在此基础上进行模型结构调整,重新训练。我们分别提供了PAI-VIP、PAI命令、PAI-DSW三种方式供用户使用。
性能优化¶
依托PAI-TF团队进行了分布式训练性能优化,支持高性能的单机多卡、多机多卡分布式运行方式。同时也支持对模型进行inference阶段优化,包括图优化、模型压缩等方式。
对接PAI标记平台¶
EasyVision无缝对接PAI标记平台,使得用户减少对标记数据的格式处理, 通过提供的转换工具,可以方便的将PAI标记格式文件转换为tfrecord进行相关任务的训练。
高效的离线预测¶
EasyVision提供多机流水线的预测系统,方便用户利用easy-vision训练的模型进行离线数据处理,每个处理过程支持多机多线程加速,同时各个过程异步流水线处理,极大提高了处理效率。此外,离线预测也支持用户自定义各个处理过程。
无缝对接在线服务平台PAI-EAS¶
训练过程会产出saved_model,用户可以自行接入原有的在线预测业务系统。 同时PAI-EAS也提供了强大的在线预测服务能力,我们实现了EasyVision eas python processor,用户只需填写如下的一个配置文件,写上你的模型地址以及模型类别信息,即可拉起eas在线服务进行实时数据处理,详细步骤请参考用户手册