加速装置

高文AIfor生命科学理解未来科学讲座实

发布时间:2023/7/13 3:26:02   
专业白癜风治疗 https://mjbk.familydoctor.com.cn/bjbdfyy/

《理解未来》科学讲座01期——“AI+蛋白质结构和功能预测”,我们特别邀请到中国工程院院士、鹏城实验室主任、北京大学博雅讲席教授高文做专题分享《AIfor生命科学》。高文教授是计算机专家,由他主导成立的鹏城实验室推出了鹏城云脑Ⅱ智能算力平台,实现世界超算打榜中吞吐性能方面绝对领先。本期讲座中高文教授围绕云脑II:AIforScience智能算力,以及鹏城·扁鹊大模型等最新科研成果进行了分享。

高文:晓亮教授、各位听众,我本人不是做生命科学的,做计算机科学比较多一点,今天就AI的分析和大家分享一下。今天我想分享的内容是AIforLifeScience,主要是指鹏城国家实验室做的一些工作,围绕两个方面分享:一个是关于智能算力,人工智能要想为AIforScience工作,算力、算法结合在一起可能是比较好的工具,所以核心是算力作为工具,可能会介绍云脑II,另一个是鹏城·扁鹊大模型所做的探索性的想法和工作,最后进行小结。

我们知道,现在人工智能确实给我们的科学研究带来了很大的推动,过去几年我们很容易看到,有了人工智能以后在科学相关的论文,利用人工智能技术论文发表的量增长的速度很快,仅仅年就有34.5%的论文增长。算力在改变这些研究模式也带来了一些革命性的变化,比较有名的工作也被大家经常引用的就是利用人工智能、AlphaFold2解决了结构生物学五十年的难题,人工智能也为高能物理问题的求解带来了更多的便利,采用智能算力平台,通过智能算力+算法+数据就可以发现一些新的物理现象。

有了数据、模型和人工智能,什么样的东西效果可能更好呢?科学发现,模型的效果其实是和模型的复杂度有一个正相关的关系,叫做万能近似定理,年由科学家提出来的。图中可以看出,随着训练数据量和算力的增加,模型的精度就会变得越来越高,也就是说如果有足够大量的数据和足够强的算力,加上一个好的算法就可以使得模型和实际理论值变得非常接近。大家现在都在看作为利用人工智能的科学研究,要看谁有更强的算力、更大的数据,当然还要有一个好的算法。

大家可以看到,年到年,一系列的机构发表了一系列大模型,这些模型的数据规模和模型规模都在不断增加。比如我们经常说的年6月OpenAI发表的GPT模型,当时模型的数据规模只有4GB,模型参数规模只有MB,到了GPT3模型。年6月,数据规模已经达到2TB,模型规模已经达到,也是在进一步增长。不仅仅是国际机构,国内也有很多机构在同步进行这样的工作。年11月以及去年4月,智能研究院、鹏城实验室都发布了一些大模型。

为什么要进行并行训练呢?可以想一想,如果是用打隧道、打眼放炮,需要两个小时打一个炮眼,如果有五十台钻机可以同时一起上,也是花两个小时,只有一台的话要打五十个眼就是一百个小时,要是五十台钻机的话两个小时就解决问题了。当然,要是说有一千台钻机,只能打五十个眼的话有一千台也没用,还是五十台的量。并行训练就是有足够多的处理器、足够多的GPU的时候,能不能把要训练的东西全部摆开,能够让每一个设备全部用上去,能不能做到这一点?能够做到的话当然训练的速度就比较快,做不到的话有再多的算力也没有用,所以就是看怎么做好并行训练,这是计算机科学家在AIforScience必须要解决的问题。

当然,可以解决的就是在数据上并行、在算法上并行,但现在作为模型训练还有一个混合的专家大模型做法,就是小规模训练的时候通过MOE,或者混合专家大模型的扩展,就是把若干个小规模训练的模型通过加权求和得到了一些输出向量。尽管是很多的小规模训练的模型,但仍然可以做到一个比较大的、比较稠密的大模型出来,但这和直接计算稠密大模型肯定会有一些损失,如果能够把损失控制得好,加权求和足够理想的话是可以忍受的。

为了做并行,我们在这里可以有不同的技术手段来做。比如可以设计不同的并行策略,设计以后对通信和计算在模式上就会有所区别,应该怎么去摆布?底层的拓扑结构也会对性能有很大影响,比如在输入数据可以对其进行并行,也可以在参数模型进行并行,可以在数据维度上进行并行,可以在模型维度上进行并行,可以在多专家维度上进行并行,还可以去做组合,比如数据并行+模型并行,数据并行+多专家并行,模型并行+多专家并行等等,从不同组合中找到最优解。

