当前位置: 首页 > 科技观察

清华郑纬民院士:AI for Science的出现,让高性能计算与AI的融合成为刚需

时间:2023-03-17 15:20:46 科技观察

清华大学郑卫民院士:AIforScience的出现,使得高性能计算与AI的融合成为刚需。对计算能力的需求比以往任何时候都更加强烈。甚至有人直接说:得算力者得未来。Metaverse、AIGC和AIforScience的出现为高性能计算(HPC)火上浇油。在诸多挑战与机遇并存交织的当下,中国工程院院士、清华大学计算机科学与技术系郑伟民院士在MEET2023智能未来大会上分享了自己的见解与思考。预计在未来两到四年内,将出现融合HPC(高性能计算)+AI+BigData的服务器。AIforScience的出现,使得HPC+AI的融合成为硬性要求;而数据处理是AI的基础,所以数据和AI的融合也是水到渠成的。他甚至开玩笑说,要获得HPC领域的戈登贝尔奖,AI算法必不可少。你没有AI算法,否则你得不到任何奖品。这虽然是个玩笑,但实际上是一种趋势。此外,他还谈到了人工智能计算机设计中平衡的三个原则,AI基准设计的四个目标,以及如何通过并行方法加速大规模预训练模型。为充分体现郑伟民院士的分享与思考,在不改变原意的前提下,量子比特对演讲内容进行了编辑。关于MEET智能未来大会:MEET大会是由量子位主办的智能科技领域顶级商业峰会,致力于探讨前沿技术的落地与行业应用。今年,数十家主流媒体和直播平台对MEET2023大会进行了报道和直播,吸引了超过300万行业用户在线参与,全网总曝光量超过2000万。演讲要点预计在未来两到四年内,将出现融合HPC(高性能计算)+AI+BigData的服务器。过去HPC是一台机器,AI是一台机器,大数据处理是第三台机器。这三台机器自己管理,但是现在这三台机器正在集成;AI基准设计必须实现四个目标:统一评分、可变问题尺度、实用人工智能意义、评估方案包括必要的多机通信;现在要获得HPC领域的GordonBell奖,你必须要有AI算法,你没有AI算法,否则得不到这个奖。这是一个笑话,但实际上是一种趋势;AIforScience的出现,使得HPC+AI的融合成为硬性要求;探索更大参数模型的效果具有重要的科学意义;我们希望人工智能计算机就像HPC有TOP500一样,也有一个AIPerf500。(以下为郑伟民院士演讲全文)人工智能计算机设计中平衡的三大原则今天给大家讲讲我们团队为人工智能做的三件事,就是AI和算力基础设施的设计、评估和优化。首先,HPC(高性能计算)和AI的应用是不同的。HPC的应用领域主要包括科学与工程计算、天气预报、核聚变模拟、飞行器设计等。它的运算精度是双精度浮点运算,64位甚至128位,所以加减乘除都很快,主要就是这个区别。人工智能计算机是半精度的,甚至是定点的,8位的,16位的,32位的。因此,这两种机器应该是不同的,人工智能计算机也是近两年才开始出现的。因此,我们的团队设计了一台可以更好地处理人工智能问题的计算机。它是什么样子的?我们团队的第一个贡献是人工智能计算机设计的平衡原理。第一,计算平衡设计。人工智能处理单精度或定点。您的机器是否只需要在定点和单精度方面做得很好?但事实并非如此。虽然我们主要考虑半精度运算,但也应该考虑双精度运算的能力。近两年有一个经验:1)双精度和半精度计算性能的比值是1:100,比较好。2)人工智能计算机不仅可以做CNN,还可以做大模型训练。因此,提出了变精度天平设计的思路,一般加上通用计算。第二,网络平衡设计。由于这台机器很大,是由几千、几万台小机器连在一起组成的,所以网络也要做好。如果只做CNN就好办了,但是也要考虑training。这样,如何平衡网络的设计也很重要。第三,存储,也就是IO子系统的设计。我们知道现在每台机器都有一个SSD,如何将各个SSD组合起来组成一个大型的分布式文件系统呢?这也很重要。因此,我们提出了这三个平衡的设计原则,已经被很多公司采纳。现在国内已有20多个城市相继启动人工智能超算中心,让算力无处不在、触手可及。他们大多采用平衡设计的思想。目前业界有HPC+AI+BigData融合的趋势。过去HPC是一台机器,AI是一台机器,大数据处理是第三台机器。这三台机器自己管理,但是现在这三台机器正在合并。你为什么这么说?一方面,AIforScience的出现使得AI算法可以被纳入HPC程序。因此,HPC+AI的融合成为刚需。我曾经开玩笑说,如果你想获得HPC领域的GordonBell奖,你必须要有AI算法。如果你没有人工智能算法,否则你连奖都拿不到。这是一个笑话,但实际上是一种趋势。另一方面,数据处理是人工智能的基础,数据与人工智能的融合也是水到渠成的事情。因此,我估计在两到四年内,会出现集成HPC、AI和BigData的服务器。这是我们小组关于AI计算机应该是什么样子的第一个贡献。AI基准设计必须实现四个目标。第二个贡献是大规模人工智能算力基准评估程序AIPerf。这意味着什么?传统的HPC有一个评估程序Linpack,TOP500是用它来评估的,但是不能用于AI计算机的评估。Linpack是用来衡量64位甚至128位加减乘除速度的。现在人工智能计算机是16位的,32位的,甚至是8位的,完全不一样。因此,我们需要做一个能够回答这个问题的人工智能算力对标方案。我们希望有一个简单的评价指标来判断哪个系统的人工智能计算能力更强。现在有相应的评估方案吗?其实也有,只是不太适合。比如DeepBench是针对单芯片的,不适合做整机的评测。MobileAIBench的目标是在移动硬件上进行模型训练和评估,而不是整个系统。MLPerf不能很好地扩展。所以我们决定自己做一个。做一个AIbenchmark设计,必须要达到这四个目标:1.统一评分。我们希望运行Benchmark得到一个值,一个值就可以了。而不是报告,显得很费力。2.可变问题大小。Benchmark可以测量由4个节点组成的机器,或者1,000或20,000个节点。尺度多变,大范围的做起来还是蛮费力的。3、具有实用的人工智能意义。你不能光说加减乘除,那就体现不了人工智能的问题。特别是应该体现人工智能问题中的神经网络计算和自然语言处理能力。4.评测程序包括必要的多机通讯,因为是多机连接的大系统,需要通讯。最后,清华大学的一个团队做了一个AIPerf测试,2020年11月15日首次发布。我们希望人工智能计算机有一个AIPerf500,就像HPC有TOP500一样。现在已经发布了每年的排行榜连续三年,得到众多单位和企业的认可。大规模预训练模型的三种并行加速方法第三个贡献是一种针对万亿参数的超大规模训练模型的加速方法。举个简单的例子,目前学界已经形成共识:模型规模和模型效果正相关。GPT有1.1亿个参数,GPT-3有1750亿个参数,启蒙2.0有1.75万亿个参数,但是我们八卦录有174万亿个参数。应该说参数越多效果越好,越接近人类智慧,但一个问题是训练数据越多,需要的计算能力就越大。让我们看看左图中的SAT(美国大学入学考试)任务。如果模型参数达到100B(相当于1000亿个参数),那么模型将以70%的准确率完成SAT。因此,探索具有更多参数的模型的效果具有重要的科学意义。但是随着模型越来越大,问题也随之而来。现在国内很多单元机型都做的很好,但是如何把机型安装到机器上是很有讲究的。比如我们在新一代神威架构芯片上安装了八卦录模型。从图中可以看出,核心组一共有64个核心,加上黑色主核心,一共65个核心。一个CPU有6个这样的组件:CG0、CG1、CG2、CG3、CG4和CG5,这6个通过环形网络连接在一起。我们称它为一个节点,并将其集成为一个整体。一个节点大约有390个核心。一共256个节点组成一个超级节点,超级节点内部通信一步直连,超级节点与超级节点之间的连接必须经过上层网络。因此,256个节点的内部通信速度非常快,可以一步完成。但是超级节点之间的通信比较慢。但是要在本机上跑大模型,问题就来了。现在预训练模型都是Transformer,Transformer结构是embedding层,attention层,前馈网络层。中间注意力层和前馈层都会经过N次迭代,整个运算基本就是矩阵乘法。如果一个模型可以在单个CPU上计算,那是最省事的,但是CPU的计算能力是有限的,内存也是有限的,所以模型大不了多少。因此,大模型训练必须是多机、分布式的,这就涉及到多种并行方式。首先是数据并行。如果整个模型有两个节点,一个模型为节点0,另一个模型为节点1,则整个模型已经数据并行化,一半的数据将用于训练和学习,但需要注意这不是训练后的最终结果,因为只输入了一半的数据。所以中间需要AII-Reduce,AII-Reduce需要做大量的通信,整个事情会很复杂。二是模型并行。把整个模型切成两半,一半模型节点0,一半模型节点1,全部数据用于训练。训练后的结果并不是最终结果,因为模型只训练了一半,还要用AII-Gather进行通信。第三种,专家并行,和数据并行、模型并行一样,也需要通信。现在,如果您只有一种方法,应该使用哪种并行方法?其实这与计算机的结构有关。如果每台计算机之间的通信速度非常快,则使用数据并行;如果您的沟通速度很慢,请考虑模型并行性或专家并行性。那么,这些模型如何匹配数据和机器的实际情况呢?这涉及到软件和硬件的协作。我们在新一代神威机器上采用了“拓扑感知混合并行模式”。具体来说,刚才说了,这个架构中节点内部的通信速度很快,但是超级节点之间的通信速度比较慢。因此,在混合并行方式中,在通信超级节点内部采用数据并行;超级节点之间采用专家并行或模型并行。除此之外,还有内存大小和内存访问等问题:如何让内存访问更快,负载更均衡?在进行大规模模型训练时,平均每小时都会出现硬件和软件错误。不要认为这台机器不可靠。这个水平已经很好了。因此,通常需要检查点。如果文笔不好,做这件事要花三个小时。我们怎样才能加快速度?最后我们做到了10分钟,就完成了。现在,我们把模型,特别是并行训练模型开源了,放到了开源系统FastMOE里面,现在已经被业界认可,比如阿里巴巴的淘宝,天猫,腾讯的端到端语言模型.使用我们的并行系统。百度飞桨的MOE模块也是用的我们的FastMOE。最后总结一下,第一,人工智能算力是当前人工智能领域发展的关键。二是团队对人工智能的三个小贡献:1)提出了AI算力基础设施的框架和平衡设计原则,现在全国20多个城市的20多个人工智能超算中心基本采用了我们的设计思维。2)做了一个评测,就是人工智能基准测试程序AIPerf,现在每年发布一个500的榜单,在国内外产生了一定的影响。3)大模型如何快速训练?特别是关于数据并行性、模型并行性或专家并行性。我们在开源上创建了一个库。现在业界开始用我们的东西,可以加速大型训练模型的训练。因此,我们团队为人工智能做了这三个小小的贡献,希望能够推动人工智能的发展。如有错误请批评指正。谢谢你们!