5月20日-23日,由“一带一路”国际科学组织联盟发起、广东省人民政府主办的2023大湾区科学论坛在广州举行。22日,华为昇腾计算业务CTO周斌在人工智能分论坛“智创大引擎,赋能新未来”上表示,大模型的效率曲线在持续演进,模型规模增加所带来的效果红利还在持续,也就意味着模型规模的增长脚步不会停下。
华为昇腾计算业务CTO周斌
“大模型必将进入到to B和to C的生产业务系统,从而真正成为行业核心软件的一部分。”大模型正在重塑产业格局,并且非常快速地开始进行行业落地,周斌首先强调了大模型研究的重要意义。
周斌表示“对比传统AI的业务开发,会发现实际上大模型是一个极其复杂的系统工程。”他谈到,整个大模型不仅仅是软件,它的系统工程围绕着从基础的硬件到算法、算力、开发工具、调试、调优、部署等等一系列非常复杂的应用开发系统,每一个环节都存在大量的工程和技术挑战。承接整个模型参数的更大内存系统和提升整体计算效率、能量效率是AI计算系统的关键。
那么如何能够更好地支撑大模型的开发?周斌表示,首先,数据质量决定了算法高度,大模型工作的大量时间是跟数据去工作;其次是算力,算力是基础原材料,他指出“算力的需求和供应差距会非常大,如何赶上持续增长的算力需求,是我们在基础软硬件系统里面所要做的非常多的事情。”
周斌还谈到了一个重要的问题,AI可信度挑战。他说道,计算环境的保护、数据的保护、模型的保护等等,都需要非常核心的保障。周斌建议,通过打造可信的AI环境来保障客户的核心资产安全,要发展负责任的人工智能,让人工智能能够用得起、用得好,并且还用得放心。
以下为发言实录:
李革:随着大语言模型和AIGC等大模型的流行,人工智能任务的规模持续增加,数据量、计算量和通信量都在指数级地增长,对于AI计算系统的基础软硬件系统提出了巨大的挑战,更大的模型训练需要更大的算力,如何设计更高效的AI计算系统,进而更好的满足大模型时代的海量计算需求,这是我们要回答的问题。本次大会我们有幸请到华为昇腾计算业务CTO周斌博士,他也是山东大学信息科学与工程学院的教授,周博士给我们带来的报告是《大模型时代的AI计算系统挑战和机遇》。大家欢迎周斌博士!
周斌:各位尊敬的领导、专家,很荣幸能够在这里跟大家分享一下大模型背后的一些技术和平台。
我们知道实际上ChatGPT这一波带火了整个人工智能产业,但是人工智能里面非常多的工作存在于它底层的一些技术和平台,尤其是AI的计算系统。我们也知道这个趋势已经被很多人讲得特别多了,我就一略带过,我们看到人工智能开始进入到一个拐点,跨越了从简单的感知到更复杂的理解,生成和创造这样的一个过程。这些背后离不开算力、算法和数据的结合。当然了,我们可以看到为什么我们叫它大模型?就是因为它的规模变得非常的巨大,这种巨大的规模对于我们计算系统的挑战是非常夸张的。我们也知道一个新的定律,就是人工智能的模型或者说对于算力的需求每隔4个月可能就要翻一倍。我们也开玩笑,很多时候我们所理解的每一年实际上在人工智能的时代不仅仅是一年的时间,可能它是一个指数增长的世界。
我们也可以看到大家都在争先恐后地投入到新一代大模型的研究中,大模型正在重塑我们的产业格局,并且非常快速地开始进行行业的落地,我们也迎来了一个大模型应用爆发的基点。我们看到在最近刚刚过去的风口3月和更加疯狂的4月,整个业界对于大模型的使用、适配等等,尤其是繁荣的开源社区带来了整个大模型产业的蓬勃发展。我们也会看到首先基于公开数据集数据所训练的这种基础模型,拉动了现象级的应用。随着这样的现象级应用被大众广泛接受,它开始进入行业,基于行业来去促进我们在行业第一代,就是第一波能够使用的数字化比较好的行业。比如说我们可以看到基于文档的操作,无论是摘要、写作,包括基于代码的这样一些开发,以及很多报告、策划等等,包括我们的一些影像。使用新一代大模型可以加速它整体的工作效率。
我们也会看到随着大模型能力的提升以及刚才包括李博士给我们分享的多模态各种业界形态的接入,我们相信大规模的模型必将进入到to B和to C的生产业务系统,从而真正成为行业核心软件的一部分。
我们也可以看到无论是在运营商、金融、医疗、城市、传媒、生物和教育领域,必将迎来大模型整个行业的颠覆性变革。这样的一些变革,我们也可以看到国内外非常多的企业围绕着人工智能大模型来去布局。通常首先它要战略布局自己的模型产业,同时构筑新的竞争力优势,尤其是算力。我在开玩笑说我们在业界最近的半年时间,业界的朋友见到我第一句问题通常是说你有没有算力,你有多少算力可以给我们去用。
我们也可以看到国内的头部厂商在这方面的布局也非常的关键。华为作为人工智能算力的提供方,我们在这上面积累了大量的产品和行业经验,从而可以更好地支撑我们整个行业针对于大模型时代的算力需求。
整个的变革,我相信大模型会促进行业内业务的效率提升以及我们可以通过大模型来去拉平我们在数字时代的AI鸿沟,同时大模型可以促进更繁荣的创业者,可以为很多的个人创业者和开发者提供更加有力的工具。
有人会担心大模型会形成AI霸权,就是只是一个巨头可以玩的游戏。我觉得这个事情并不一定是这样子的。我们也可以看到蓬勃的开源社区的发展以及不断拉低的数据、计算的门槛,使得我们整个大模型的行业和生态变得更加活跃,我们也相信一个健康、良好的大模型生态才是整个产业能够真正成为我们核心运作,成为我们整个社会基础AI能力非常重要的要素。
当然了,我们也可以看到实际上在这里面,我们面临着非常大的挑战。因为这里面大规模的模型,它应对算法、数据、基础软硬件这样一个综合系统的风险。我们也知道国家的很多主管部门也在持续出台政策,指导AI,尤其是在ChatGPT时代的这种大模型的健康和可持续发展。无论是围绕着基础软件系统国产化的工艺支撑,以及我们算法和数据的安全保护等等,都有非常多的意见出现。我们知道这样的一些意见必将会规范我们整个市场的行为,同时有利于在大模型时代AI的健康发展。
刚才一个简单的背景介绍,我们再深入地看一下,作为大模型,大模型像一个非常牛的新生物钟,孕育大模型基础的人工智能计算平台,我们叫做AI计算系统这样一些问题存在哪里?对比传统AI的业务开发,我们会发现实际上大模型是一个极其复杂的系统工程。
我记得OpenAI的科学家在讲到他们的ChatGPT开发的过程中说,他说ChatGPT是他看到的最复杂的软件系统之一。同样的,整个的大模型不仅仅是软件,它的系统工程围绕着从基础的硬件到我们整个的这样一个软件、算法、算力、开发工具、调试、调优、部署等等一系列非常复杂的应用开发系统,每一个环节都存在着大量的工程和技术挑战。
我们首先说数据和算力的准备。我们也知道现在大数据的门槛非常高,它有大量的数据要求,当然随着开源系统的不断进步,大模型的数据,尤其是相当多的预训练模型的发布,使大家能够在一个比较高的门槛上来做事情。同时,我们说针对于大模型整体设计开发流程,开发一个千亿、万亿级别的大模型,以前它的工作量是非常巨大的,尤其是在一些大规模的像云脑2这样的一些基础设备之上,但是我们现在怎么把这个开发的工作量降下来,能够让AI快速地,甚至很随意地去定制不同规模的一些模型。同时当然在训练过程和微调过程,以及加入最新的各种各样的基于RLHF以及BBO的强化学习的模式,如何来去做。现在的框架能否支撑,同时训练好的大模型,它的推理和部署的成本是非常高的,如何能够进行更好地压缩,能够用有效率的方式来去发布我们的大模型应用。
我们可以看到整体来说,我们希望有高质量的数据、高性能的计算平台以及更好的框架设计,能够支撑大规模的训练和调优,能够支撑大规模并发系统比较好的优化,更希望有高效的业务落地和业务部署的能力。
我们可以看到围绕着大模型整体的计算系统是一个非常复杂的系统工程。这个系统工程在每一步里面都有非常大的挑战。
首先,我们可以看到大模型的一大挑战,它是非常大的。我们估算过,当然业界有不同的声音,有人说到万亿级别这个模型就差不多了,有人说可能四五万亿就够了。但是我们也看到大模型的效率曲线在持续演进,也就意味着模型规模增加所带来的效果红利还在持续,也就意味着模型规模的增长脚步不会停下来。
假设当我们模型发展到百万亿规模的时候,我们的计算系统将会发展到10万张计算卡的级别。这样的一些大规模的系统,并且还要稳定地运行、越级,才能训练出这么一个规模。所以我们可以看到在这种大规模的人工智能模型面前,AI计算系统所带来的几个关键的挑战。
第一个就是我们的内存墙。模型参数的增加使得我们需要更大的内存系统来去承接整个模型参数,包括中间的计算变量和中间状态,尤其是我们的优化状态。我们也可以看到以2000亿参数的模型为例,它的占用内存接近1个TB,745GB这样的规模。那么训练的过程拥有大量的中间变量和我们的异化状态,它可能需要3.5个GB这样的内存才能把它存得下。当然把它存得下,还要算得快,这里面性能就是我们一个非常大的问题。如何在大规模的编译系统里面把性能发挥得很好,这是一个在计算机行业里面做了非常多年的问题,但是大模型的计算规模和通信规模比传统的计算应该说是有了数量级的提升。尤其是通信系统。通信系统,我们会发现成为了它的一个主要性能瓶颈。
再者,整个的效率。因为我们的计算密集,但是会带来非常多的并行效率的问题,我们希望整机的大规模系统,它的运行效率很高,但是事实上很多时候我们发现对于一个大规模的分布式系统,它的运行效率不总是很高的,甚至很多时候都是比较低的。如何能够提升我们整体的计算效率和能量效率,这也是我们一个非常大的问题。这要从我们的编程范式到自动的编译优化开始进行全栈的优化,再者就是调优。运行我们大规模的模型系统,中间出现错误的可能性是非常高的,尤其是在开发阶段,如何进行高效率的调优,这也是我们面临非常大的挑战。
首先打开来看,分布式AI训练对通信提出来非常高的要求。我们看到实际上现代计算机系统,通信系统的带宽和延迟的提升,大量进带的问题都是由分布式AI训练所带来的。随着模型的增加,整个需求会看到,尤其是节点间的互联带宽对于我们整个性能影响会非常巨大。原因很简单,因为它要进行的数据交换量非常大规模地提升。那么同样的话,不仅仅是在计算机连接,而且是在主机、CPU、加速器、NPU之间,它们的带宽交换也会变得非常重要,因为有很多前处理、后处理的工作需要在我们的CPU上来进行。再者,并行规模会带来整个通信系统非常大的挑战,尤其是在AllRedis(谐音)的阶段。
我们可以看到现在非常多的异构集成系统,协同训练的时候面临着一个非常大的挑战,就是我们的算力和带宽不一致,计算图很难做到匹配。比如说我们现在有这样一个典型的大规模计算系统,它是有两台大规模的主机组成。节点A和节点B很可能处在不同时代、不同阶段,甚至于不同厂商这样的一些计算系统,这样的一些计算系统,通常它的算力和带宽是不匹配的。我们显然看到的一个问题就是慢节点会拖累整个计算系统。如何让这种异构的协同计算能够更好地发挥它的效率,也是我们面临的一个非常大的问题。有人会说我们只用一种不就行了吗?只用一种是一个好的选择,但是在现实中,由于大模型的计算规模非常的庞大,很多时候我们会动用多台超级计算机、多台AI计算系统来去共同完成一个任务。这个时候在这种不均衡面前、不匹配面前如何去做这样的一个调度是我们一个非常大的挑战。
我们也做了非常多的分析。非常明显的一个问题就是跨代集群间慢节点的存在,会造成同步训练性能恶化,这是一个非常明显的挑战。如何把我们的计算能够在不同处理性能节点之间进行协同。不仅仅是宽带集群节点,甚至于很多时候我们说哪怕是因为我们这个集群系统规模非常庞大,中间不可避免会出现一些慢节点,这是概率性的,概率性的会出现。这种概率性的出现也会拖累到整个集群,所以说这两个面临的问题是相似的。
刚才分析了大模型时代的一部分挑战,当然还有很多其他的挑战,我们说算法的挑战,甚至包括我们看到的AI治理的挑战等等,我们现在回过头来看,作为AI计算系统的基础软硬件的问题,如何能够更好地支撑大模型的开发。
首先,数据质量决定了我们的算法高度。大模型的工作里面大量的时间是跟数据来去工作。如何打造一个平台化的、高效能、高质量的数据处理体系,这是非常多的模型开发者所面临的第一大挑战。我们华为基于昇腾以及全栈的软件系统,打造了从数据采集到清洗、到评估、到标注等等一系列闭环的平台化数据使能工具,从而更好地支撑我们高效率的数据准备过程。我们可以看到通过这样的一个工具体系,我们构筑了高质量语料数据集,支撑华为盘古模型,取得了非常好的精度。
再者就是我们的算力。算力是一个基础的挑战,也是我们烹饪大模型、调制大模型或者练大模型的一个基础原材料。那么算力的话,通常我们认为在大模型时代,集群是一个必然的选择。算力的需求和供应差距会非常大,我们如何赶上这样一个持续增长的算力需求,这是我们在基础软硬件系统里面所要做的非常多的事情。
我们首先可以看到,算力密度在持续增加。原因很简单,就是因为我们的规模在持续地增加。我们看到单一机柜,现在我们在IP32高精度的情况下,我们能够做到6.4P,这是业界主流水平的8倍,应该说是一个非常高的指标,非常有助于高精度的语言模型。当然如果做IP16这种半精度的,我们可以做到单柜24P。这个规模是异业主流的2倍以上。同时为了应对我们刚才提到的内存的这样一个墙,大模型需要更大的内存去hold得住它,我们在单柜里面可以提供4096GB,也就是4个TB的HBM高速内存。
可以看到刚才提到的,可能一个2000亿参数的内存模型,就可以在一个柜子里面把它全部都装得下。同时,为了应对我们刚才提到的网络通信的大规模挑战,我们提供了单节点超过累计1.6TB每秒的柜间通信,可以做无损网络。同时我们也会提供多级存储,通过在本地和远程的文件存储系统,包括云的存储系统这样的一个整合,可以比较好地使得我们的样本和计算、通信得到一个平衡。
我们通过持续的迭代升级为业界朋友们提供了领先的人工智能大规模集群系统Atals900 PoD。新一代的Atals900PoD可以支持超过8000卡的这样一个集群。单卡算力比上一代提升2倍,节点间互联带宽提升9倍,进而更好地支撑我们新时代的大规模AI计算需要。
不仅仅是有硬件,我们也可以看到有大量的软件系统需要支撑,我们在这个里面提供了非常完善的从AI框架到编程语言、到加速库、到大模型的SGK,等等一整套的体系。并且这些体系里面,我们优化了软硬件协同的设计,使得针对于大模型的,无论是稀疏还是稠密的,还是混合的这样一些结构,以及attention这样一些结构,无论是Flash这样的实验方式,还是我们说的Spare这样的一些实验方式,都能够获得好的支持。
通过这样一些支持,首先我们支撑了咱们鹏城实验室的很多模型研究,包括鹏城盘古、鹏城神农,也获得了非常好的效果,在业界取得了非常好的影响力。我们在华为内部也支撑了华为无论是华为终端还是华为云,还是我们很多合作伙伴的这样一些模型,以非常丰富的内外部场景,我们牵引了从模型的端到端设计和沉淀。
我们打开来看一下,就是如何进行软硬件的协同优化设计,使得我们的模型能够更好地发挥性能。我们可以看到同等的显卡集群,比如说就以GPT175B这样一个模拟,华为Atlas当代集群可以做到90亿 token/天,对比业界的一些水平,我们可以提升50%左右。首先我们有大模型的加速库,针对于硬件亲和的高性能加速设计,尤其是基于Transformer的网络加速库,我们可以比较好地提升整体的底层支持性能,同时我们在底层,我们叫做Kernel这样一个运行时上,包括开发系统上,我们做了大量的融合优化,包括大算子的融合设,以及整图下沉的模式,可以做到提前进行优化,包括自适应梯度切分。同时在AI框架层面,华为的昇思MindSpore提供了自动混合并行的AI特性,我们通过短短的一两千代码可以实现千亿级模型的自动运行,从而使得开发者看我们的集群系统就像看一张卡一样,同时它的并行效率也是比较高的。我们可以看到通过这样一些软硬件协同的原生设计优化,我们可以获得非常好的性能。
我们看一下Transformer加速库,在这里面我们也知道现在大模型的基础结构都是从Transformer演化过来的,这里面其实有非常多这样的一些挑战。比如说大模型里面如果采用MoE这样的结构,它的router性能是一个非常大的挑战,因为它会在不同的专家之间进行这样一个数据的分发,我们通过访存优化,减少了它的仿存次数,同时我们设计了金字塔形的MoE结构,可以比较好地降低网络的参数规模,降低通信开销。再者,我们提前进行了分布式并行策略的优化,可以做很多通信策略的寻优,从而使得大模型整个的推理效率得到了极大的提升。
再者还有一个很重要的点,就是在大模型时代,我们希望我们的计算系统是足够可靠的。我们也看到业界有很多大模型的训练平台面临着可靠性的挑战。比如说我们看到有论文发表出来的时候,非常有意思的一个现象,某一个大厂,它训练的loss曲线,每隔一两天loss曲线就没了,过了一天、半天之后又起来,又继续往下走,隔一两天、隔两三天又会断掉。后来我们看了他的论文,包括意见交流,他们的计算系统每隔一段时间就会宕掉一次。原因也很简单,这么大规模的一个系统,我们想到如果我们把它简单地认为这是一个串联系统的话,那么我们说几千个节点,也就意味着我们必须做到5个9以上,它才能支撑几天的时间,6个9的时间能实现越级。在这个里面硬件和计算系统的可靠性必将成为一个非常大的挑战,那么我们通过在电信行业积累了几十年的经验。首先打造了电信级别的应用可靠,其次是我们通过断点续训这样的能力,10倍级地提升整个系统的稳定性,从而确保长尾训练,我们自己在一个大规模的系统上。比如说2000卡的级别,我们在25天的训练时长上是没有发生问题的,我们也对比了业界的一些集群系统,平均的稳定训练时长,大家可以看到那个图,也就是一两天的时间,最长也就是2.8天。我们可以看到在这个上面对于整个系统的稳定性挑战是非常大的,优势也是非常大的。
再有刚才提到了,就是这种不均衡性,我们也推出了异步训练这样的系统引擎,通过异步训练充分发挥计算中心的多中心算力能力,包括这次其实我们在鹏城实验室的带领下也参与了非常多的关于算力网络的建设,我们说算力网络很大的一个目标,就是把多个跨域的计算中心连成一个大的网络。连成一个大的网络,在解决大规模问题的时候,我们会发现由于网络通信延迟和带宽所带来的性能损失,使得我们很多时候如果采用同步训练的方式,很可能你会发现得不偿失,两个集群的训练能力还达不到一个集群,它会拖累整个系统。
通过异步训练引擎,我们解决了非常多的问题,尤其是陈化梯度的问题以及各种数据、参数等等这样的问题,去中心化、流水等等,非常多的关键技术问题,使得我们集群间的混合异步训练系统得到了比较好的效率实现。
持续地推进大规模的人工智能计算系统,以集群系统和更大的算力规模来去支撑大模型的发展,这是我们华为昇腾计算和我们整个计算产业一起携手来推进的业界生态。我们可以看到在这个里面,我们早期是单集群支持,也就是4096这样的规模,我们也发现随着这样一个指数级算力需求的增加,节点规模必将指数级地增加。所以我们在未来将考虑支撑以光互联,包括全光网络这样一些模式来去推进大规模的计算系统。
我们也可以通过算力网络的技术来去实现跨域的分布式并行连通,使得更大规模的任务得以实现。其实这个原因也比较简单,我们看到在人工智能的算力供给上,国内的算力规模是远远小于很多国际上的大规模计算系统的,鹏城已经是国内非常巨大的人工智能中心了,我们也可以看到在千P的算力范围,很多国际上的大公司已经到了万P。我们可以通过互联互通的方式来去构建一个更大规模的系统,从而去训练我们更强的模型。
当然还有一个很重要的问题,我们面对AI可信的挑战。数据以及我们整体的保护,包括计算环境的保护,包括数据的保护等等,包括模型的保护,这些是我们非常核心的一个保障。我们说通过打造可信的AI环境来保障客户的核心资产安全,发展负责任的人工智能,让人工智能能够用得起、用得好,并且还用得放心。
昇腾作为华为体系内提供人工智能计算基础设施的这样一条产业,我们秉持着深度开放的原则,我们在硬件上开放,在软件上大量地拥抱开源社区,来去全面支持业界各类框架加速器以及第三方的社区生态。我们可以看到无论是国内比较著名的OpenMMlab以及各种框架,PyTorch、Deepspeed,包括我们华为昇腾自己的等等,我们都已经做了全面的兼容适配,包括大量的第三方库以及各种第三方的推理服务。我们秉持着开放的基础出发点来去拥抱整个社区,来去为整个社区做贡献。
华为昇腾已经支持了非常多国内外开源开放大模型,我们实测了很多性能还是不错的,我们看到无论是GPT-3结构的,包括GLM等等不同规格、不同参数的模型,我们基于开源系统的框架,包括我们自己的框架,实际上性能会更好一些,我们也可以看到已经获得了非常完善的支持,通过对产业界大规模模型系统化的支持,我们希望能够促进我们国内,乃至整个世界上人工智能的开发。
华为昇腾已经原生孵化和适配了超过30个基础大模型,并且在各个行业里面加紧落地。大模型不是今年才发生的,大模型的时代在两三年前已经开始发生了,那么我们在这几年的时间里面跟我们的合作伙伴一起,打造了非常多的这样一些基础模型和行业应用的模型,包括自然语言的、视觉的、多模态的等等,通过和伙伴一起合作来去支撑我们国内大模型产业的繁荣,支撑整个人工智能能够向深、向实,做到行业落地,让我们来迎接人工智能的时代,这也是我们华为昇腾计算跟大家一起携手走向新的人工智能时代的心愿,期待着人工智能为我们创造更加美好的明天。谢谢大家!
李革:非常感谢周斌的精彩报告!周总为我们介绍了一整套能够可以更好的支持大模型的计算需求的基础软硬件系统,相信这套系统能很好地帮助人工智能科技与产业应对大模型时代的AI计算系统挑战,帮助我们抓住发展机遇!