除了算法并行、参数并行和模型并行,还有一个很重要的就是数据并行。我们知道人工智能数据的量越大,可能得到的模型就会越精确,当然数据量大的话就是看怎么对数据进行存储、更新和传输,这里也有许多并行需要解决的问题。我们需要把不同的数据分散存储到不同的节点,如果存储得足够好,使用的时候就不会互相打架,如果存储得不好就会出现数据等待,使得并行的效率低下来。如果选取一个好的数据并行和好的模型并行的策略,可能就会得到一个比较高精度的模型结果出来,选择合适的数据精度对提高计算性能、降低内存占用还是有非常大的好处。

图中可以看出一个Trade-off,要想准确度高、训练少的话,需要训练的精度高,这个时候占用的存储就会比较高,反过来当用低精度的训练,可能占用的存储没有那么高,但模型的质量就会比较差,所以需要做一个Trade-off,找到这个点到底在哪里。通常我们把这个合理的点叫做混合精度训练,但通常和使用的精度有关系,所谓的精度就是计算机中怎样表达一个数据。我们通常叫做半精度浮点、单精度浮点和双精度浮点,三者是什么关系呢?半精度浮点用的是16位数据的表达方式,单精度浮点用的是32位数据的表达方式,双精度浮点用的是64位数据的表达方式,但如果经常做人工智能训练一般都是使用半精度浮点,就是2字节或者16位表达数据。通常这里有一个比较理想的表达范围,比如FP16这个范围,比较精确的是从这个区间表达比较精确,中间的蓝色区间就会产生比较大的失帧,到了左侧的区间基本上就被截断了,也就表达不出来了,所以选择一个比较好的参数分布的表达对整个训练也是非常重要的。

在训练中选择一些合适的专家进行计算也是非常重要的,比如专家0模块、专家1模块、专家2模块,下面有各种各样的输入,也可以通过一个网关把数据送给不同的专家进行训练,如果排得好的话就不会产生阻塞。我们知道不同的模块中,能够拿到的数据数量是不一样的,有的比较流行的模块就很容易拿到非常多的训练数据,有的模块能够拿到的数据量比较小。举个例子,要想做人脸识别训练,这是一个非常流行的数据和模块,数据量会非常大,因为有太多的人愿意标注人脸数据,所以要做人脸识别模型就可以拿到非常多的数据,要做兔子脸识别的话,喜欢标注兔子脸数据的人就会非常少,能够拿到的数据量就很小。需要做动态负载平衡协调,因为本身负载是不均衡的,有些模块数据量非常大,有些模块数据量非常小,怎么进行均衡而不是平均简单地分配,这样对提高并行度和效率是非常有好处的。

鹏城实验室为了做刚才所说的各种各样的大模型也设计了一台装置,就是计算能力非常强的人工智能训练计算机,我们将其称为鹏城云脑II。在此之前还有一个鹏城云脑I,是用NVIDIA的GPU组建起来的训练设备,里面有PB的计算能力,就是每秒钟10的17次方算力。鹏城云脑II要比鹏城云脑I算力强了10倍,每秒钟是10的18次方运算的机器,我们可以在里面做理论研究、核心技术和智能应用,其中大部分都是超大规模AI模型训练。我们说这台机器是10的18次方/秒钟的操作,这也是用1E算力,我们经常说1E算力的超级计算机,其实这就是每秒1E次人工智能训练的机器。这台机器有64PB的存储,存储量是非常大的,同时延迟也是非常低的,节点之间的通信只有2微秒。

我们这台机器是年10月做出来的,到现在一年半的时间,曾经参加过3次世界超算打榜,IO这个单项指标连续3次世界第一,不仅仅是在IO,其实人工智能性能TOP比赛中也是获得第一。目前和NVIDIA最好的机器相比,在做自然语言处理的时候效率要超过NVIDIA处理器,图像分类要比NVIDIA机器略差一点,但实际上是不相上下的,不管是C语言处理还是图像分类训练,它的性能都是最好的。

鹏城云脑II到现在为止利用算力平台做了相当多的事情,进行各种各样的全自动并行训练,开发了一套技术,这项技术当然是以华为MindSpore底盘做的,搜集了大量中文语料数据,也和不同的新兴研发机构合作训练大模型,我们现在有一个鹏程系列大模型。

