本文为希氏异构人工智能首席科学家周斌博士在智东西公开课旗下超级公开课NVIDIA专场进行线上主讲的全程内容。这是超级公开课NVIDIA专场的第八讲,周斌博士带来的主题为《如何利用最强GPU搭建医疗人工智能计算平台》的讲解,这也是希氏异构首次解密医疗图像AI领域最强超级计算机。
周斌是异构智能中国区总裁,同时也是异构智能和希氏医疗的合资公司——希氏异构医疗科技人工智能的首席科学家,在山东大学信息科学与工程学院担任教授,也是NVIDIA中国区唯一的CUDA Fellow以及NVIDIA深度学习学院讲师。希氏异构是从事AI医疗领域的创业公司,专注于CT、超声、皮肤、心电等医疗领域的AI应用技术研发,尤其是在消化内镜AI技术方面。今年6月8日,希氏异构推出了专用于医学图像人工智能技术的超算平台“神农一号”。
本文为周斌博士的主讲实录,共计6673字,预计8分钟读完。一起了解下周斌博士的主讲提纲:
1、医学AI的发展历程
2、深度学习与GPU的平行运算
3、希氏异构医学超算平台
4、AI赋能医疗,推动产业变革
主讲实录
周斌:大家晚上好,我是周斌,今天主讲题目是《如何利用最强GPU搭建医疗人工智能计算平台》。在正式开始之前,我先简单的介绍一下自己。我是异构智能中国区总裁,同时也是异构智能和希氏医疗的合资公司——希氏异构医疗科技人工智能的首席科学家,在山东大学信息科学与工程学院担任教授,也是NVIDIA中国区唯一的CUDA Fellow以及NVIDIA深度学习学院的导师。我自己也一直从事与人工智能相关的工作。
今天将围绕医疗人工智能相关的内容展开,包含如下几个部分。第一,简单回顾在医学领域中人工智能的发展历程以及现阶段需要解决的问题;第二,用最新的深度学习和GPU的并行平台该如何去搭建;第三,介绍我们在希氏异构研发完成的一台全国性能最高的医疗人工智能深度学习超算平台的搭建;第四,如何利用AI来赋能医疗行业,推动产业变革。
AI是个非常火的话题,那么AI的本质是什么?工业革命实际是提供了解放人类体力的工具,利用外部的能源,获得体力的倍增。而新一代的产业革命,是以AI、深度学习以及大数据为主的数据智能革命,是解放人类的脑力,通过使用一些能够进行推算以及模仿生物行为的算法和硬件系统,人可以真正让大脑获得解放,用智慧的方式去解决周边的问题。
回顾一下人类对自然界的认识过程。首先是观察,观察需要有传感器,而传感器就是我们各种各样的器官,比如眼睛接收视觉的信息,耳朵接收听觉的信息,鼻子接收嗅觉的信息,手接收各种触觉以及温度传感器等等,这些传感器是我们的观察器官,观察获得的信息会在神经系统汇总,其中包括大脑、小脑、脊髓等神经系统的汇总。通过大脑处理系统,生物体也是非常类似地对观察到的数据进行逐步的抽象,形成认识,从而获得对周边世界的感知。
对于医学的发展,有一个类似的过程:医学是我们认识自身的过程,通过基础的观察,获得某些病症和症状的数据;这些数据通过类似于人脑的汇总,包括一些医疗体系、医疗知识和疾病知识的汇总,最终统一出医疗诊断的结果。
对于医学来说,医学领域中最大的成本是医疗知识和医生。医生的培养要消耗大量的时间和精力成本,医疗知识的传递和积累是需要大量的时间成本。自从人类诞生以来,如何去治疗疾病就成为我们知识积累最核心的问题之一,医学领域中的医生更是成为了最稀缺的资源。而医生对于疾病知识的传递和积累以及对于症状的分析和理解是受限于我们的脑力的,人的脑力和人的思维效率总是有限,因此,目前好的医生非常难得。
我们利用最新的计算机技术将新的AI应用到医学,最核心的目的就是加速扩充人的脑力,让AI能够帮助医生去解决一些以前大量消耗脑力的问题。而这些问题中最基本的一个问题是基础诊断问题,当然,AI不能做到百分之百可靠的工作,人也一样,人也无法做到百分之百可靠工作,但是当AI的识别鉴定能力和准确度达到人的水平甚至超过人的水平之后,就可以极大地解放我们的脑力,让我们去关注真正用于创造性思维的那一部分。
医学AI的发展经历了从最基础的单一学科和单一形态向多模式数据以及交叉学科的发展过程。随着医疗影像和医疗数据采集手段的增加,数据变量的增加以及难度在增大,医疗诊断的价值也在逐渐地增大。因此,如何从复杂的多模式数据中获得有效的诊断数据,是摆在医学院面前一个最关键的问题。选择医疗图像是因为图像手段是最直接也是获取量最大的信息来源。
医疗AI的基本目的不是去复制人类医生的技能,而是增加我们认识疾病的能力。我们认为医学AI在AI和在医学中,是一个工具型、辅助增强型的工作,而不是去彻底替代医生的工作,尤其是在最近的一段时间,人工智能的发展虽然日新月异,但是离着我们认为的真正强人工智能还有很远的距离,现阶段基本都是弱人工智能,这些人工智能可能在单一的任务中表现能力会强过人类。我们也是通过这些单一任务工作让AI来解放人类医生。
提到医学AI,就不得不提如何来去实现AI。简单回顾一下人工智能的历史,是非常久远的,中国古代周朝的时候有个故事,那时候是有一个人做了一个木偶,可以唱歌,跳舞,甚至给周王的妃子眉目传情,我们理解这是中国人对最早期AI的一个想象。近代的AI是上个世纪四五十年代图灵提出的,经过多年的发展,AI的实现方式多种多样,而现阶段最主要的实现方式是深度学习。
之所以选择深度学习,是因为深度学习非常有效,在很多领域中可以极大地超越人类的表现能力。但有效的原因目前还无法从理论上直接去证明,对于任意三层的神经网络,只要它的宽度和规模足够大,那么它一定可以去逼近任意有限空间中的连续函数。
之所以深层的神经网络会表现得更好,是因为它的抽象能力和层次性更强,可以获得对于特征的自动提取。但是这些从理论上来讲浅层次的神经网络是没有理论突破的。反过来,这些问题我们可以抛在脑后,只需要知道深度学习在工程上非常有效就行。
这一代深度学习和人工智能的爆发有三个最主要的因素:大数据、新的深度学习算法以及超强算力。在2012年ImageNet比赛中,通过GPU训练出来的AlexNet以极大的优势来夺得当年的冠军,代表深度学习能通过使用很强的计算能力系统最终获得胜利,因此计算能力是进行深度学习的非常核心的因素。
深度学习虽然不是AI的全部,但是离开了大数据、超强的计算能力,就无法进行有效的深度学习。
深度学习可以涵盖非常多的层面,最基础的感知层如基础数据获取,到理解层如对一些已知的疾病病灶去判断疾病类型和范围等等,这些都可以做出较好的深度学习效果,现阶段比较困难的问题是深度学习的决策,由于决策系统需要跟环境和对抗去相关的一些内容,因此从最基础的感知到理解判断识别再到最终的决策,这些都可以用深度学习完成。
深度学习的基本要素有大数据、算法和算力,仅有数据和算力是不够的,算法是行业中特别重要的技术研发的关键,同样的行业认知能力、经验以及医学知识在深度学习中同样具有非常重要的位置。这一代的深度学习最主要的优势是对于数据特征的自动学习,这依赖于大量的标签数据,虽然目前也有一些新的学习方法,比如非监督和半监督学习方法能够极大地减少对于标签数据的依赖,但是依然需要足够多和足够好的行业标签数据才能够让我们获得对于行业数据特征提取的效果。
因此希氏异构搭建了一台专门用于医学人工智能的超算平台,它的主要工作是通过搜集大量的高质量医疗数据,获得对于特定问题的特征理解和识别。
由于现阶段我们依赖于大量的数据,因此必须要有足够多的吞吐能力来处理我们的数据。举个实例,我们大概处理了一百万张原始的医疗影像数据,通过对这些医疗影像数据的分析,形成了一个非常有效的模型。如果用常规的训练系统,对于这一百万张的数据进行相关的有效的目标识别和提取,所需要的时间是非常长的,但是如果我们利用最新的GPU大规模并行平台,并且开发相关的底层解决方案,就可以压缩到非常短的时间。
这个系统的本质是在做医疗领域中影像数据的分类,是通过利用了大量的GPU系统来获得加速。底层的数据交换是利用了RDMA机制,可以获得接近线性的加速比。
我们把这个平台叫做神农一号。它由64块NVIDIA Tesla V100组成,分布于8个独立的机箱,每个机箱有8块Tesla V100,将这些系统放在若干个机柜中,通过高速的InfiniBand进行互联,从而组成一个非常强大的处理系统。
单颗Tesla V100的峰值深度学习操作能力非常高,最高可以超过100TFLPOS每秒。64颗V100组成的超算训练平台训练ImageNet模型只需要52分钟,而使用单颗GPU训练平台需要两天左右的时间,这只是一个例子。在我们的系统中,我们的模型会比ImageNet复杂很多,通过这样的模式可以极大地节省时间。同时通过我们自己研发的底层超算并行训练软件可以在超过1024个GPU系统上保持90%的线性加速效率。
上图是机箱打开的具体情况,每一台机器有10个PCIE插槽,其中我们把八块Tesla V100插入到PCIE 30×16卡槽上,而InfiniBand交换卡是插在另外的PCIE插槽上去。
这是超算平台的系统架构。上面一层由Mesos来开发的资源管理层,下面我们做了改进版的Caffe /TensorFlow求解器,这个求解器最大优势是可以进行分布式的SDD求解,并且保证效率和结果。之后通过NVIDIA Docker进行统一管理多个节点上的不同镜像以及通过RDMA进行底层的数据通信。
使用了资源管理调度系统,就意味着我们需要在多个结点上进行计算任务的有效调度。我们有一个主节点,这个主节点会运行基础调度的调度器接收用户发过来的任务。整体来说,在这个平台上可以进行多个任务的同时计算,通过Mesos底层进行资源的分配,在每一个节点上会有一个执行器,这个执行器负责将相关分割出来的子任务进行分析执行。
这是在Tesla V100 GPU上进行标准ImageNet分类的性能比对。主要是指每秒钟Training端可以进行多少张图片的吞吐速度。可以看到,对于ResNet来说,不同的Batch_size的吞吐效率也是不一样的。一般意义上理解,Batch_size越大,吞吐效果越好。
我们为这个超算平台专门了开发了WebUI,通过网络可以将进行所有的基本训练任务的提交,以及所有任务状态的监控,同时实时地监控所有硬件的资源占用情况。
这里会实时地显示所有的计算资源,包括Memory、CPU占用率、GPU占用率以及任务调度情况和网络情况。这是一个基准的测试结果,通过标准的Resnet和GoogleNet训练过程,可以看到在不同的GPU数量上,加速性能也很不错,比如在最后32颗GPU上,获得了27.6倍左右的加速比,整个效率也是不错的。
最终通过这样一台功能强大著名的超强的GPU服务器训练出针对于多种疾病的学习模型,比如消化道疾病等这些学习模型,目前对于消化道疾病的检测准确度已经超过了95%,并且模型可以实时在每秒钟6人的情况下同时执行。这对于在前端进行消化胃镜检测操作的医生和病人都是一个极大的优势。
同样地,通过训练好的模型,把有经验的医生对疾病诊断的一些经验和知识固化到模型中,同时可以推广这个模型到很多不同的医院中,尤其是水平不足的医院,这样可以有效地去改变资源分配不均的现状,从而推动整个医疗产业的变革。
医疗产业是一个非常有价值的AI落地场景,我们期望通过AI技术能够为万物互联的智联网平台服务,解决很多大数据解析的工作,并真正地用人工智能去为行业以及生活带来更好的前景。我今晚的分享到这里就结束了,谢谢大家。
Q&A环节
问题一
王昌淼-中科院-工程师
1,3D深度学习在医学影像中的应用技巧和难点?
2,多GPU如何做交互来处理大的3D块?
周斌:1、深度学习本身不太关注是几维的数据,只是模型需要几维的输入而已。而三维深度学习可能输入的基础数据是三维的,对于医疗影像数据来说,三维深度学习是比较直接的过程,通常意义上,我们可以在二维上去完成,之后再进行三维的重建,从而获得对于三维数据的分析结果。从本质上来说,这两者差别不大。如果我们关注三维深度学习本身的相关性,比如做脑肿瘤或者某一个三维病灶的重建,同时又想用深度学习在三维空间中进行分析和识别,这时有一个重要的应用技巧,就是需要用三维卷积的方式来实现,三维卷积就相当于每个切片作为其中的一个通道,把它改变成一个三维的卷积即可。
2、关于多GPU进行交互,可以通过RDMA的方式来进行交互,如果底层系统支持得比较好,比如InfiniBand和RDMA可以有效地结合。一般来说,我们会把大的3D块切分成若干个小的体数据,这些体数据交界的地方,我们称之为边界。边界上要有一些重合以防止越界。一般情况,我们会进行体数据内部小块的独立传输,边界进行交互,需要注意的技巧是进行数据传输计算的并发掩藏。
问题二
刘超-首联科技-算法负责人
1.GPU加速对深度学习效果显著,医学情况下获取图像分辨率高,很可能是类似于切片的3D图像 是否有适应这种运算和网络的库或者模型来支持 ?
2.在未来,有没可能对疾病的病理癌症细胞的癌变的检测,进而建立起一套适应大多数人的系统,在针对个人的情况对这个主系统微调,来适配每一个病人,走个性化医疗方案。
周斌:1、很多断层处理技术最终是需要进行切片的三维重建,在重建过程会形成一些3D图像。可以用三维卷积运算在3D图像进行识别、分割和检测等操作。类似于二维,只不过增加了一维向量即可。对更底层来说,这种运算本身完全可以利用cuDNN这样的基础库来做。至于网络模型,这就需要自己去适应性地修改了。
2、这个问题相对比较开放,也是比较专业的医疗问题,我认为这是完全可能的。疾病本身是人体对于外界环境变化的响应,不同的人由于基因的表达形式不同,对于同样的影响因素可能表达出来的现象也不一样,治疗的方式也可能不一样,比如同样是感冒,分别有热感和冷感,有的人流鼻涕,而有的人是咳嗽等等。个性化医疗会是一个非常好的方式,也是我们希望能够实现的方式。
问题三
陈星强-心知科技-机器学习算法工程师
1,医疗人工智能平台如何处理大量DICOM数据的归档和调用问题?
2,医疗人工智能平台如何实时监测数据处理过程中可能的突发问题,大规模的运算如何进行作业的有效管理?
周斌:1、这是一个非常专业的问题。目前在医疗影像数据中标准的格式就是DICOM。DICOM是保存了病人的信息以及检测设备的信息和最终端的医疗影像。一般情况下,DICOM是一个非常规则化的数据格式,因此处理归档和调用是非常简单的,有大量的解析模式可以自动解析。而对于归档,DICOM本身带有档案文件信息,因此我们可以直接以文件的模式保存即可。
2、医疗人工智能平台在实时监测数据的处理过程中会有一些突发性的问题,这也是我们为什么在整个平台设计中会设计监控的主节点的原因,这个主节点主要负责资源的调度,比如某一个节点出现了问题,我们可以进行及时的任务迁移以及一些检查点的保存等模式。对于作业的有效管理,已经被研究得非常深入,目前有非常多的开源软件可以实现,从基础的调度上来讲,有很多不同的调度算法,而目前用的Mesos资源调度系统的是一个比较快捷和高效的调度系统。如果仅从硬件或者任务软件执行的角度上来讲,人工智能平台监测数据处理过程还是比较直接的,只需要监测特定任务的执行工作情况即可。但是其他的突发问题,比如有一些抢占性任务或者时效的问题,暂时不在我们平台设计的规格之内,尤其是实时监测数据,实时监测数据我们是通过前端来部署Inference系统来解决,而不是完全仅仅依靠后台云端作业来解决。
问题四
宫政-中国信息通信研究院-ICT工程师
目前医疗影像的分辨率一般在什么程度,对人工智能算法的影响如何?如果使用4k的影像设备对智能识别的帮助会有多大?
周斌:对于医疗影像的分辨率,由于不同采集方式的分辨率差别是比较大的,比如我们现在常见的医疗影像,包括X光、CT、MRI、超声等等,常规的比如超声的分辨率一般是比较低的,而一些新的手段,尤其是以MRI和CT为主的断层扫描方式,它的分辨率是比较高的。4k的影像数据对智能识别会有帮助,尤其是对于一些细小目标的识别会有很大的帮助。实际上,主要并不是在于它是多少k的点数据,而在于它的基础解析度,基础解析度代表对不同扫描对象的每一个像素单元所代表的几何物理尺寸,几何物理尺寸越精细,对智能识别的效果帮助就越大,可以获得更多的细节信息,同时也可以有效地帮助我们去理解一些复杂的问题。
问题五
何锐-环宇智行-FPGA架构师
相对FPGA硬件加速的优势,GPU的运算能力不足时可以怎样扩展?
周斌:这是一个非常好的问题。FPGA作为一款可以进行硬件逻辑编程的软件,它的性能有一定的优势,而GPU最大的优势是在于提供足够好性能的同时,具有非常良好的编程和应用开发环境,相对应的库和整个的生态都很充分,开发便捷、使用方便、调试也很方便。但是对FPGA来说,开发硬件的架构就会比较困难。当GPU计算能力不足时,第一个方式是采用多片GPU进行扩展,其中会涉及到并行化的问题。第二个方式是换最新最好的GPU,但这需要考虑到成本问题。另外,好的FPGA,它的成本也是非常高的,同时FPGA中的硬件加速单元相对来说是比较有限的,在开发过程中,资源上要非常谨慎。
课件获取
第一讲,NVIDIA大中华区高性能计算及Applied Deep Learning部门技术总监主讲赖俊杰,主题为《如何搭建适合自己的深度学习平台》
第二讲,NVIDIA高级系统架构师吴磊主讲,主题为《如何为深度学习和HPC提供更高算力》
第三讲,NVIDIA DLI认证讲师侯宇涛主讲,主题为《不需要写代码,如何用开源软件DIGITS实现图像分类》(线上实践课程,无课件)
第四讲,图玛深维首席科学家陈韵强、NVIDIA高级系统架构师付庆平共同主讲,主题为《深度学习如何改变医疗影像分析》
第五讲,NVIDIA DLI认证讲师侯宇涛主讲,主题为《手把手教你使用开源软件DIGITS实现目标检测》(线上实践课程,无课件)
第六讲,西安交大人工智能与机器人研究所博士陶小语、NVIDIA高级系统架构师易成共同主讲,主题为《智能监控场景下的大规模并行化视频分析方法》
第七讲,清华大学计算机系副教授都志辉、NVIDIA高级系统架构师易成共同主讲,主题为《GPU加速的空间天气预报》
第八讲,希氏异构人工智能首席科学家周斌主讲,主题为《如何利用最强GPU搭建医疗人工智能计算平台——医学图像AI领域最强超级计算机首次解密》
第九讲,NVIDIA中国GPU应用市场总监侯宇涛主讲,主题为《揭秘深度学习》
第十讲,NVIDIA高级系统架构师张景贵主讲,主题为《在你的桌面端通过NVIDIA云端GPU开展深度学习》
扫描下方二维码关注智东西公开课服务号,回复关键字“NVIDIA”获取往期课件