2.二是需要设计分布式深度神经网络模型及算法;
3.三是需要一个大的深度学习计算平台以及平台管理软件。
针对上面三个方面的挑战,我们从四个层次去设计整个AI计算解决方案:
第一层次是平台层:从整个AI计算过程的不同特点需求,我们会设计数据预处理平台、训练平台、推理平台,采用不同的网络和存储。
第二个层次是管理层:对于复杂的计算平台,我们需要对资源要进行一个合理的管理、调度、监控、分析,需要一个系统管理平台。比如说浪潮设计的针对深度学习场景的深度学习管理平台AIStation。
第三个层次是框架层:现在的很多开源出来的框架,如Caffe,包括我们浪潮设计的Caffe-MPI、谷歌的Tensorflow、百度的Paddlepaddle,微软的CNTK等等,这些框架来帮助解决深度学习的训练和推理的一些过程。
第四个层次是应用层:针对实际的应用场景进行AI应用开发,比如图像和视频类应用,语音类应用,以及自然语言处理的一些应用,这些应用场景我们如何采用AI的方法和算法来进行实现。
平台层面临的挑战及解决方案
在设计平台层之前我们先看一下AI应用的计算过程。首先我们会收集到不同的数据,比如说CT影像的数据、语音的数据,这些数据我们会传送到数据预处理平台,进行图片的噪音等处理。处理完之后我们对数据做标注,形成训练的数据样本集。训练样本集我们会送到模型训练的集群进行学习,也就是模型训练的过程,模型训练完之后会获得一个智能的模型,这个模型我们会把它装载到不同的终端,比如说工作站、手机、平板,或者说一些云计算平台。最后会推理或识别出智能的结果,比如会判断CT影像是否有病灶,识别是什么方言等。
为了大家对AI整个场景理解得更透彻,我们举个谷歌的医疗影像的例子,谷歌最开始从医院里面收集到12.8万张眼底照片的数据,然后首先对这些照片经过图像的检测分割等数据预处理,预处理完之后对整个眼底特征进行标注。预处理和标注完之后获取了训练的样本集,这些训练样本集会采用深度学习的一些框架,如TensorFlow进行模型的训练,训练出来的模型会应用在终端,比如说手机上面,进行辅助诊断。
这个应用场景看到采用AI技术的效果是非常好的,其综合灵敏度和特异值达到了0.95,比八个医生小组的评估值0.91还要高。这个医疗影像的AI典型案例基本上涵盖了三个过程,就是数据预处理、模型训练和推理识别。
但数据预处理,模型训练和推理识别这三块的计算特点是不一样的,比如数据预处理主要是IO相对比较密集,计算量相对较少一些;模型训练计算量比较大,通信也相对比较密集;针对推理识别,需要比较高的吞吐处理能力和对单个样本低延时的响应。
根据对AI计算过程和特点分析来看,AI平台层设计所面临的挑战主要包括三个方面:
一是在数据预处理阶段,会涉及大量的小文件随机读写的问题,如何提高数据访问效率是在数据预处理阶段面临最大的挑战。
二是在训练阶段,因为会涉及到大量的模型进行调优,我们会训练出一个最优的模型出来,这里需要的计算资源是巨大的,这是第二个挑战。
三是在推理阶段,一个样本,如一张图片或者一个语音样本过来之后,我们如何进行及时的响应,成千上万的样本批量过来的时候,整个系统的吞吐率如何提高,是推理阶段面临的挑战。
所以AI平台层的设计我们从几个方面来进行针对性的设计:
1.计算架构,采用CPU+GPU+FPGA混合异购模式,训练采用P100/P40 GPU,推理采用P4 GPU或者FPGA低功耗计算架构。
2.存储架构,对于训练平台,主要采用高性能的分布式Lustre存储;对于线上推理平台,采用HDFS存储架构来设计。
3.网络架构,对于训练平台,采用高速互联的IB网络;对于线上推理平台,因为每个计算节点之间并不需要通信,所需要的网络带宽并不需要那么高,所以一般会采用万兆。