第一款叫做鹏程·盘古,这是千亿级开源语言处理模型,到现在为止已经被很多科研开发企业拿去使用。为什么能够拿去使用?因为我们这个模型是开源全开放的,比如英文GPT3是服务式开放,但数据在算法和模型都不是开放的,鹏程·盘古所有东西都是开放的,任何一个单位想做自然语言处理就可以拿去做一个剪裁,重新稍微编辑训练一下就可以进行使用。

第二款叫做鹏程·通言,其实是一个多语言的处理模型,使用轻量级的盘古Alpha模型和单语料扩充表达方式的模型,可以做多语言预训练和微调,包括机器翻译、文本理解和对话都可以用这个模型去做。

第三款叫做鹏程·大圣,大圣火眼金睛,我们实验室的小伙子就说要做一个能够对图像和视频进行分类的模型,有着火眼金睛能够看得清楚,这个模型就是千万级的,数据积累到一定程度就会做到10亿级甚至50亿级的模型。

第四款叫做鹏城百度·文心,可以看得出来这是鹏城和百度一起联手做的模型,模型的核心是由百度拿数据、百度设计里面的算法,鹏城提供算力和测试环境,然后在鹏城完成的大模型,应该说这个大模型是增强的知识模型,对现在百度做研究和开发都起到了非常好的支撑作用。

第五款叫做鹏程·神农,这是和多肽药物相关的模型。

应该说这些模型都使用了各种各样的并行计算,使得整个模型的训练速度比较快、效率比较高。我们说这里一共涉及到五种不同的并行,包括数据并行、模型并行、MOE并行、重计算并行和优化器并行。最近这段时间,我们在各种各样的大模型推进这些并行,比如现在正在推进的一项工作就是使用混合并行的方式,可以在多个节点采用数据并行和混合并行,也可以在多个节点实现比较高倍数的加速比。现在这些模型已经形成了鹏程系列大模型,包括数据、算法、模型等等,目前我们是通过开源平台把这些模型开放出去,让国内从事各个领域的人员共享这些成果。

下面我会非常快地讲一讲鹏城·扁鹊,这是一个什么东西呢?其实也是做生命组学的模型,底盘也是鹏城云脑II的算力,包括使用测序的、显微的、光学的、医疗影像设备获取的数据,能够做各种各样不同尺度的研究,1纳米到1米。目前可以使用多模态数据感知融合做各种各样不同的应用,包括基因组学、电子病历、生理数据、各种各样的文献、医学影像分析,底层需要进行各种各样的数据和格式的融合,此外还有平台结构和支撑应用,这些一起构成鹏城·扁鹊生命组学计划项目。

当然,这里也有很多挑战,包括科学挑战和技术挑战,包括一些组学机理,多模态数据联合建模的挑战。解决方案也有各种各样的方案组合,每种方案都有好的地方,也有局限性的地方,需要时间一点一点不停地演进和迭代使其越来越好用。目前模型中包括数据库和模态的规划、数据语义集的对齐等等,现在都在按部就班地在机器上开始部署和推进。

整个数据库目前刚把格式确定下来,我们希望有超过几万个儿童胎儿心脏的数据和家庭遗传数据,这些数据积累起来以后训练千亿参数的大模型,将来使用的时候可以通过微调进行部署,面向各种不同疾病的诊断和治疗。

我们的计划会横跨蛋白到群体的仿真,包括心脏的仿真,目前我们已经开始建立这些仿真模型,能够对心肌器官进行仿真,包括对血管流动方式进行仿真。这些都是在我们的机器上计算,目前在少量的CPU计算还需要一点时间,所有程序调试完毕就可以大规模一起计算,速度就会上来。

有了基因知识图谱以后可以建立一些疾病知识图谱,然后通过微观和宏观的一些东西针对整个疾病的表象和疾病的机理进行分析,提供对应的治疗,或者通过后期的饮食和锻炼等等改进身体状况。需要治疗的话,我们可以通过基于遗传多样性的群体仿真分为不同的类,分为正常人群,然后对不同类型的人群去看药物的反应,做出各种各样的标记,使得药物能够针对不同个性化的人群进行治疗,希望这项应用能够达到心律失常药物靶点的仿真和研究。

小结一下:鹏城云脑对利用AI进行科学研究的范式提供了很好的支持,包括鹏城·扁鹊生命组学大模型对AI+健康医疗也有一个很好的启动作用。人工智能为生命科学带来的改变刚刚开始,让我们拭目以待,看一看今后的改变到底能有多大。

版权说明:

未经授权严禁任何形式的媒体转载和摘编,并且严禁转载至未来论坛以外的平台!



转载请注明:http://www.aideyishus.com/lkyy/5243.html
------分隔线----------------------------